A Flutter Package to render Mathematics, Physics and Chemistry Equations based on LaTeX

Overview

flutter_tex

GitHub stars pub package

Contents

About

A Flutter Package to render fully offline so many types of equations and expressions based on LaTeX , TeX and MathML, most commonly used are as followings:

  • Mathematics / Maths Equations and expressions (Algebra, Calculus, Geometry, Geometry etc...)

  • Physics Equations and expressions

  • Signal Processing Equations and expressions

  • Chemistry Equations and expressions

  • Statistics / Stats Equations and expressions

  • It also includes full HTML with JavaScript support.

How it works?

Basically it's a flutter dart wrapper around the most powerful JavaScript libraries MathJax and Katex which render the equations in webview_flutter_plus.

Demo Video

Click to Watch Demo on Youtube

Screenshots

Fonts Sample Quiz Sample TeX Document
TeX Document Image & Video InkWell

How to use?

1: Add flutter_tex latest pub package version under dependencies to your package's pubspec.yaml file.

dependencies:
  flutter_tex: ^4.0.3+1

2: You can install packages from the command line:

$ flutter packages get

Alternatively, your editor might support flutter packages get. Check the docs for your editor to learn more.

3: Now you need to put the following implementations in Android, iOS, and Web respectively.

Android

Make sure to add this line android:usesCleartextTraffic="true" in your <project-directory>/android/app/src/main/AndroidManifest.xml under application like this.

<application
       ...
       ...
       android:usesCleartextTraffic="true">
</application>

It completely works offline, without internet connection, but these are required permissions to work properly:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

It'll still work in debug mode without permissions, but it won't work in release application without mentioned permissions.

iOS

Add following code in your <project-directory>/ios/Runner/Info.plist

<key>NSAppTransportSecurity</key>
  <dict>
    <key>NSAllowsArbitraryLoads</key> <true/>
  </dict>
<key>io.flutter.embedded_views_preview</key> <true/> 

Web

For Web support you need to put <script src="assets/packages/flutter_tex/js/flutter_tex.js"></script> and <script type="text/javascript">window.flutterWebRenderer = "canvaskit";</script> in <head> tag of your <project-directory>/web/index.html like this.

<head>
  
    <meta charset="UTF-8">
    <title>Flutter TeX</title>

    <script src="assets/packages/flutter_tex/js/flutter_tex.js"></script>
    <script type="text/javascript">window.flutterWebRenderer = "canvaskit";</script>
</head>

4: Now in your Dart code, you can use:

import 'package:flutter_tex/flutter_tex.dart'; 

5: Now you can use TeXView as a widget:

Examples

Quick Example

TeXView(
    child: TeXViewColumn(children: [
      TeXViewInkWell(
        id: "id_0",
        child: TeXViewColumn(children: [
          TeXViewDocument(r"""<h2>Flutter \( \rm\\TeX \)</h2>""",
              style: TeXViewStyle(textAlign: TeXViewTextAlign.Center)),
          TeXViewContainer(
            child: TeXViewImage.network(
                'https://raw.githubusercontent.com/shah-xad/flutter_tex/master/example/assets/flutter_tex_banner.png'),
            style: TeXViewStyle(
              margin: TeXViewMargin.all(10),
              borderRadius: TeXViewBorderRadius.all(20),
            ),
          ),
          TeXViewDocument(r"""<p>                                
                       When \(a \ne 0 \), there are two solutions to \(ax^2 + bx + c = 0\) and they are
                       $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$</p>""",
              style: TeXViewStyle.fromCSS(
                  'padding: 15px; color: white; background: green'))
        ]),
      )
    ]),
    style: TeXViewStyle(
      elevation: 10,
      borderRadius: TeXViewBorderRadius.all(25),
      border: TeXViewBorder.all(TeXViewBorderDecoration(
          borderColor: Colors.blue,
          borderStyle: TeXViewBorderStyle.Solid,
          borderWidth: 5)),
      backgroundColor: Colors.white,
    ),
   ),
  )

TeXView Document Example

TeXView Document Example

TeXView Markdown Example

