The web_socket_channel package provides StreamChannel wrappers for WebSocket connections.

Overview

Build Status

The web_socket_channel package provides StreamChannel wrappers for WebSocket connections. It provides a cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying StreamChannel, an implementation that wraps dart:io's WebSocket class, and a similar implementation that wraps dart:html's.

It also provides constants for the WebSocket protocol's pre-defined status codes in the status.dart library. It's strongly recommended that users import this library with the prefix status.

import 'package:web_socket_channel/io.dart';
import 'package:web_socket_channel/status.dart' as status;

main() async {
  var channel = IOWebSocketChannel.connect(Uri.parse('ws://localhost:1234'));

  channel.stream.listen((message) {
    channel.sink.add('received!');
    channel.sink.close(status.goingAway);
  });
}

WebSocketChannel

The WebSocketChannel class's most important role is as the interface for WebSocket stream channels across all implementations and all platforms. In addition to the base StreamChannel interface, it adds a protocol getter that returns the negotiated protocol for the socket, as well as closeCode and closeReason getters that provide information about why the socket closed.

The channel's sink property is also special. It returns a WebSocketSink, which is just like a StreamSink except that its close() method supports optional closeCode and closeReason parameters. These parameters allow the caller to signal to the other socket exactly why they're closing the connection.

WebSocketChannel also works as a cross-platform implementation of the WebSocket protocol. The WebSocketChannel.connect constructor connects to a listening server using the appropriate implementation for the platform. The WebSocketChannel() constructor takes an underlying StreamChannel over which it communicates using the WebSocket protocol. It also provides the static signKey() method to make it easier to implement the initial WebSocket handshake. These are used in the shelf_web_socket package to support WebSockets in a cross-platform way.

