A simple and customizable flutter package for inputting phone number in intl / international format uses Google's libphonenumber

Overview

Intl Phone Number Input

A simple and customizable flutter package for inputting phone number in intl / international format uses Google's libphonenumber

CustomDecoration CustomBorder Default
Screenshot_1587652933 Screenshot_1587652933 Screenshot_1587652933
Web

What's new

  • Null Safety Migration
  • Upgraded dependencies
  • Breaking Change Depreciated SelectorConfig.backgroundColor and replaced with Theme.of(context).canvasColor
  • Fixed Dominican Republic dial_code at country_list.dart #196
  • Fixed change country when initialValue is set with the widget #170
  • Fixed PhoneNumberUtil.getNumberType on mobile and web #188
  • Added translations for Turkish and Romanian #190
  • Updated Taiwan country name #181
  • Added style config for selector button #177
  • Removed any potential duplicates on countries list #175
  • Fixed ignore selector and text field spacing in prefixIcon mode #161
  • 😅 Well, Actually using cursorColor #160
  • Fixed initialValue should not be formatted if formatInput is false #192
  • Fixed Bottom Sheet RenderFlex overflow bug #187, similar to Search by Country name or dial code bug #197
  • Updated README.md file to fix Web release does not recognize the packages #186
  • Fixed onSaved callback in the InternationalPhoneNumberInput is not synchronous #180
  • Cherry picked pending fixes and pull request from repo.

Features

  • Web support.
  • Support for RTL languages
  • Selector mode dropdown, bottom sheet and dialog
  • As You Type Formatter: formats inputs to its selected international format
  • Get Region Info with PhoneNumber.getRegionInfoFromPhoneNumber(String phoneNumber, [String isoCode]);
  • Format PhoneNumber with PhoneNumber.getParsableNumber(String phoneNumber, String isoCode) or PhoneNumber Reference.parseNumber()
  • Custom list of countries e.g. ['NG', 'GH', 'BJ' 'TG', 'CI']
    String phoneNumber =  '+234 500 500 5005';
    PhoneNumber number = await PhoneNumber.getRegionInfoFromPhoneNumber(phoneNumber);
    String parsableNumber = number.parseNumber();
    `controller reference`.text = parsableNumber

Web Support

In your app directory, edit web/index.html to add the following

... ">
>
<html>
    <head>
        ...
    head>
    <body>
    
        ...

        <script src="assets/packages/libphonenumber_plugin/js/libphonenumber.js">script>
        <script src="assets/packages/libphonenumber_plugin/js/stringbuffer.js">script>

        ...

        <script src="main.dart.js" type="application/javascript">script>
    body>
html>

Or checkout /example folder from Github.

Note

    PhoneNumber.getRegionInfoFromPhoneNumber(String phoneNumber, [String isoCode])

Could throw an Exception if the phoneNumber isn't recognised its a good pattern to pass the country's isoCode or have '+' at the beginning of the string

isoCode could be null if PhoneNumber is not recognised

Usage

Constructors

s/n Constructor
1 InternationalPhoneNumberInput

Available Parameters

InternationalPhoneNumberInput({
    Key key,
      this.selectorConfig = const SelectorConfig(),
      @required this.onInputChanged,
      this.onInputValidated,
      this.onSubmit,
      this.onFieldSubmitted,
      this.validator,
      this.onSaved,
      this.textFieldController,
      this.keyboardAction,
      this.keyboardType = TextInputType.phone,
      this.initialValue,
      this.hintText = 'Phone number',
      this.errorMessage = 'Invalid phone number',
      this.selectorButtonOnErrorPadding = 24,
      this.spaceBetweenSelectorAndTextField = 12,
      this.maxLength = 15,
      this.isEnabled = true,
      this.formatInput = true,
      this.autoFocus = false,
      this.autoFocusSearch = false,
      this.autoValidateMode = AutovalidateMode.disabled,
      this.ignoreBlank = false,
      this.countrySelectorScrollControlled = true,
      this.locale,
      this.textStyle,
      this.selectorTextStyle,
      this.inputBorder,
      this.inputDecoration,
      this.searchBoxDecoration,
      this.textAlign = TextAlign.start,
      this.textAlignVertical = TextAlignVertical.center,
      this.scrollPadding = const EdgeInsets.all(20.0),
      this.focusNode,
      this.cursorColor,
      this.autofillHints,
      this.countries
    });