TeXView Markdown Example

TeXView Quiz Example

TeXView Quiz Example

TeXView Custom Fonts Example

TeXView Custom Fonts Example

TeXView Image and Video Example

TeXView Image and Video Example

TeXView InkWell Example

TeXView InkWell Example

Complete Example

Complete Example Code

Application Demo.

Get it on Google Play

Demo Source

Web Demo.

You can find web demo at https://flutter-tex.web.app

Api Changes.

Api Usage.

  • children: A list of TeXViewWidget

  • TeXViewWidget

    • TeXViewDocument Holds TeX data by using a raw string e.g. r"""$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$<br> """ You can also put HTML and Javascript code in it.
    • TeXViewMarkdown Holds markdown data.
    • TeXViewContainer Holds a single TeXViewWidget with styling.
    • TeXViewImage renders image from assets or network.
    • TeXViewColumn holds a list of TeXViewWidget vertically.
    • TeXViewInkWell for listening tap events. Its child and id is mandatory.
    • TeXViewGroup a group of TeXViewGroupItem usually used to create quiz layout.
  • TeXViewStyle() You can style each and everything using TeXViewStyle() or by using custom CSS code by TeXViewStyle.fromCSS() where you can pass hard coded String containing CSS code. For more information please check the example.

  • renderingEngine: Render Engine to render TeX (Default is Katex Rendering Engine). Use Katex RenderingEngine for fast render and MathJax RenderingEngine for quality render.

  • loadingWidgetBuilder: Show a loading widget before rendering completes.

  • onRenderFinished: Callback with the rendered page height, when TEX rendering finishes.

  • onTeXViewCreated: Callback when TeXView loading finishes.

For more please see the Example.

To Do:

  • Speed Optimizations as it's a bit slow rendering speed. It takes 1-2 seconds to render after application loaded. (Solved by adding Katex Support)
  • Bug in Web Support on setState everything disappears.

Cautions:

  • Please avoid using too many TeXView in a single page, because this is based on webview_flutter_plus a complete web browser. Which may cause slowing down your app. I am trying to add all necessary widgets within TeXView, So please prefer to use TeXViewWidget. You can check example folder for details. If you find any problem you can report an issue.