Comments
  • Flutter: Not working on some devices

    Flutter: Not working on some devices

    While testing out https://flutter.io/cookbook/networking/web-sockets/ example, I found some strange behaviour I cannot explane to myself.

    When connecting to a websocket server with an old Android device (Moto XT1092, Android 6.0.1) or the Android emulator (Android P) everything works fine.

    When connecting with a Pixel 2 I get an 'Connection not upgraded' exception. Some debugging on the server side shows that the incoming request does not have the 'Upgrade' header. Looking at source codes I could not find any clue, why the code should be different on different devices.

    Am I missing something?

    opened by MderM 11
  • This package is marked as being compatible with Flutter Web, but it isn't; unless I've missed something?

    This package is marked as being compatible with Flutter Web, but it isn't; unless I've missed something?

    Afternoon,

    The example code doesn't run in flutter web, you get the following exception:

    Error: Unsupported operation: Platform._version at Object.throw_ [as throw] (http://localhost:55950/dart_sdk.js:4461:11) at Function._version (http://localhost:55950/dart_sdk.js:54369:17) at Function.get version [as version] (http://localhost:55950/dart_sdk.js:54443:27) at get _version (http://localhost:55950/dart_sdk.js:54313:27) at Function.desc.get [as _version] (http://localhost:55950/dart_sdk.js:4941:15) at Function.get version [as version] (http://localhost:55950/dart_sdk.js:54287:26) at Object._getHttpVersion (http://localhost:55950/dart_sdk.js:178015:31) at new _http._HttpClient.new (http://localhost:55950/dart_sdk.js:173075:28) at Function.new (http://localhost:55950/dart_sdk.js:167766:16) at get _httpClient (http://localhost:55950/dart_sdk.js:178011:34) at Function.desc.get [as _httpClient] (http://localhost:55950/dart_sdk.js:4941:15) at Function.connect (http://localhost:55950/dart_sdk.js:177644:35) at Function.connect (http://localhost:55950/dart_sdk.js:176359:35) at Function.connect (http://localhost:55950/packages/web_socket_channel/io.dart.lib.js:76:94) at main (http://localhost:55950/packages/realtime_display/main.dart.lib.js:13:50) at main.next (<anonymous>) at runBody (http://localhost:55950/dart_sdk.js:36923:34) at Object._async [as async] (http://localhost:55950/dart_sdk.js:36951:7) at Object.main$ [as main] (http://localhost:55950/packages/realtime_display/main.dart.lib.js:12:18) at main$ (http://localhost:55950/web_entrypoint.dart.lib.js:14:12) at main$.next (<anonymous>) at http://localhost:55950/dart_sdk.js:36903:33 at _RootZone.runUnary (http://localhost:55950/dart_sdk.js:36757:58) at _FutureListener.thenAwait.handleValue (http://localhost:55950/dart_sdk.js:31921:29) at handleValueCallback (http://localhost:55950/dart_sdk.js:32462:49) at Function._propagateToListeners (http://localhost:55950/dart_sdk.js:32494:17) at async._AsyncCallbackEntry.new.callback (http://localhost:55950/dart_sdk.js:32232:27) at Object._microtaskLoop (http://localhost:55950/dart_sdk.js:37015:13) at _startMicrotaskLoop (http://localhost:55950/dart_sdk.js:37021:13) at http://localhost:55950/dart_sdk.js:32708:9Application finished.

    Has the package been tagged incorrectly, or have I missed something that needs to be changed when running in web?

    Thanks.

    question 
    opened by genjm 9
  • Add a WebSocketChannel.ready field and a timeout parameter

    Add a WebSocketChannel.ready field and a timeout parameter

    'ready' future indicates if the connection has been established. It completes on successful connection to the websocket.

    Closes #25

    Also adds a timeout parameter for a connect method to make it possible to timeout a connection after a certain amount of time.

    Not the cleanest solution probably I guess. But seems to be working and it's something I need (and maybe other ppl might need) for my project.

    cla: yes 
    opened by artur-ios-dev 9
  • [Ping Interval] Allow control over websocket ping interval

    [Ping Interval] Allow control over websocket ping interval

    Hi,

    The suggested PR allows control over the websocket ping interval even after the websocket was created. This is useful in some cases when ping interval is to be disabled temporarily.

    Thanks!

    cla: yes 
    opened by yanivshaked 8
  • Connection to {MY_SOCKET_URL} was not upgraded to websocket

    Connection to {MY_SOCKET_URL} was not upgraded to websocket

    channel = IOWebSocketChannel.connect(Uri.encode(MY_SOCKET_URL)); I'm listening to this channel and the snapshot returns

    WebSocketChannelException: WebSocketException: Connection to 'http://dev-system.worksamurai.com.au:0/api/websocket/messages/support?accessToken=oi+wBZblSq=&id=48#' was not upgraded to websocket

    question 
    opened by lionuncle 7
  • Error: Not found: 'dart:html'

    Error: Not found: 'dart:html'

    I am stuck with the following error in flutter after upgrading I am on the stable channel with the latest build

    Compiler message:

    lib/views/note_detail.dart:1:8: Error: Not found: 'dart:html'
    import 'dart:html';
           ^
    /F:/Flutter/flutter/packages/flutter/lib/src/painting/_network_image_web.dart:64:12: Error: Method not found: 'webOnlyInstantiateImageCodecFromUrl'.
        return ui.webOnlyInstantiateImageCodecFromUrl(resolved); // ignore: undefined_function
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    U
    nhandled exception:
    FileSystemException(uri=org-dartlang-untranslatable-uri:dart%3Ahtml; message=Standard
    FileSystem only supports file:* and data:* URIs)
    #0      StandardFileSystem.entityForUri (package:front_end/src/api_prototype/standard_file_system.dart:33:7)
    #1      asFileUri (package:vm/kernel_front_end.dart:604:37)
    #2
          writeDepfile (package:vm/kernel_front_end.dart:799:21)
    <asynchronous suspension>
    #3      FrontendCompiler.compile (package:frontend_server/frontend_server.dart:472:15)
    <asynchronous suspension>
    #4     
     _FlutterFrontendCompiler.compile (package:flutter_frontend_server/server.dart:38:22)
    #5      starter (package:flutter_frontend_server/server.dart:
    149:27)
    #6      main (file:///C:/b/s/w/ir/cache/builder/src/flutter/flutter_frontend_server/bin/starter.dart:8:30)
    #7      _startIsolate.<anonymous closure> (dart:isolat
    e-patch/isolate_patch.dart:305:32)
    #8      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
    
    Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
    build failed.
    
    FAILURE: Build failed with an exception.
    
    • Where: Script 'F:\Flutter\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 780

    • What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'.

    Process 'command 'F:\Flutter\flutter\bin\flutter.bat'' finished with non-zero exit value 1

    question 
    opened by PembaTamang 7
  • trying to connect to wrong port

    trying to connect to wrong port

      final uri = Uri.parse("ws://192.168.0.167:8080");
      
      debugPrint("connecting... ${uri.host} ${uri.port}");
      
      final socket = WebSocketChannel.connect(uri);
    

    the uri is correctly getting parsed but the socket throws exception after a minute, Connection TimedOut and displays wrong port, I didn't have the issue before.

    [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: WebSocketChannelException: WebSocketChannelException: SocketException: Connection timed out (OS Error: Connection timed out, errno = 110), address = 192.168.0.167, port = 53474
    E/flutter (21791): #0      new IOWebSocketChannel._withoutSocket.<anonymous closure>
    package:web_socket_channel/io.dart:98
    E/flutter (21791): #1      Stream.handleError.<anonymous closure> (dart:async/stream.dart:929:16)
    E/flutter (21791): #2      _HandleErrorStream._handleError (dart:async/stream_pipe.dart:269:17)
    E/flutter (21791): #3      _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:157:13)
    E/flutter (21791): #4      _RootZone.runBinaryGuarded (dart:async/zone.dart:1598:10)
    E/flutter (21791): #5      _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
    E/flutter (21791): #6      _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:7)
    E/flutter (21791): #7      _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:280:7)
    E/flutter (21791): #8      _SyncStreamControllerDispatch._sendError (dart:async/stream_controller.dart:778:19)
    E/flutter (21791): #9      _StreamController._addError (dart:async/stream_controller.dart:656:7)
    E/flutter (21791): #10     _RootZone.runBinaryGuarded (dart:async/zone.dart:1598:10)
    E/flutter (21791): #11     _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
    E/flutter (21791): #12     _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:7)
    E/flutter (21791): #13     _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:280:7)
    E/flutter (21791): #14     _SyncStreamControllerDispatch._sendError (dart:async/stream_controller.dart:778:19)
    E/flutter (21791): #15     _StreamController._addError (dart:async/stream_controller.dart:656:7)
    E/flutter (21791): #16     new Stream.fromFuture.<anonymous closure> (dart:async/stream.dart:251:18)
    E/flutter (21791): #17     _RootZone.runBinary (dart:async/zone.dart:1658:54)
    E/flutter (21791): #18     _FutureListener.handleError (dart:async/future_impl.dart:162:22)
    E/flutter (21791): #19     Future._propagateToListeners.handleError (dart:async/future_impl.dart:778:47)
    E/flutter (21791): #20     Future._propagateToListeners (dart:async/future_impl.dart:799:13)
    E/flutter (21791): #21     Future._completeError (dart:async/future_impl.dart:574:5)
    E/flutter (21791): #22     Future._asyncCompleteError.<anonymous closure> (dart:async/future_impl.dart:665:7)
    E/flutter (21791): #23     _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
    E/flutter (21791): #24     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
    

    and the ports are randomly generated? I tried to start the server with the port before it crashed, and it's not a default value but a new port everytime?

    opened by ash-hashtag 6
  • [Web] Unsupported operation: Platform._version

    [Web] Unsupported operation: Platform._version

    Unsupported operation: Platform._version

    The relevant error-causing widget was MaterialApp lib/main.dart:18 When the exception was thrown, this was the stack dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49 throw dart-sdk/lib/_internal/js_dev_runtime/patch/io_patch.dart 289:5 _version dart-sdk/lib/io/platform_impl.dart 119:32 get version dart-sdk/lib/io/platform.dart 68:37 get _version dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 802:8 get

    question 
    opened by imvab 6
  • Nullsafety version and release

    Nullsafety version and release

    Can we get a nullsafety version and release? My library uses Crypto and the Test package, and I can't publish a nullsafety version of my library because test depends on web_socket_channel which depends on the non-nullsafety version of crypto. crypto now has the 3.0.0-nullsafety.0 version of their library now.

    I have been trying to release a nullsafety version of my library uuid for a while now, and crypto was the blocker. But now pub lish complains that I am trying to override a non-dev depenecy when I do an override for test because I directly depend on crypto and the override is overriding it too, not just test.

    https://github.com/Daegalus/dart-uuid/issues/50 is the issue being tracked on my library.

    opened by Daegalus 6
  • Enable self-signed certificates or third-party CA's in IOWebSocketChannel

    Enable self-signed certificates or third-party CA's in IOWebSocketChannel

    Class IOWebSocketChannel has only a very simple constructor.

    By browsing a little bit through the code I saw internally the HttpClient class is used.

    Are there any plans to expose the SecurityContext by an optional constructor parameter or another convenience constructor in IOWebSocketChannel, thus making self-signed certificates available? I think the solution would be to pass such a SecurityContext down to the HttpClient.

    Please take a look at the following link:

    https://dart-lang.github.io/server/tls-ssl.html#trusting-additional-cas

    opened by DrStefanFriedrich 6
  • [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s)

    [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s)

    When sending a string to the server using IOWebSocketChannel the sending is ok. But when the argument is an array of strings, got the topic exception.

    serverChannel.sink.add(result);

    opened by Claus1 6
  • Calling add method with cascade operator invoke function only once

    Calling add method with cascade operator invoke function only once

    Flutter: 3.3.1 Dart: 2.18.2 web_socket_channel: ^2.2.0

    Calling add method like this works properly (which means that a message is sent every time): channel.sink.add(message)

    Calling this method with a cascade operator causes that action is performed only on a first call (second and subsequent calls don't perform any action so the message cannot be sent):

    channel.sink
       ..add(message)
       ..addError(
         (error) {
           // TODO
         },
       );
    
    opened by CarlosVimos 0
  • How to send headers on web

    How to send headers on web

    Hi devs.

    On other platforms I use the following implementation to send headers and it works really great.

    IOWebSocketChannel.connect(
              url,
              protocols: protocols,
              headers: {'Authorization': "Bearer $accessToken"},
            );
    

    Now problem comes on flutter web, since I can't use IOWebSocketChannel and WebSocketChannel doesn't have headers field. How can I archive the same thing on web?

    opened by kateile 0
  • How to put incoming subscription data into a model class ?

    How to put incoming subscription data into a model class ?

    I am subscribing to list of coins

    channel.sink.add(jsonEncode({ "action": "subscribe", "quotes": coins, }));

    this is what I get when subscribe:

    [{"T":"b","S":"BTC/USD","o":47993.71,"c":47982.6,"h":48000,"l":47976.69,"v":1.66283276,"t":"2021-09-17T02:02:00Z","n":162,"vw":47984.1688165374}]

    how can I put this into model

    opened by uemirhanselim 0
  • "Invalid request method" Exception

    I try to connect websocket server from flutter app and I faced exception. On the otherhand I can connect successfully with Postman and simple NodeJS code to websocket server.

    Exception: Unhandled Exception: WebSocketChannelException: WebSocketChannelException: HttpException: Invalid request method, uri = http://push.domain.com:0/XXXXXXXXXX

    Minimum reproducable code:

    void main() {
      WidgetsFlutterBinding.ensureInitialized();
      var channel = WebSocketChannel.connect(
        Uri.parse('ws://push.domain.com/XXXXXXXXXX'),
      );
    
      /// Listen for all incoming data
      channel.stream.listen(
            (data) {
          print(data);
        },
        // onError: (error) => print(error),
      );
    
      runApp(const MyApp());
    }
    

    Stack Trace:

    E/flutter ( 9522): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: WebSocketChannelException: WebSocketChannelException: HttpException: Invalid request method, uri = http://push.domain.com:0/XXXXXXXXXX
    E/flutter ( 9522): #0      new IOWebSocketChannel._withoutSocket.<anonymous closure> (package:web_socket_channel/io.dart:98:24)
    E/flutter ( 9522): #1      Stream.handleError.<anonymous closure> (dart:async/stream.dart:929:16)
    E/flutter ( 9522): #2      _HandleErrorStream._handleError (dart:async/stream_pipe.dart:269:17)
    E/flutter ( 9522): #3      _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:157:13)
    E/flutter ( 9522): #4      _RootZone.runBinaryGuarded (dart:async/zone.dart:1598:10)
    E/flutter ( 9522): #5      _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
    E/flutter ( 9522): #6      _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:7)
    E/flutter ( 9522): #7      _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:280:7)
    E/flutter ( 9522): #8      _SyncStreamControllerDispatch._sendError (dart:async/stream_controller.dart:778:19)
    E/flutter ( 9522): #9      _StreamController._addError (dart:async/stream_controller.dart:656:7)
    E/flutter ( 9522): #10     _RootZone.runBinaryGuarded (dart:async/zone.dart:1598:10)
    E/flutter ( 9522): #11     _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
    E/flutter ( 9522): #12     _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:7)
    E/flutter ( 9522): #13     _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:280:7)
    E/flutter ( 9522): #14     _SyncStreamControllerDispatch._sendError (dart:async/stream_controller.dart:778:19)
    E/flutter ( 9522): #15     _StreamController._addError (dart:async/stream_controller.dart:656:7)
    E/flutter ( 9522): #16     new Stream.fromFuture.<anonymous closure> (dart:async/stream.dart:251:18)
    E/flutter ( 9522): #17     _RootZone.runBinary (dart:async/zone.dart:1658:54)
    E/flutter ( 9522): #18     _FutureListener.handleError (dart:async/future_impl.dart:162:22)
    E/flutter ( 9522): #19     Future._propagateToListeners.handleError (dart:async/future_impl.dart:778:47)
    E/flutter ( 9522): #20     Future._propagateToListeners (dart:async/future_impl.dart:799:13)
    E/flutter ( 9522): #21     Future._completeError (dart:async/future_impl.dart:574:5)
    E/flutter ( 9522): #22     Future._asyncCompleteError.<anonymous closure> (dart:async/future_impl.dart:665:7)
    E/flutter ( 9522): #23     _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
    E/flutter ( 9522): #24     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
    E/flutter ( 9522): 
    

    Flutter doctor summary:

    Doctor summary (to see all details, run flutter doctor -v):
    [√] Flutter (Channel stable, 3.3.8, on Microsoft Windows [Version 10.0.19043.2130], locale en-US)
    [√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)                 
    [√] Chrome - develop for the web                                                                                                                                             
    [!] Visual Studio - develop for Windows (Visual Studio Enterprise 2022 17.3.0)                                                                                               
        X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components:
            MSVC v142 - VS 2019 C++ x64/x86 build tools                                                                                                                          
             - If there are multiple build tool versions available, install the latest                                                                                           
            C++ CMake tools for Windows                                                                                                                                          
            Windows 10 SDK                                                                                                                                                       
    [√] Android Studio (version 2021.3)                                                                                                                                          
    [√] IntelliJ IDEA Ultimate Edition (version 2022.2)                                                                                                                          
    [√] VS Code (version 1.73.0)                                                                                                                                                 
    [√] Connected device (4 available)                                                                                                                                           
    [√] HTTP Host Availability                                                                                                                                                   
    
    ! Doctor found issues in 1 category.
    
    opened by ayberkcal 1
Owner
Dart
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Dart
A News app that provides users with the outmost user experiance built with Google's flutter

A News app that provides users with the outmost user experiance built with Google's flutter

Miso Menze 3 Jun 30, 2022
An app that provides you real time analysis of stocks.

stocks_analyzer An app which helps you to track and analyse your favourite stocks . A new Flutter project. Getting Started This project is a starting

Ankur Raj Prasad 0 Sep 2, 2022
WhatsApp is a cross-platform mobile appllication that provides an end-end encrypted instant messaging system And i build a clone of it with flutter.

whatsapp_clone Table of contents General info Youtube video Technologies Packages & libraries used Features Setup General info WhatsApp is a cross-pla

Imad Eddarraz 7 Dec 23, 2022
A new Flutter package which helps developers in creating walkthrough of their app.

flutter_walkthrough A new Flutter package for both android and iOS which helps developers in creating animated walkthrough of their app. Show some ❤️

Pawan Kumar 122 Sep 20, 2022
A Flutter package which can be used to make polylines(route) from a source to a destination, and also handle a driver's realtime location (if any) on the map.

GoogleMapsWidget For Flutter A widget for flutter developers to easily integrate google maps in their apps. It can be used to make polylines from a so

Rithik Bhandari 14 Nov 30, 2022
An Example project showing usage of drupal_linkset_menu flutter package

drupal_menu_flutter An Example project showing usage of drupal_linkset_menu flutter package Getting Started This project is a starting point for a Flu

Aqib Gatoo 4 May 11, 2021
An eAsistent client Flutter package

easistent_client An eAsistent client Flutter package Usage // Login with username and password var login = await EAsClient.userLogin('username', 'pass

Jakob Kordež 4 Dec 21, 2021
Example of injectable package and get it

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

Rifat Khadafy 2 Oct 13, 2021
Package your Flutter app into OS-specific bundles (.app, .exe, etc.) via Dart or the command line.

flutter_app_packager Package your Flutter app into OS-specific bundles (.app, .exe, etc.) via Dart or the command line. The flutter_app_packager sourc

LeanFlutter 415 Jan 8, 2023
Flutter Package to implement Feedback System in your @Flutter project. Taking Feedback from users made Easy!

Flutter App Feedback Taking feedback from the user made easy! Simply integrate flutter_app_feedback package into your Flutter project and you are read

Mihir Paldhikar 2 Nov 16, 2021
Web example for the ApolloVM Dart package.

ApolloVM - Web Example This is a Web example for the ApolloVM Dart package. Live Example You can see a live example at: https://apollovm.github.io/apo

null 1 Nov 7, 2021
Flutter Launcher Icons - A package which simplifies the task of updating your Flutter app's launcher icon.

Flutter Launcher Icons - A package which simplifies the task of updating your Flutter app's launcher icon. Fully flexible, allowing you to choose what platform you wish to update the launcher icon for and if you want, the option to keep your old launcher icon in case you want to revert back sometime in the future. Maintainer: @MarkOSullivan94

Flutter Community 1.7k Dec 30, 2022
FTFS is a Flutter package which uses a TextField Widget to search and select a value from a list

FTFS is a Flutter package which uses a TextField Widget to search and select a value from a list. It's a simple, lightweight, and fully tested package unlike other "autocomplete" or textfield search packages.

null 1 Jan 5, 2022
A package that allows you to add native drag and drop support into your flutter app.

native_drag_n_drop A package that allows you to add native drag and drop support into your flutter app. Currently supported features Support iPadOS 11

Alex Rabin 21 Dec 21, 2022
Flutter app To list down your Daily task ,made using State manager i.e. Provider package

Flutter app To list down your Daily task ,made using State manager i.e. Provider package

ROHIT_GADHAVE 1 Jan 23, 2022
Flutter social button - A flutter package to create social media login buttons easily to any flutter app

Flutter Social Button is a flutter package to create social media login buttons easily to any flutter app.

Alok Dubey 10 Dec 5, 2022
A data backend agnostic repository pattern package for Dart and Flutter

deposit A data backend agnostic repository pattern package for Dart and Flutter. Overview The goal of this package is to provide a repository pattern

Blue Fire 6 Apr 3, 2022
An unofficial Flutter plugin that wraps pusher-websocket-java on Android and pusher-websocket-swift on iOS

Pusher Flutter Client An unofficial Flutter plugin that wraps pusher-websocket-java on Android and pusher-websocket-swift on iOS. Get it from pub. How

HomeX 31 Oct 21, 2022
Flutter Sticky Headers - Lets you place "sticky headers" into any scrollable content in your Flutter app. No special wrappers or magic required. Maintainer: @slightfoot

Flutter Sticky Headers Lets you place headers on scrollable content that will stick to the top of the container whilst the content is scrolled. Usage

Flutter Community 903 Jan 4, 2023
An HTTP file downloader packed with many features -> resumable downloads, multiple connections, buffering, auto-retry, etc.

An HTTP file downloader packed with many features -> resumable downloads, multiple connections, buffering, auto-retry, etc. Features Resumable downloa

Liu YuanYuan 4 Feb 2, 2022