```|

```dart
SelectorConfig({
    this.selectorType = PhoneInputSelectorType.DROPDOWN,
    this.showFlags = true,
    this.useEmoji = false,
    this.backgroundColor,
    this.countryComparator,
    this.setSelectorButtonAsPrefixIcon = false,
});
Parameter Datatype Initial Value
onInputChanged function(PhoneNumber) null
onSaved function(PhoneNumber) null
onInputValidated function(bool) null
focusNode FocusNode null
textFieldController TextEditingController TextEditingController()
onSubmit Function() null
keyboardAction TextInputAction null
keyboardType TextInputType TextInputType.phone
countries List null
textStyle TextStyle null
selectorTextStyle TextStyle null
inputBorder InputBorder null
inputDecoration InputDecoration null
initialValue PhoneNumber null
hintText String Phone Number
selectorButtonOnErrorPadding double 24
spaceBetweenSelectorAndTextField double 12
maxLength integer 15
isEnabled boolean true
autoFocus boolean false
autoValidateMode AutoValidateMode AutoValidateMode.disabled
formatInput boolean true
errorMessage String Invalid phone number
selectorConfig SelectorConfig SelectorConfig()
ignoreBlank boolean false
locale String null
searchBoxDecoration InputDecoration null
textAlign TextAlign TextAlign.start
textAlignVertical TextAlignVertical TextAlignVertical.center
scrollPadding EdgeInsets EdgeInsets.all(20.0)
countrySelectorScrollControlled boolean true
cursorColor String \ null
autofillHints Iterable null

Selector Types

DROPDOWN BOTTOMSHEET DIALOG
Screenshot_1587652933 Screenshot_1587652933 Screenshot_1587652933

Testing

Widget Key parameters and Helper classes are now available for integration testing check out this example 🎯 Integration Testing Example

Contributions

If you encounter any problem or the library is missing a feature feel free to open an issue. Feel free to fork, improve the package and make pull request.

Co-contributors

Interested in becoming a co-contributors checkout this link for more info discussions/201

Contributors

Made with contributors-img.

Dependencies

Credits

A special thanks to niinyarko

FAQ

  • For discussions and frequent question and concerns, check here