Comments
  • Possible Caching with multiple tex views on one page

    Possible Caching with multiple tex views on one page

    Hi, I have noticed that if you have multiple tex views, initially both views render what's given to them, however after you alter one of them using "setstate" and then alter another, it doesn't render what was given to it, but instead what the previous texview displayed. To show you this, I made a video, there is a text view to display the input to the tex view directly over the tex view. both are given the same variable input, but after a bit, you will see things don't match up. I made a clear video explaining this so I hope you can better understand. Thanks

    https://drive.google.com/file/d/10W3EDsEjFtSjgaAOnEfliBBV6xXJTHFP/view?usp=sharing

    Text(f), TeXView( showLoadingWidget: true, renderingEngine: TeXViewRenderingEngine .katex(), children: [ TeXViewContainer( children: [ TeXViewTeX( f, style: TeXViewStyle( backgroundColor: dark ? Color( 0xff2f3136) : Colors .white, contentColor: dark ? Colors .white : Colors .black, ), ) ], ), ],

    opened by JosephShepin 17
  • Rendering of TeX equation is stuck

    Rendering of TeX equation is stuck

    After upgrading the package, all the equations are not getting rendered in the release version of the app. They were rendering before the upgrade. Most equations render, while for others, the progress indicator is shown and rendering does not take place, whether there are few or many equations. I was also wondering what is the maximum number of equations you recommend that should be in a given screen. Thanks.

    opened by flutternoob 15
  • TexView not appear when children only have one TeXViewContainer

    TexView not appear when children only have one TeXViewContainer

    Hi @shah-xad, I'm facing a problem when I want to display only one TeXViewContainer in children. when I make the children are two TeXViewContainer, the widget appears smooth.

    bug 
    opened by IhwanID 13
  • Not rendering long string of html content

    Not rendering long string of html content

    Following is my code which isn't rending and neither is throwing any error

                 TeXView(
                            renderingEngine: TeXViewRenderingEngine.katex(),
                            children: [
                              TeXViewContainer(id: "container_0", children: [
                                TeXViewTeX(
                                  '<span>There are 150 objective multiple choice questions in this paper. This Question Booklet is made up of the following five sections : Section-I, 11, 111, IV &amp; V of 30-30 questions each. The candidate has to attempt all sections. Each question is of one mark. There is no negative marking for wrong answer</span>',
                                  style: TeXViewStyle(
                                    textAlign: TeXViewTextAlign.Center,
                                    // backgroundColor: Colors.red,
                                    contentColor: Colors.black,
                                  ),
                                  id: "tex_0",
                                )
                              ])
                            ],
                          ),
    

    Just tried simple <p>hello there</p>. it worked and rendered but not the above string Please help. Thanks

    bug 
    opened by gkumar9 11
  • ImeThread is not enabled

    ImeThread is not enabled

    TeXView can't show any text. It shows ImeThread is not enabled.

    my code:

    TeXView(
                    renderingEngine: RenderingEngine.Katex,
                    children: [
                      TeXViewChild(
                          id: "child_1",
                          title: r"<h3>Quadratic Equation</h3>",
                          body: r"""<p>
                                       When \(a \ne 0 \), there are two solutions to \(ax^2 + bx + c = 0\) and they are
                                       $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$</p>""",
                          decoration: TeXViewDecoration(
                              style: TeXViewStyle(
                                backgroundColor: Colors.green,
                                contentColor: Colors.white,
                              ),
                              titleStyle: TeXViewStyle(
                                textAlign: TeXViewTextAlign.Center,
                                backgroundColor: Colors.red,
                                contentColor: Colors.white,
                              ),
                              bodyStyle: TeXViewStyle.fromCSS(
                                  "color:white;background-color:light-green")))
                    ],
                    style: TeXViewStyle(
                      elevation: 10,
                      border: TeXViewBorder(
                          all: TeXViewBorderDecoration(
                              borderColor: Colors.blue,
                              borderStyle: TeXViewBorderStyle.Solid,
                              borderWidth: 5)),
                      backgroundColor: Colors.white,
                    ),
                    loadingWidget: Center(
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.center,
                        mainAxisSize: MainAxisSize.min,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: <Widget>[
                          CircularProgressIndicator(),
                          Text("Rendering with ")
                        ],
                      ),
                    ),
                    onTap: (childID) {
                      print("TeXView $childID is tapped.");
                    }),
    

    Console shows:

    D/Surface ( 5430): Surface::setBufferCount(this=0x8ae13f00,bufferCount=4)
    D/WebView ( 5430): loadUrl(extra headers)=http://localhost:5353/packages/flutter_tex/src/tex_libs/katex/index.html?teXViewServerPort=5353
    I/cr_Ime  ( 5430): ImeThread is not enabled.
    

    flutter doctor shows:

    Doctor summary (to see all details, run flutter doctor -v):
    [√] Flutter (Channel master, 1.18.0-12.0.pre, on Microsoft Windows
        [Version 10.0.18362.720], locale en-US)
    
    [√] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
    [√] Android Studio (version 3.6)
    [√] Connected device (1 available)
    
    • No issues found!
    

    Please help how to over come this issue.

    bug 
    opened by Mahmud-CSE16 11
  • Delay Rendering(It takes almost 15-20 sec for rendering)

    Delay Rendering(It takes almost 15-20 sec for rendering)

    It takes much time for rendering in app. I am fetching webview from server . Content is containing html and latex code. And another issue is while we using animation on page in which i am using texview , it is rerender while using animation.

    opened by maheshbhattaraai 10
  • How do I display a local image file?

    How do I display a local image file?

    Hello, is it possible to display a local image file from my android studio assets folder? The raw html code of my TeXViewTeX looks like this:

    const String _texText = r'''  
    <img src="assets\app_icon.png"> <br>
     $$ a^2 = b^2 + c^2 - 2 \, b \, c \cos \alpha $$
    <!-- more code -->
    ''';
    

    I've tried <img src="http://localhost:8080/assets/app_icon.png"> <br> and <img src="file:///android_asset/flutter_assets/assets/app_icon.png"> <br>

    Thanks

    opened by nilsmechanix 9
  • How to check TeXViewDocument HTML Radio Button from TeXView onTap

    How to check TeXViewDocument HTML Radio Button from TeXView onTap

    @shah-xad First of all Thank you very much for developing this amazing Flutter package. Also, sorry for asking this as an issue,

    I've implemented a quiz view using flutter_tex and all the things are working very well as I expected. But, unfortunately, I'm a little bit stuck on my one of a task. What I want to do actually When the user clicks a TeXViewInkwell, automatically check a Radio Button which is in TeXViewDocument as the child of above mentioned TeXViewInkWell.

    The onTap function of parent TeXtView working fine. But how can I check a RadioButton? definitely there must be a bunch of JavaScript code. So could you give me a little help? Please refer my following code.

      Widget getQuestionView(){
        String _imageUrl="";
    
        return Container(
          decoration: new BoxDecoration(
            image: DecorationImage(
              image: new ExactAssetImage('assets/images/main_background.png'),
              fit: BoxFit.cover,
            ),
          ),
          child: Column(
            children: <Widget>[
              getAppBarUI(),
              Expanded(
                flex: 8,
                child: SingleChildScrollView(
                  child: FutureBuilder(
                    future: questionList,
                    builder:
                        (BuildContext context, AsyncSnapshot<List<Question>> snapshot) {
                      switch (snapshot.connectionState) {
                        case ConnectionState.waiting:
                          return Center(
                              child: Lottie.asset('assets/animations/dotloading.json'));
                        case ConnectionState.done:
                          if (snapshot.hasData && snapshot.data.length != 0) {
                            question = snapshot.data;
                            if(question[_currentIndex].imageUrl != null){
                              _imageUrl  = question[_currentIndex].imageUrl;
                            }
                            return Padding(
                              padding: const EdgeInsets.all(16.0),
                              child: Column(
                                children: <Widget>[
                                  TeXView(
                                      showLoadingWidget: false,
                                      renderingEngine: TeXViewRenderingEngine.katex(),
                                      children: [
                                        TeXViewDocument(question[_currentIndex].question,
                                            style: TeXViewStyle.fromCSS("color:black;background-color:white;padding:20px"),
                                        ),
                                      ],
                                      style: TeXViewStyle(
                                        margin: TeXViewMargin.all(0),
                                        elevation: 0,
                                        textAlign: TeXViewTextAlign.Left,
                                        padding: TeXViewPadding.all(0),
                                        borderRadius: TeXViewBorderRadius.all(0),
                                        backgroundColor: Colors.transparent,
                                      ),
                                      onTap: (childID) {
                                      }),
                                  question[_currentIndex].imageStatus == 1 ? Image.network(question[_currentIndex].imageUrl,width: 300) : Container(),
                                  TeXView(
                                      showLoadingWidget: false,
                                      renderingEngine: TeXViewRenderingEngine.katex(),
                                      children: [
                                        TeXViewInkWell(
                                          id: "1",
                                          child: TeXViewDocument(
                                            "<input type='radio' id='answerA' name='answersRadio' value='1' style='margin-right:15px'>" + question[_currentIndex].answerA,
                                            style: TeXViewStyle.fromCSS(
                                                "color:black;background-color:white;padding:20px"),
                                          ),
                                        ),
                                        TeXViewInkWell(
                                          id: "2",
                                          child: TeXViewDocument(
                                            "<input type='radio' id='answerB' name='answersRadio' value='2' style='margin-right:15px'>" + question[_currentIndex].answerB,
                                            style: TeXViewStyle.fromCSS(
                                                "color:black;background-color:white;padding:20px"),
                                          ),
                                        ),
                                        TeXViewInkWell(
                                          id: "3",
                                          child: TeXViewDocument(
                                            "<input type='radio' id='answerC' name='answersRadio' value='3' style='margin-right:15px'>" + question[_currentIndex].answerC,
                                            style: TeXViewStyle.fromCSS(
                                                "color:black;background-color:white;padding:20px"),
                                          ),
                                        ),
                                        TeXViewInkWell(
                                          id: "4",
                                          child: TeXViewDocument(
                                            "<input type='radio' id='answerD' name='answersRadio' value='4' style='margin-right:15px'>" + question[_currentIndex].answerD,
                                            style: TeXViewStyle.fromCSS(
                                                "color:black;background-color:white;padding:20px"),
                                          ),
                                        ),
                                        TeXViewInkWell(
                                          id: "5",
                                          child: TeXViewDocument(
                                            "<input type='radio' id='answerE' name='answersRadio' value='5' style='margin-right:15px'>" + question[_currentIndex].answerE,
                                            style: TeXViewStyle.fromCSS(
                                                "color:black;background-color:white;padding:20px"),
                                          ),
                                        ),
                                      ],
                                      style: TeXViewStyle(
                                        margin: TeXViewMargin.all(0),
                                        elevation: 0,
                                        textAlign: TeXViewTextAlign.Left,
                                        padding: TeXViewPadding.all(0),
                                        borderRadius: TeXViewBorderRadius.all(0),
                                        backgroundColor: Colors.transparent,
                                      ),
                                      onTap: (childID) {
                                        setState(() {
                                          print("TeXView $childID is tapped.");
                                        });
                                      }),
                                ],
                              ),
                            );
                          } else {
                            return Container();
                          }
                          break;
                        default:
                          return Container(); // also check your listWidget(snapshot) as it may return null.
                      }
                    },
                  )
                  ,
                ),
              ),
              Expanded(
                child: Padding(
                  padding: const EdgeInsets.only(bottom: 10),
                  child: Container(
                    alignment: Alignment.bottomCenter,
                    child: RaisedButton(
                      child: Text(
                          question != null ? _currentIndex == (question.length - 1)
                              ? "Submit"
                              : "Next" : "Next"),
                      onPressed: (){
                        _nextSubmit();
                      },
                    ),
                  ),
                ),
              )
    
            ],
          ),
        );
      }
    

    Current Implemented Screen

    opened by sudeshkumara 8
  • Bug: flutter tex web not working

    Bug: flutter tex web not working

    Inside web_tex_view.dart in the _getTeXViewUrl in the return statement when you are forming the URL, query parameter rawTeXHTML should named urlRawTeXHTML.

    It is being accessed as urlRawTeXHTML inside flutter_tex.js

    bug 
    opened by suchibrata 6
  • Images occasionally don't render correctly

    Images occasionally don't render correctly

    When including images in the HTML string they don't always render correctly. I think it depends on the size of the image. For large images it seems to happen more often. Maybe if the MathJax is finished before the image downloads is the cause of the problem. Below is an example with a large image

    import 'package:flutter/material.dart';
    import 'package:flutter_tex/flutter_tex.dart';
    
    main() async {
      runApp(FlutterTeXExample());
    }
    
    class FlutterTeXExample extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: MainPage(),
        );
      }
    }
    
    class MainPage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          backgroundColor: Colors.white,
          appBar: AppBar(
            title: Text("Flutter TeX Example"),
          ),
          body: Container(
            height: MediaQuery.of(context).size.height,
            child: SingleChildScrollView(
              child: Column(
                children: <Widget>[
                  TeXView(
                      keepAlive: true,
                      key: UniqueKey(),
                      renderingEngine: RenderingEngine.Katex,
                      loadingWidget: Center(child: CircularProgressIndicator()),
                      teXHTML: katexTeXHTML,
                    onRenderFinished: (_) {
                        print('render finished');
                    },
                    onPageFinished: (_) {
                      print('page finished');
                    },
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }
    
    String katexTeXHTML = r"""
       <p>
         A simple Example to render \( \rm\\TeX \) in flutter with full <B>HTML</B> support<br><br>
     
         When \(a \ne 0 \), there are two solutions to \(ax^2 + bx + c = 0\) and they are
     
         $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$<br>
     
     
         Bohr Radius
     
         \( a_0 = \frac{{\hbar ^2 }}{{m_e ke^2 }} \)<br>
     
         Relationship between Energy and Principal Quantum Number
     
         \( E_n = - R_H \left( {\frac{1}{{n^2 }}} \right) = \frac{{ - 2.178 \times 10^{ - 18} }}{{n^2 }}joule \)<br><br>
      
         <br><br>
       </p>
    
        Inline Chemistry Equations <br>
             <p>    
         \( \ce{CO2 + C -> 2 CO} \) <br>
      
         \( \ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-} \) <br><br><br>
    
         Scroll long formulas $$ \ce{x Na(NH4)HPO4 ->[\Delta] (NaPO3)_x + x NH3 ^ + x H2O} $$ <br>
         
        </p>
        <img src="https://img.wallpapersafari.com/desktop/1920/1080/84/27/nMWzIB.jpg" />
        <br>
       """;
    
    bug 
    opened by jmanns 6
  • Can a TexView be refreshed / re-rendered?

    Can a TexView be refreshed / re-rendered?

    I attempted to place a TexView inside a StreamBuilder that passes some text to be displayed. The TexView stays unchanged.

    Is there a correct way to re-render it?

    opened by OscarEReyes 6
  • TeXViewGroup how to clear the selected option or initialise the selected option if the user is revisiting the question

    TeXViewGroup how to clear the selected option or initialise the selected option if the user is revisiting the question

    Question: Are you using the latest version of flutter_tex package? pub package Answer:Yes

    Question: If you are looking for a feature, have you watched the Demo Video and gone through the examples folder? Answer:Yes In TeXViewGroup how can I deselect the question, there is an option to deselect the option in TeXViewGroup.multipleSelection but in single mode how can the user deselect the selected option. Further if the user revisits the attempted question, the marked option is deselected again. Is there a function present which enables us to initialise and select the option when loading a previously attempted questions and apply the selectedItemStyle on that particular option.

    I have tried setting `selectedOptionId = "" ; but it doesn't refresh the style accordingly. If the user revisits a question, we can store the responses in the list and when a previously attempted question is opened there should be an option to take the selected items from the list. How can we achieve this functionality?

    opened by arth17singh 2
  • The plugin `flutter_tex` uses a deprecated version of the Android embedding

    The plugin `flutter_tex` uses a deprecated version of the Android embedding

    Hi, Upon installing the new version on Flutter using flutter pub add flutter_tex I get the following notice: The plugin flutter_tex uses a deprecated version of the Android embedding. To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider
    removing it since a future release of Flutter will remove these deprecated APIs. If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.

    Is it possible to migrate the plugin to the V2 embedding? Thanks, Oren

    opened by omishali 0
  • String from API calls

    String from API calls

    TeX's input only takes const String, but my string comes from an API call on my backend, and it does not render the raw string, it just display it raw.

    opened by JohnOlorunsogo 0
  • No support for Html table styles. So table contents get condensed which makes it difficult to read and understand

    No support for Html table styles. So table contents get condensed which makes it difficult to read and understand

    Question: Are you using the latest version of flutter_tex package? pub package Answer: yes

    Question: If you are looking for a feature, have you watched the Demo Video and gone through the examples folder? Answer: yes

    opened by sazzad3802 1
  • Load image from device data directory

    Load image from device data directory

    Question: Are you using the latest version of flutter_tex package? pub package yes:

    Question: If you are looking for a feature, have you watched the Demo Video and gone through the examples folder? Yes:

    I have downloaded image to device, how to show it using flutter_tex.TeXViewImage Currently, it supports only two options TeXViewImage.asset TeXViewImage.network

    opened by phvaha1 0
Owner
Shahzad Akram
A self taught Programmer and a Chemist by profession.
Shahzad Akram
Dart package to rank proposals according to Majority Judgment, using a score-based algorithm for performance and scalability

Majority Judgment for Dart This Dart package helps to resolve polls using Majority Judgment. Features Efficient Majority Judgment algorithm, scales we

Mieux Voter 1 Oct 18, 2021
Flutter package to determine whether to prompt a user to rate your app based on a given criteria.

should_review This package helps determine if a user should be prompted to rate your app. The behavior of this package was inspired by the stackoverfl

Francis Ilechukwu 4 Sep 10, 2022
A Dart FFI package to send 💬 toasts on Windows. Written in C++, based on WinToast.

desktoasts A Dart package to send native ?? toasts on Windows. Installation For Flutter dependencies: ... desktoasts: ^0.0.2 For Dart CLI here Sup

Hitesh Kumar Saini 37 Mar 7, 2022
A Package providing Core functionality/Template to start off a Clean Architecture based project

A Package providing Core functionality/Template to start off a Clean Architecture based project Features Provides with APIResult & UseCaseResult model

null 1 Dec 25, 2021
gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required.

GUI_AUTOMATION gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required. Install py

Hassan Kanso 34 Oct 30, 2022
Body mass index (BMI) is a measure of body fat based on height and weight that applies to adult men and women. Here is the simple program for BMI calculator in Flutter.

BMI-Calculator Body mass index (BMI) is a measure of body fat based on height and weight that applies to adult men and women. Here is the simple progr

Renganathan 2 Oct 31, 2021
Decentralized SkyDB-based alternative to Twitter, YouTube and Instagram with a native iOS, Android and web app.

SkyFeed SkyFeed is a decentralized SkyDB-based alternative to Twitter, YouTube and Instagram with a native Android, web and (soon) iOS app. Use You ne

null 88 Oct 28, 2022
A package that lets you include a cool, nice looking and validated Password TextFormField in your app to enhance user experience. The package is fully & easily modifiable.

A package that lets you include a cool, nice looking and validated Password TextFormField in your app to enhance user experience. The package is fully

Muhammad Hamza 21 Jan 1, 2023
Social Media Chat application based on mail and made with flutter

gossip_box A Social Media Chat app Based on mail built with flutter, dart and firebase. Here you can see the demo video: PS: This is created with fire

V Nagasai 5 Jun 22, 2022
A personalized yoga trainer app based on Flutter and TensorFlow Lite.

Yoga Guru Yoga Guru is your personalized yoga trainer app based on Flutter. It uses posenet, a pre-trained deep learning model, to estimate body poses

Aditya Sharma 157 Nov 9, 2022
Alexander-Playlist - A media player and playlist based on Flutter

Alexander's App - silexcorp A new Flutter application. http://alexandermateo.com/ Config Firebase Configure firebase to your project. Screenshot | | |

Alexander Mateo 19 Nov 8, 2021
🌍 Full-stack travel app using Flutter, Dart and Geolocation service. Map updates 🗺 along with map markers based on location filters 📌

Tripscape ?? Built With Frontend Flutter Dart Backend & Libraries Geolocator Google Maps Flutter Provider API Places API Google Maps API Places Autoco

Soumyadeep Das 3 Nov 23, 2022
Pneumonia and COVID-19 detection Mobile App from Chest X-rays using CNN based deep learning classifiers.

image_classification A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you sta

null 1 Dec 7, 2021
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Jan 8, 2023
AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.

AuthPass.app - Open Source Password Manager for mobile and desktop AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3

AuthPass 1.5k Jan 5, 2023
A Flutter app based on the design of the Social Media Integeration App

A Flutter app based on the design of the Social Media Integeration App

Achmad Rizki Nur Fauzie 2 Dec 8, 2021
Flutter based android app

Ask Us Ask Us is a flutter based android app. It's basically a discussion forum somewhat like Quora, designed to ask questions, share their experience

OpenCode IIIT Allahabad 8 Dec 13, 2022
A flutter based app using python scripts as backend for a quotes app.

Fluthon APP A new Flutter project which is supported from a python script and lists quotes . Deployment ?? -> /Script - python main.py. -> Run main.d

Yash Joshi 4 Nov 16, 2022
GJAMAssist is an open source Flutter-based template for a business assistant application.

GJAMAssist is an open source Flutter-based template for a business assistant application. It has been designed to use Google Firebase as ba

Japan Gor 12 Oct 9, 2022