Comments
  • Soft keyboard automatically go back

    Soft keyboard automatically go back

    Whenever I tap on the text field to enter the keyboard appears for a moment than automatically go back due to which I am not able to write anything in text field. I am getting following message in debug console W/IInputConnectionWrapper(14564): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper(14564): getSelectedText on inactive InputConnection W/IInputConnectionWrapper(14564): getTextAfterCursor on inactive InputConnection

    Following is my code

    InternationalPhoneNumberInput( onInputChanged: (PhoneNumber input) { setState(() => phone = input); }, isEnabled: true, selectorType: PhoneInputSelectorType.DIALOG, autoValidate: true, hintText: 'phone number', errorMessage: "*invalid phone number", onInputValidated: (val) => print(val),

                formatInput: true,
               
              )
    
    opened by usamabse048 15
  • FAQ

    FAQ

    Hello, Thank you for the package. In France mobile phone numbers start with '06' and '07'.

    06 is woking but 07 is giving 'invalid phone number'. I tried to solve but I didn't find it.

    Could you add 07 as a valid number in France please?

    opened by davarbla 12
  • Unable to load asset

    Unable to load asset

    Describe the bug The following assertion was thrown resolving an image codec: Unable to load asset: packages/intl_phone_number_input/assets/flags/pt_br.png

    Package version intl_phone_number_input: ^0.5.0

    Flutter version Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel beta, 1.21.0-9.2.pre, on Mac OS X 10.15.6 19G2021, locale it-IT)

    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2) [✓] Xcode - develop for iOS and macOS (Xcode 11.7) [✓] Android Studio (version 4.0)

    Targeted platforms (please complete the following information): iOS (tested)

    opened by cmorsucci 12
  • input_widget.dart:321:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.

    input_widget.dart:321:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.

    Describe the bug /src/flutter/.pub-cache/hosted/pub.dartlang.org/intl_phone_number_input-0.7.0+2/lib/src/widgets/input_widget.dart:321:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.

    • 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('/src/flutter/packages/flutter/lib/src/widgets/binding.dart'). WidgetsBinding.instance!.addPostFrameCallback((timeStamp) {

    Package version intl_phone_number_input: ^0.7.0+2

    Flutter version Flutter 3.0.1 • channel stable • https://github.com/flutter/flutter.git Framework • revision fb57da5f94 (10 hours ago) • 2022-05-19 15:50:29 -0700 Engine • revision caaafc5604 Tools • Dart 2.17.1 • DevTools 2.12.2

    Running flutter doctor... Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, 3.0.1, on Microsoft Windows [Version 10.0.22000.675], locale en-ZA) [√] Android toolchain - develop for Android devices (Android SDK version 31.0.0) [√] Chrome - develop for the web [√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.0) [√] Android Studio (version 2021.1) [√] VS Code (version 1.67.1) [√] Connected device (3 available) [√] HTTP Host Availability

    • No issues found!

    To Reproduce Steps to reproduce the behavior:

    1. Pub get
    2. Start Project (Run main.dart)

    Expected behavior No "Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null" displayed

    Screenshots

    ** Targeted platforms (please complete the following information):**

    • OS [Android]
    • Web [❌]

    Additional context

    opened by hendrikdewilde 11
  • Country selection not working if initial value is set

    Country selection not working if initial value is set

    Describe the bug When you set an initial value (the iso code), and you have setState() in onInputValidated, you cannot select another country. If you do not set an initial value, this snippet works, if you do not call setState(), it works as well...

    In a previous version this worked fine, so it must be a bug I guess.

    Package version 0.5.2+2

    Flutter version Flutter 1.24.0-4.0.pre.41 • channel master

    To Reproduce

    InternationalPhoneNumberInput(
                     initialValue: PhoneNumber(isoCode: 'CO'),
                     onInputChanged: (PhoneNumber number) {
                       print("onInputChanged " + number.toString());
                       _phoneNumber = number.phoneNumber;
                     },
                     onInputValidated: (bool value) {
                       print("onInputValidated " + value.toString());
                       setState(() {
                         _phoneIsValid = value;
                       });
                     },
                   ),
    

    ** Targeted platforms (please complete the following information):** -Tested in Android emulator

    opened by Chris1234567899 11
  • Flags fail to load

    Flags fail to load

    Hey!

    Thanks for the package! Everything is working as expected, except for the differents assets that fail to load. I gave you a screenshot of the error I'm getting, it seems to be having issues with the ImageProvider as you can see. image Any idea if you can fix it ? Or if it's possible to turn off the images ? I don't really need them anyway

    thanks!

    opened by StefanSpeterDev 11
  • textFieldController is only returning the phone number and not the country code

    textFieldController is only returning the phone number and not the country code

    printing the phone number inside onInputChanged is returning the expected number with country code, however passing the number through textFieldController is only returning the number without the country code to the TextEditingController().

    opened by miller619 10
  • When I set an initialValue to pre-select local country code, if I change the country code, enter a number and validate, country code is restored to initial value

    When I set an initialValue to pre-select local country code, if I change the country code, enter a number and validate, country code is restored to initial value

    Describe the bug

    I have a screen that looks like this:

    import 'dart:io';
    
    import 'package:flutter/material.dart';
    import 'package:intl_phone_number_input/intl_phone_number_input.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            // This is the theme of your application.
            //
            // Try running your application with "flutter run". You'll see the
            // application has a blue toolbar. Then, without quitting the app, try
            // changing the primarySwatch below to Colors.green and then invoke
            // "hot reload" (press "r" in the console where you ran "flutter run",
            // or simply save your changes to "hot reload" in a Flutter IDE).
            // Notice that the counter didn't reset back to zero; the application
            // is not restarted.
            primarySwatch: Colors.blue,
            // This makes the visual density adapt to the platform that you run
            // the app on. For desktop platforms, the controls will be smaller and
            // closer together (more dense) than on mobile platforms.
            visualDensity: VisualDensity.adaptivePlatformDensity,
          ),
          home: HomePage(),
        );
      }
    }
    
    class HomePage extends StatefulWidget {
      @override
      _HomePageState createState() => _HomePageState();
    }
    
    class _HomePageState extends State<HomePage> {
      final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
      PhoneNumber _phoneNumber;
      bool _verifyingPhoneNumber = false;
    
      Future<void> _validatePhoneNumber() async {
        if (_formKey.currentState.validate()) {
          _formKey.currentState.save();
          setState(() {
            _verifyingPhoneNumber = true;
          });
          print(_phoneNumber.toString());
        }
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: SafeArea(
            child: Padding(
              padding: const EdgeInsets.all(32.0),
              child: Form(
                key: _formKey,
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Expanded(
                      child: InternationalPhoneNumberInput(
                        isEnabled: !_verifyingPhoneNumber,
                        onInputChanged: (value) {
                          _phoneNumber = value;
                        },
                        initialValue: PhoneNumber(
                          isoCode: Platform.localeName.split('_').last,
                        ),
                        autoFocus: true,
                        selectorConfig: SelectorConfig(
                          selectorType: PhoneInputSelectorType.DIALOG,
                          countryComparator: (country1, country2) {
                            return country1.name.compareTo(country2.name);
                          },
                          useEmoji: true,
                        ),
                      ),
                    ),
                    Row(
                      children: [
                        Container(
                          width: 44.0,
                          height: 44.0,
                          child: RawMaterialButton(
                            shape: CircleBorder(),
                            child: _verifyingPhoneNumber
                                ? CircularProgressIndicator(
                                    valueColor: AlwaysStoppedAnimation<Color>(
                                      Theme.of(context).colorScheme.onSecondary,
                                    ),
                                  )
                                : Icon(
                                    Icons.arrow_forward_ios,
                                    color:
                                        Theme.of(context).colorScheme.onSecondary,
                                  ),
                            fillColor: Theme.of(context).colorScheme.secondary,
                            onPressed:
                                _verifyingPhoneNumber ? null : _validatePhoneNumber,
                          ),
                        ),
                      ],
                    ),
                  ],
                ),
              ),
            ),
          ),
        );
      }
    }
    

    As you can see, I use initialValue to set a starting country code that corresponds to the region the phone is in. But it the user selects a different country code, inputs a number and clicks the button to call the _validatePhoneNumber() function, the phone number I get is correct but the country code selector is reset back to the one of the initialValue.

    I think it has to do with the condition in didUpdateWidget(InternationalPhoneNumberInput oldWidget) but I don't understand enough about the internal logic of this widget to mess with it.

    This makes the user think that the wrong phone number with the wrong country code might have been submitted and it's not good. I tested the code above in a brand new Flutter project and it's enough to reproduce the bug.

    Package version 0.5.2+2

    Flutter version Stable 1.22.5

    To Reproduce Simply insert the code above in a brand new flutter project with the intl_phone_number_input: ^0.5.2+2 dependency Run it, choose a different country code from the default one, type a phone number and click the button is the bottom left corner. Observe the country code selector reset.

    Expected behavior Country code selector should not be modified by validation

    ** Targeted platforms (please complete the following information):**

    • Both Android and iOS
    • Did not test on web
    opened by sarbogast 9
  • Invalid phone number

    Invalid phone number

    I initially made my home country by default, after which, based on the number I received, I change the country, but as soon as I put my number in there, I get an error that the format is wrong

    PhoneNumber _initialPhoneNumber = PhoneNumber(isoCode: 'US');
    
      @override
      void initState() {
        if (widget.phoneNumber != null) {
          _parsablePhoneNumber(widget.phoneNumber);
        }
    
        super.initState();
      }
    
      Future _parsablePhoneNumber(String phoneNumber) async {
        if (phoneNumber.isNotEmpty) {
          PhoneNumber numberRegionInfo =
              await PhoneNumber.getRegionInfoFromPhoneNumber(phoneNumber);
    
          setState(() {
            _initialPhoneNumber = numberRegionInfo;
          });
        }
      }
    

    Auto-validation is enabled in your widget

    bug question 
    opened by illiashvedov 9
  • Valid number does not validate on Chrome or Web

    Valid number does not validate on Chrome or Web

    hintText: doesn't show up on any platforms... ): and on Web versions, it seems to not validate the phone ))))::::: Screen Shot 2020-02-08 at 2 46 45 PM Screen Shot 2020-02-08 at 2 47 27 PM Screen Shot 2020-02-08 at 2 48 42 PM

    # sign_up.dart
    PhoneNumber phone;
    ...
    SizedBox(height: 20.0,),
                    InternationalPhoneNumberInput(
                      onInputChanged: (PhoneNumber input){
                        setState(() => phone = input);
                      },
                      initialCountry2LetterCode: "US",
                      isEnabled: true,
                      selectorType: PhoneInputSelectorType.DIALOG,
                      autoValidate: true,
                      hintText: 'phone number',
                      errorMessage: "*invalid phone number",
                      onInputValidated: (val) => print(val),
                      formatInput: true,
                      inputDecoration: InputDecoration(border: UnderlineInputBorder()),
                    ),
    ...
    
    opened by jasonkolodziej 9
  • PlatformException on empty phone string

    PlatformException on empty phone string

    Hi, really appreciate you getting out the latest version of this excellent package thanks :-)

    Describe the bug

    With the latest version I get the following error:

    Exception has occurred. PlatformException (PlatformException(NumberParseException, The string supplied did not seem to be a phone number., null, null))

    whenever I select the country code pop-up, choose a country code and my telephone number is empty. If I then continue and type the first digit of my phone number I get 2 of these errors. After that there are no more errors if I complete the number.

    Package version 0.7.0 - released yesterday

    Flutter version Flutter (Channel stable, 2.0.3, on Microsoft Windows [Version 10.0.18363.1316], locale en-GB)

    To Reproduce Steps

    1. Phone number is empty.
    2. Select country code drop-down
    3. Select country (first platform error)
    4. Type first digit of phone number (2 more platform errors)
    5. Type remainder of number (no more errors)

    Code Snippet

    InternationalPhoneNumberInput(
           spaceBetweenSelectorAndTextField: 0,
           hintText: currentInputState.inputPrompt,
           focusNode: focusNode,
           autoFocus: showKeyboard,
           cursorColor: AppState.i.chatFooterSendBoxCursorColour,
           textStyle: TextStyle(
             fontSize: AppState.i.chatFooterSendBoxFontSize,
             decoration: TextDecoration.none,
             color: AppState.i.chatFooterSendBoxFontColour
           ),
           inputBorder: InputBorder.none,
           onInputChanged: (PhoneNumber number) {
             onTextChanged(number.phoneNumber);
             currentPhoneNumber = number;
             print(number.phoneNumber);
           },
           onInputValidated: (bool value) {
             print(value);
           },
           selectorConfig: SelectorConfig(
             selectorType: PhoneInputSelectorType.BOTTOM_SHEET,
           ),
           ignoreBlank: false,
           autoValidateMode: AutovalidateMode.disabled,
           selectorTextStyle: TextStyle(color: Colors.black),
           initialValue: currentPhoneNumber,
           textFieldController: textController,
           formatInput: false,
           keyboardType: TextInputType.numberWithOptions(signed: true, decimal: true),
           //inputBorder: OutlineInputBorder(),
           onSaved: (PhoneNumber number) {
             //print('On Saved: $number');
           },
         )
    

    Use case Show country code + telephone number for input. Interaction with the widget ?

    Expected behavior No error to occur.

    Screenshots N/A

    ** Targeted platforms (please complete the following information):**

    • Android

    Additional context N/A

    opened by PaulVipond 8
  • Font color of my app is white and country names are not seen due to this.

    Font color of my app is white and country names are not seen due to this.

    Is your feature request related to a problem? Please describe. When having a font color of white, country names are displayed but can not be seeing.

    Describe the solution you'd like The list of countries should be editable in order to set the proper color or at least give a background color for the list in order to contrast the white color of my defined font.

    opened by Matias-Raverta 0
  • Styling option for the country selector dialog box.

    Styling option for the country selector dialog box.

    Hey @natintosh, it would be great if the package can support

    • Styles like setting constraints for height and width of the selector dialog (useful for the web).
    • Applying Text styles on the country lists.

    Thank you in advance.

    opened by eswarupkumar 0
  • smartAuth integration or isNotValid editing access

    smartAuth integration or isNotValid editing access

    Problem: I would like to add smartAuth requestHint() method to my authentication process. But everytime I call controller.text and apply the value I received from requestHint, later, when i call formKey.currentState!.validate() it returns that the field is not valid (the format of the input is the same as when I type if with the keyboard).

    final smartAuth = SmartAuth();
    final res = await smartAuth.requestHint(
      isPhoneNumberIdentifierSupported: true,
      isEmailAddressIdentifierSupported: false,
      showCancelButton: true,
    );
    if (res != null) {
      final PhoneNumber phone = await PhoneNumber.getRegionInfoFromPhoneNumber(res.id);
      String parsableNumber = await PhoneNumber.getParsableNumber(phone);
      phoneNumberController..text = parsableNumber ?? '';
    }
    

    Cause: This issue is due to bool isNotValid = true; (line 140 of intl_phone_number_input/lib/src/widgets/input_widget.dart (I tried to change manually this value to false in the file, I had no issue so the problem comes from here)). This value is not accessible from the parents and can only be changed after a human interaction. Maybe you could create a custom TextInputController that have a method that can edit this value manually from parents.

    opened by aymaalo 0
  • Egypt 015 Code

    Egypt 015 Code

    I am using the latest version. In egypt if mobile started with 15, its miss up the number of digits

    Suppose to be 11 digit wame ass 10,11,12

    But once its 6 digits, the package mark it as a valid number and automatically add the country code with the provider code and i have to keep clicking to add eqch number till i make it 11 digit as it should be.

    opened by HaniOurEdu 0
Owner
Ogunye Nathaniel Oluwatobiloba
(☞゚ヮ゚)☞ Empires rise, Empires fall, people only remember their legacies.
Ogunye Nathaniel Oluwatobiloba
Leverages libphonenumber to allow for asynchronous and synchronous formatting of phone numbers in Flutter apps

Leverages libphonenumber to allow for asynchronous and synchronous formatting of phone numbers in Flutter apps. Includes a TextInputFormatter to allow real-time AsYouType formatting.

Bottlepay 43 Nov 2, 2022
Eder Zambrano 0 Feb 13, 2022
Flutter package for listening SMS code on Android, suggesting phone number, email, saving a credential.

Flutter Smart Auth From Tornike & Great Contributors Flutter package for listening SMS code on Android, suggesting phone number, email, saving a crede

Tornike 16 Jan 1, 2023
it's just phone number authentication and connected to firebase

simplevar A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if thi

vivek kumar 0 Dec 27, 2021
An android app that can automatically dial a phone number.

AutoCallScheduler An android app that can automatically dial a phone number within a given scheduled of time. Basically it's a test base app of google

Rezwan 24 Dec 4, 2022
Presentation-Remote-PC - Manage your presentation from your smart phone - Phone Client

Presentation-Remote-PC Manage your presentation from your smart phone - Phone Cl

Hasan Ragab Eltantawy 1 Jan 25, 2022
A Dart package that provides a customizable country phone code picker for your Flutter application

A Flutter package that provides an easy and customizable country phone code picker widget! Features This package comes with a lot of customization all

Samit Kapoor 1 Oct 1, 2022
Flutter app using MVVM architecture pattern , dio , provider , intl packages.

News App Simple news application using free news API for fetching realtime data from the internet. Features -Used MVVM architecture pattern. Packages

null 3 Mar 25, 2022
A Dart widget for entering international telephone numbers with dropdown searching input countries

Dart Tel Input A Dart widget for entering international telephone numbers with dropdown searching input countries Getting Started Add the following li

աɨռɢӄաօռɢ 8 Oct 29, 2020
A simple dart package to convert large numbers to a human readable format. 1278 to 1.2K instead, for example.

A simple dart package to convert large numbers to a human readable format. 1278 to 1.2K instead, for example. Features Represents large numbers in ter

Rohit V 1 Oct 8, 2022
A simple sprite format for building 1bit styled graphics.

Mini Sprite Mini sprite is a simple, matrix based format for creating 1bit styled graphics. Project structure Mini Sprite is composed of several proje

Blue Fire 16 Dec 15, 2022
A JSON serialize class to convert 'to' and 'from' JSON format Enums, DateTime and any of your own classes.

A JSON serialize class to convert 'to' and 'from' JSON format Enums, DateTime and any of your own classes. Introduction Jsonize solves the problem of

null 2 Nov 17, 2022
The Flutter app demonstrates displaying data in a weekly format.

Flutter weekly chart The Flutter app demonstrates displaying data in a weekly format. I came across this kind of screen in the app that I have been wo

BenBoonya 27 Jan 2, 2023
Flutter Currency Format Converter Library

Save your time on a little logic converting a currency from integer to string or string to integer. if you intrested to contribute to our little proje

Fathan Akram 1 Dec 7, 2021
MoneyTextFormField is one of the flutter widget packages that can be used to input values in the form of currencies, by displaying the output format in realtime.

MoneyTextFormField MoneyTextFormField is one of the flutter widget packages that can be used to input values in the form of currencies, by displaying

Fadhly Permata 11 Jan 1, 2023
A Flutter App To Download Videos From YouTube In Mp3 Format

Flutter_YouTube_MP3 App A Simple app To Download mp3 Videos From YouTube ❤️ Found this project useful? If you found this project useful, then please c

Sheraz Mahar 24 Dec 19, 2022
Rich text editor for Flutter based on Delta format (Quill fork)

Visual Editor Visual Editor is a Rich Text editor for Flutter originally forked from Flutter Quill. The editor is built around the powerful Delta docu

Visual Space 190 Jan 7, 2023
An application used to manage all your tabs in a clean, scrollable, categorized format.

Tabmanager Created by Sami-ul You can contact me here: [email protected] Recent updates Made the app run faster by using the backend to serve t

Sami 7 Nov 2, 2022
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web

OpenWp Simple tool to open WhatsApp chat without saving the number Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Swarup Bhanja Chowdhury 15 Nov 1, 2022