A backend server that makes it possible to program with Flutter syntax and reuse existing code

Overview

Get Server

GetServer allows you to write backend applications with Flutter. Everything here is familiar, from the widgets, to the setState, initState and dispose methods, to the way you manage your projects with GetX using controllers and bindings. You don't need any additional knowledge to use GetServer, if you know Flutter, you can write your application's API using it. GetServer gives you 100% reuse of code between backend and frontend.

Flutter has become increasingly popular, and as it grows, there is also a new need for a niche of developers who want to use the same Stack. GetX for its ease and practicality has attracted many new developers every day, who started using Flutter to build mobile, desktop and also web applications. However, the GetX community has turned to a common need: the lack of a cohesive ecosystem for backend programming without a large learning curve. The purpose of this project is to supply the needs of these developers, who can now build backend applications with a 0% learning curve. If you already program in another language, I invite you to test it, if you feel good, or mastered another language, maybe GetServer is not for you, but we are happy to bring ease to people's lives, so if you program mobile but you have no idea how to create an api, you may have found what you were looking for. If you have a local database written in dart (like Hive and Sembast), you can turn it into a backend and build your api to provide them with a simple copy and paste. All of your Model classes are reused. All its route syntax is reused (if you use GetX) All of your business logic is reused.

Getting Started

Installing

Add Get to your pubspec.yaml file:

run dart create project and add to your pubspec:

dependencies:
  get_server:

Import get in files that it will be used:

import 'package:get_server/get_server.dart';

To create a server, and send a plain text:

void main() {
  runApp(
    GetServerApp(
      home: Home(),
    ),
  );
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Text('Welcome to GetX!');
  }
}

However, if you don't need to have a single page, you will need named routes to define your urls. This is stupidly simple, and identical to GetX routes for frontend

void main() {
  runApp(GetServerApp(
    getPages: [
      GetPage(name: '/', page:()=> Home()),
    ],
  ));
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Text("Welcome to GetX");
  }
}

you just define the path of your URL, and the page you want to deliver!

What if you want to return a json page?

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Json({
      "fruits": ["banana", "apple", "orange"]
    });
  }
}

Ok, you created your project with Flutter web, and you have no idea how to host it on a VPS, would it be possible to create the API for your application, and use the same GetX to display the Flutter web project? Yep. You need only copy your web folder from Flutter project, and paste on directory from server file. Flutter web generates an html file that calls a js file, which in turn requests several files that must be in a public folder. To make the Flutter web folder a public folder, just add it to your GetServer. That way when you enter your server, you will automatically be directed to site made with Flutter.

void main() {
  runApp(
    GetServerApp(
      home: FolderWidget('web'),
      getPages: [
        GetPage(name: '/api', page: () => ApiPage()),
      ],
    ),
  );
}
  • Note: Static folder only can be the root folder. It will replace any '/' route

If you have an html that does not call files from the server, but only external files, you can use the Html widget for a specific path.

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final path = '${Directory.current.path}/web/index.html';
    return Html(path);
  }
}

Ok, but what if I want to do a POST method to send a photo to my server, for example, how do I do this?

Okay, that sounds crazy, but you upload the file to your server, and retrieve it with an "upload.data". For the example not to be small, I will return a json response with the name of the file, his mimeType, and the same file back decoded in base64 so the example doesn't have just 5 lines.

class Home extends GetView {
  @override
  Widget build(BuildContext context) {
    return MultiPartWidget(
      builder: (context, upload) {
        return Json({
           "nameFile": upload.name,
           "mimeType": upload.mimeType,
           "fileBase64": "${base64Encode(upload.data)}",
        });
      },
    );
  }
}

How about Authentication? We have this as well.

First define a secret for your JWT:

void main() {
  runApp(
   GetServerApp(
    jwtKey: 'your key here',
   ),
  );
}

Second, retrieve your token:

final claimSet = JwtClaim(
  expiry: DateTime.now().add(Duration(days: 3)),
  issuer: 'get is awesome',
  issuedAt: DateTime.now(),
);

var token = TokenUtil.generateToken(claim: claimSet);

and finally just flag your routes that need the token to work:

GetPage(
  name: '/awesome-route',
  method: Method.get,
  page: () => YourPage(),
  needAuth: true,
),

I'm still not convinced, this is just an http server, but what if I want to create a chat that has real-time communication, how would I do that?

Okay, today is your lucky day. This is not just an http server, but also a websocket server.

class SocketPage extends GetView {
  @override
  Widget build(BuildContext context) {
     return Socket(builder: (socket) {
      socket.onOpen((ws) {
        ws.send('socket ${ws.id} connected');
      });

      socket.on('join', (val) {
        final join = socket.join(val);
        if (join) {
          socket.sendToRoom(val, 'socket: ${socket.hashCode} join to room');
        }
      });
      socket.onMessage((data) {
        print('data: $data');
        socket.send(data);
      });

      socket.onClose((close) {
        print('socket has closed. Reason: ${close.message}');
      });
    });
  }
}

Dart is not popular for servers, however, attracting people who already program in Flutter to the backend is now also a mission of GetX. Transforming one-dimensional programmers into full stack developers with 0% learning curve, and reusing code is also one of GetX's goals, and I hope you will help us on this journey.

Like most of the "node.js" way?

The purpose of this package is to make development for Flutter developers easier. However, the javascript ecosystem is very large and you may be used to a more functional syntax. With get_server you can use this path. You can use get_server as well:

import 'package:get_server/get_server.dart';
void main() {
  final app = GetServer();
  app.get('/', (ctx) => Text('Get_server of javascript way'));
  app.ws('/socket', (ws) {
    ws.onMessage((data) {
      print('data: $data');
    });

    ws.onOpen((ws) {
      print('new socket opened');
    });

    ws.onClose((ws) {
      print('socket has been closed');
    });
  });
}

More Power

If you host your Getserver on a cheap server with few cores, the default option is more than enough. However, if you have a server with many cores and want to make the most of it, you can start the multithreaded server with isolates. This requires only a small step. Create a global function (isolated requirement), insert your runApp into it, and start it in runIsolate.

void main() {
  runIsolate(init);
}

void init(_) {
  runApp(
    GetServerApp(
      home: Home(),
    ),
  );
}

Note: This is a function that creates a thread for each CPU and you can use it throughout your application with GetServer. If you need activity with intense CPU and memory activity, you can use runIsolate.

How can you help?

  • Creating Pull requests, adding resources, improving documentation, creating sample applications, producing articles, videos about Getx, suggesting improvements, and helping to disseminate this framework in development communities.
  • Supporting this project.

TODO:

  • Add Auth options
  • Remove requirements dart:mirrors to allow people to compile the server and use only the binary, protecting its source code.
  • Creation of Bindings and Controllers (as in the main GetX) to adapt the project 100% with Getx for frontend.
  • Add some ORM

Accessing GetX:

GetX starts by default on port 8080. This was done to, if you want to install a reverse proxy like nginx, do it without much effort.

You could, for example, access the home page created in this example, using:

http://localhost:8080/ or http://127.0.0.1:8080/

However, if you want to start it on another port, such as 80, for example, you can simply do:

void main() {
  runApp(GetServer(
    port: 80,
    getPages: [
      GetPage(name: '/', page:()=> Home()),
    ],
  ));
}

To SSL you have too the certificateChain, privateKey, and password, configurations on GetServer

Comments
  • SocketIO support

    SocketIO support

    I'm very excited for this package, but in ma current server I use SocketIO and not simply Ws. Will we have any chance to have SocketIO support into this lib?

    opened by carmas123 5
  • How to get params from @Body

    How to get params from @Body

    image image I'm test from Postman, method @POST, and pass param as Body key-value (I don't want put param as segments in uri) But server alway print null or empty like image. :( Thanks

    opened by huutho-dev 4
  • jwt problem

    jwt problem

    hi, thanks for your wonderfull package. I opened example, main page works well. But fruits page doesnt, because of needs auth. So i tryed to open 'localhost:8080/auth' page with post method for take a jwt. But it gives an error like this:

    Unhandled exception: "String" not found. You need to call "Get.put(String())" or "Get.lazyPut(()=>String())" #0 GetInstance.find (package:get_server/src/framework/get_instance/src/get_instance.dart:332:7) #1 Inst.find (package:get_server/src/framework/get_instance/src/extension_instance.dart:70:45) #2 TokenUtil.getJwtKey (package:get_server/src/core/src/utils/token_util.dart:24:19) #3 TokenUtil.generateToken (package:get_server/src/core/src/utils/token_util.dart:6:17) #4 AuthController.getToken (package:buyboxserver/pages/auth/controller/view_controller.dart:13:22) #5 AuthPage.build (package:buyboxserver/pages/auth/view/auth.dart:8:28) #6 StatelessElement.build (package:get_server/src/core/src/widgets/widget.dart:165:28) #7 StatelessElement.performRebuild (package:get_server/src/core/src/widgets/widget.dart:158:5) #8 new StatelessElement (package:get_server/src/core/src/widgets/widget.dart:153:5) #9 StatelessWidget.createElement (package:get_server/src/core/src/widgets/widget.dart:139:12) #10 Route._sendResponse (package:get_server/src/routes/route.dart:99:15) #11 Route.handle.<anonymous closure> (package:get_server/src/routes/route.dart:86:11) #12 Route._verifyAuth (package:get_server/src/routes/route.dart:150:22) #13 Route.handle (package:get_server/src/routes/route.dart:77:5) #14 GetServerController.startServer.<anonymous closure> (package:get_server/src/core/src/server_main_controller.dart:95:17) #15 _RootZone.runUnaryGuarded (dart:async/zone.dart:1546:10) #16 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11) #17 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7) #18 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19) #19 _StreamController._add (dart:async/stream_controller.dart:607:7) #20 _StreamController.add (dart:async/stream_controller.dart:554:5) #21 _HttpServer._handleRequest (dart:_http/http_impl.dart:3209:19) #22 new _HttpConnection.<anonymous closure> (dart:_http/http_impl.dart:2964:19) #23 _RootZone.runUnaryGuarded (dart:async/zone.dart:1546:10) #24 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11) #25 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7) #26 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19) #27 _StreamController._add (dart:async/stream_controller.dart:607:7) #28 _StreamController.add (dart:async/stream_controller.dart:554:5) #29 _HttpParser._headersEnd (dart:_http/http_parser.dart:394:19) #30 _HttpParser._doParse (dart:_http/http_parser.dart:750:15) #31 _HttpParser._parse (dart:_http/http_parser.dart:324:7) #32 _HttpParser._onData (dart:_http/http_parser.dart:878:5) #33 _RootZone.runUnaryGuarded (dart:async/zone.dart:1546:10) #34 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11) #35 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7) #36 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19) #37 _StreamController._add (dart:async/stream_controller.dart:607:7) #38 _StreamController.add (dart:async/stream_controller.dart:554:5) #39 _Socket._onData (dart:io-patch/socket_patch.dart:2160:41) #40 _RootZone.runUnaryGuarded (dart:async/zone.dart:1546:10) #41 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11) #42 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7) #43 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19) #44 _StreamController._add (dart:async/stream_controller.dart:607:7) #45 _StreamController.add (dart:async/stream_controller.dart:554:5) #46 new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1696:33) #47 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:1208:14) #48 _microtaskLoop (dart:async/schedule_microtask.dart:40:21) #49 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5) #50 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:120:13) #51 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:185:5) Macs-MacBook-Pro:buyboxserver macpro$ dart run lib/main.dart

    So how can i use auth, i guess the 'localhost:8080/auth' page should give a jwt to me or im wrong. Please tell me more about how to use jwt on get_server package. Your document doesnt look enough for it.

    opened by yakupbaser 3
  • cannot return a json page as per example

    cannot return a json page as per example

    Error

    Unhandled exception: NoSuchMethodError: Class '_InternalLinkedHashMap<String, String>' has no instance method 'toJson'. Receiver: _LinkedHashMap len:1 Tried calling: toJson()

    opened by Shreemanarjun 3
  • Does this package work on Flutter Web?

    Does this package work on Flutter Web?

    Hey. I am developing a Flutter web application and am trying to implement an HTTP server. The dart:io library not working on Web Is this library an exception?

    opened by AliaksandrBadretdzinau 3
  • Unsupported operation: ServerSocket.bind

    Unsupported operation: ServerSocket.bind

    Hello

    When starting a new Flutter web project and using the the example Code of the get_server readme.md:

    import 'package:get_server/get_server.dart';
    
    void main() {
      runApp(GetServer(
        public: Public('web'),
        getPages: [
          GetPage(name: '/', page: () => Home()),
        ],
      ));
    }
    
    class Home extends GetView {
      @override
      Widget build(BuildContext context) {
        return Text("Welcome to GetX");
      }
    }
    

    I get the following error:

    Error: Unsupported operation: ServerSocket.bind at Object.throw_ [as throw] (http://localhost:51136/dart_sdk.js:4328:11) at Function._bind (http://localhost:51136/dart_sdk.js:57652:17) at Function.bind (http://localhost:51136/dart_sdk.js:57640:32) at Function.bind (http://localhost:51136/dart_sdk.js:182778:30) at Function.bind (http://localhost:51136/dart_sdk.js:176117:32) at server_main.GetServer.new.start (http://localhost:51136/packages/get_server/src/widgets/pageable.dart.lib.js:1141:31) at Object.runApp (http://localhost:51136/packages/get_server/src/widgets/pageable.dart.lib.

    Any idea how to fix this?

    Best regards Marc

    opened by diickens 3
  • Error on the

    Error on the "node.js way" example

    Hi, I followed your example in the README.md, the "Like most of the node.js way" section, tried to run it like this (in main.dart):

    import 'package:get_server/get_server.dart';
    
    void main() {
      final app = GetServer();
      app.get('/', (ctx) => Text('Get_server of javascript way'));
      app.ws('/socket', (res) {
        res.ws.listen((socket) {
          socket.onMessage((data) {
            print('data: $data');
          });
    
          socket.onOpen((ws) {
            print('new socket opened');
          });
    
          socket.onClose((ws) {
            print('socket has been closed');
          });
        });
      });
    }
    

    And then, this error shows up:

    Launching lib/main.dart on macOS in debug mode...
    lib/main.dart:7:9: Error: The getter 'ws' isn't defined for the class 'BuildContext'.
     - 'BuildContext' is from 'package:get_server/src/core/server.dart' ('../../../../Apps/flutter/.pub-cache/hosted/pub.dartlang.org/get_server-1.1.0/lib/src/core/server.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'ws'.
        res.ws.listen((socket) {
            ^^
    lib/main.dart:6:21: Error: A non-null value must be returned since the return type 'Widget' doesn't allow null.
     - 'Widget' is from 'package:get_server/src/core/server.dart' ('../../../../Apps/flutter/.pub-cache/hosted/pub.dartlang.org/get_server-1.1.0/lib/src/core/server.dart').
      app.ws('/socket', (res) {
    

    It seems that the ws property isn't defined in the GetServer's BuildContext class. What I'm missing here? thanks.

    opened by aldycool 2
  • When running getserver, the server can't connect to mongodb?

    When running getserver, the server can't connect to mongodb?

    When running getserver, the server can't connect to mongodb?

    use mongo_dart: ^0.7.0+2

    error: Error: Not found: 'dart:ui'

    lib/main.dart: Warning: Interpreting this as package URI, 'package:mon_server/main.dart'. ../../flutter/packages/flutter/lib/src/foundation/basic_types.dart:9:1: Error: Not found: 'dart:ui' export 'dart:ui' show VoidCallback; ^ ../../flutter/packages/flutter/lib/src/foundation/binding.dart:8:8: Error: Not found: 'dart:ui' import 'dart:ui' as ui show SingletonFlutterWindow, Brightness, PlatformDispatcher, window; ^ ../../flutter/packages/flutter/lib/src/foundation/debug.dart:5:8: Error: Not found: 'dart:ui' import 'dart:ui' as ui show Brightness; ^ ../../flutter/packages/flutter/lib/src/foundation/key.dart:5:8: Error: Not found: 'dart:ui' import 'dart:ui' show hashValues; ^ ../../flutter/packages/flutter/lib/src/foundation/stack_frame.dart:5:8: Error: Not found: 'dart:ui' import 'dart:ui' show hashValues; ^ ../../flutter/packages/flutter/lib/src/foundation/binding.dart:100:3: Error: Type 'ui.SingletonFlutterWindow' not found. ui.SingletonFlutterWindow get window => ui.window; ^^^^^^^^^^^^^^^^^^^^^^^^^ ../../flutter/packages/flutter/lib/src/foundation/binding.dart:121:3: Error: Type 'ui.PlatformDispatcher' not found. ui.PlatformDispatcher get platformDispatcher => ui.PlatformDispatcher.instance; ^^^^^^^^^^^^^^^^^^^^^ ../../flutter/packages/flutter/lib/src/foundation/change_notifier.dart:68:20: Error: Type 'VoidCallback' not found. void addListener(VoidCallback listener); ^^^^^^^^^^^^ ../../flutter/packages/flutter/lib/src/foundation/change_notifier.dart:72:23: Error: Type 'VoidCallback' not found. void removeListener(VoidCallback listener); ^^^^^^^^^^^^ ../../flutter/packages/flutter/lib/src/foundation/change_notifier.dart:106:8: Error: Type 'VoidCallback' not found. List<VoidCallback?> _listeners = List<VoidCallback?>.filled(0, null); ^^^^^^^^^^^^

    opened by rambozzang 2
  • page not found in Android Simulator Fluttter APP with static folder

    page not found in Android Simulator Fluttter APP with static folder

    Hi, I try to run the get_server in a flutter app on Android Simulator, I can return a Text('Hello') , but when I set a static folder, the page not found. home: FolderWidget('web') // not found the folder

    runApp(GetServer( host: '0.0.0.0', port: 8088, home: FolderWidget('web', allowDirectoryListing:true), getPages: [ GetPage(name: '/hello', page:()=>Text('Hello')), ], ));

    opened by makao007 2
  • useLog not working

    useLog not working

    GREAT work with get_server, it's an amazing package! ❤️ I know the flag for useLog is true by default, but it is no logging (tested in GET, POST - Multicores handler) i am using: get_server: ^0.91.0 image

    opened by julianoventola 2
  • How to call GetServer inside a flutter app?

    How to call GetServer inside a flutter app?

    What I want to achieve is to create a simple http server, hosted right from the app in a phone. which is something like this.

    is there a way to do that?

    Tried code below but I only get an error.

    import 'package:flutter/material.dart';
    import 'package:flutter/widgets.dart';
    import 'package:get_server/get_server.dart' as server;
    
    void main() {
      runApp(MaterialApp(
        home: HomePage(),
      ));
    }
    
    server.GetServer app;
    
    class HomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Home'),
          ),
          body: Container(
            child: MaterialButton(
              child: Text('Server Test'),
              onPressed: () {
                app = server.GetServer();
                app.get('/', () => server.Text('Hello World'));
                app.start();
              },
            ),
          ),
        );
      }
    }
    

    the error:

    ../../../.pub-cache/hosted/pub.dartlang.org/get_server-0.91.0/lib/src/infrastructure/get_instance/lifecycle.dart:46:4: Error: Getter not found: 'internal'.
      @internal
       ^^^^^^^^
    ../../../.pub-cache/hosted/pub.dartlang.org/get_server-0.91.0/lib/src/infrastructure/get_instance/lifecycle.dart:46:4: Error: This can't be used as metadata; metadata should be a reference to a compile-time constant variable, or a call to a constant constructor.
      @internal
       ^
    ../../../.pub-cache/hosted/pub.dartlang.org/get_server-0.91.0/lib/src/infrastructure/get_instance/lifecycle.dart:60:4: Error: Getter not found: 'internal'.
      @internal
       ^^^^^^^^
    ../../../.pub-cache/hosted/pub.dartlang.org/get_server-0.91.0/lib/src/infrastructure/get_instance/lifecycle.dart:60:4: Error: This can't be used as metadata; metadata should be a reference to a compile-time constant variable, or a call to a constant constructor.
      @internal
       ^
    
    opened by kalmigs 2
  • Flutter: webview_flutter_plus error: Server Error: Unsupported operation: ServerSocket.bind

    Flutter: webview_flutter_plus error: Server Error: Unsupported operation: ServerSocket.bind

    Server Error: Unsupported operation: ServerSocket.bind C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:49 throw C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/io_patch.dart 470:5 _bind C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/io/socket.dart 307:27 bind C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_http/http_impl.dart 3161:10 bind C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_http/http.dart 186:19 bind packages/webview_flutter_plus/src/webview_flutter_plus.dart 882:61 C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1391:13 _rootRun C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1293:19 run C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1828:67 _runZoned C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1817:12 runZonedGuarded packages/webview_flutter_plus/src/webview_flutter_plus.dart 881:5 start C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5 _async packages/webview_flutter_plus/src/webview_flutter_plus.dart 878:27 start packages/webview_flutter_plus/src/webview_flutter_plus.dart 290:23 build packages/flutter/src/widgets/framework.dart 4992:27 build packages/flutter/src/widgets/framework.dart 4878:15 performRebuild packages/flutter/src/widgets/framework.dart 5050:11 performRebuild packages/flutter/src/widgets/framework.dart 4604:5 rebuild packages/flutter/src/widgets/framework.dart 4859:5 [_firstBuild] packages/flutter/src/widgets/framework.dart 5041:11 [_firstBuild] packages/flutter/src/widgets/framework.dart 4853:5 mount packages/flutter/src/widgets/framework.dart 3863:15 inflateWidget packages/flutter/src/widgets/framework.dart 3592:18 updateChild packages/flutter/src/widgets/framework.dart 6300:14 mount packages/flutter/src/widgets/framework.dart 3863:15 inflateWidget packages/flutter/src/widgets/framework.dart 3592:18 updateChild packages/flutter/src/widgets/framework.dart 6300:14 mount packages/flutter/src/widgets/framework.dart 3863:15 inflateWidget packages/flutter/src/widgets/framework.dart 3592:18 updateChild packages/flutter/src/widgets/framework.dart 6300:14 mount packages/flutter/src/widgets/framework.dart 3863:15 inflateWidget packages/flutter/src/widgets/framework.dart 3592:18 updateChild packages/flutter/src/widgets/framework.dart 6300:14 mount packages/flutter/src/widgets/framework.dart 3863:15 inflateWidget packages/flutter/src/widgets/framework.dart 3592:18 updateChild packages/flutter/src/widgets/framework.dart 6300:14 mount packages/flutter/src/widgets/framework.dart 3863:15

    opened by Olatuneday 1
  • cant run compiled js file

    cant run compiled js file

    hello, i love get_server, ive been using it for a while. but now i am tring to have a runable js file. i use the dart compile js. the problem is when i run "node server.js" the server is not running. i just have a new line on the terminal asking for new code as in picture bellow. please help me running it Capture

    opened by diegotus 0
  • CRUD example required

    CRUD example required

    I tried to build a simples "to-do" API, but i am struggling a lot about how to handle the async context in routes that are waiting a Widget as return. How am i supposed to use it?

    Also, i tried to use the "example" of get_server tab and it needs some updates.

    Great work tho!

    image

    opened by julianoventola 1
  • How to run the server app in the background of a flutter app?

    How to run the server app in the background of a flutter app?

    I want to create a Flutter video player app that concurrently hosts a file server in the background. Is it possible with this package? Will both apps (UI app and backend app) be able to communicate with each other during runtime?

    opened by blueeyestw 1
Owner
Jonny Borges
VP of Engineering from Iris Finance. Developer and Lawyer. Passionate about dart and productivity hacks.
Jonny Borges
Easy-to-use Navigator 2.0 router for web, mobile and desktop. URL-based routing, simple navigation of tabs and nested routes.

Routemaster Hello! Routemaster is an easy-to-use router for Flutter, which wraps over Navigator 2.0... and has a silly name. Features Simple declarati

Tom Gilder 291 Jan 3, 2023
Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.

English | Português The brightest, hippest, coolest router for Flutter. Features Simple route navigation Function handlers (map to a function instead

Luke Pighetti 3.5k Jan 4, 2023
A simple and easy to learn declarative navigation framework for Flutter, based on Navigator 2.0.

A simple and easy to learn declarative navigation framework for Flutter, based on Navigator 2.0 (Router). If you love Flutter, you would love declarat

Zeno Nine 20 Jun 28, 2022
Flutter Navigation Best Practices including adapting navigation to platform and branding techniques for navigation surfaces.

Flutter Navigation Best Practices including adapting navigation to platform and branding techniques for navigation surfaces.

Fred Grott 5 Aug 22, 2022
Transparent Android system navigation bar with Flutter and FlexColorScheme package.

Sysnavbar with FlexColorScheme Transparent Android system navigation bar with Flutter and FlexColorScheme. FlexColorScheme V4 Notice If you are using

Rydmike 12 Oct 21, 2022
Simple but powerfull Flutter navigation with riverpod and Navigator 2.0

Riverpod navigation If you are interested in the motivation why the package was created and a detailed description of what problems it solves, read th

pavelpz 20 Dec 13, 2022
Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.

Languages: English (this file), Indonesian, Urdu, Chinese, Brazilian Portuguese, Spanish, Russian, Polish, Korean, French. About Get Installing Counte

Jonny Borges 8k Jan 8, 2023
A Custom Extended Scaffold with Expandable and Floating Navigation Bar

Custom Extended Scaffold Custom Flutter widgets that makes Bottom Navigation Floating and can be expanded with much cleaner a

Ketan Choyal 139 Dec 10, 2022
Flutter Flows made easy! A Flutter package which simplifies navigation flows with a flexible, declarative API.

Flutter Flows made easy! Usage Define a Flow State The flow state will be the state which drives the flow. Each time this state changes, a new navigat

Felix Angelov 337 Dec 31, 2022
Elegant abstraction for complete deep linking navigation in Flutter

Flutter Deep Link Navigation Provides an elegant abstraction for complete deep linking navigation in Flutter. This package only provides deep linking

Dennis Krasnov 64 Dec 27, 2022
A Flutter implementation of a customizable navigation bar with animations.

A heavily customizable bottom navigation bar with some animation modifiers.

null 1 Jun 17, 2022
flutter bottom navigation bat project

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

Danushan Ravendran 3 Sep 23, 2021
Custom Bottom navigation bar on Flutter.

Intro Custom Bottom navigation bar on Flutter. The updated one Support : Null safety & Support 9 items on Tabs & Some Color, Size, Effects and font cu

Ihab Zaidi 2 Oct 8, 2021
A flutter navigation package

Create By Me(Agalaba Ifeanyi Precious) go Navigate Navigate Like a pro from one Screen to another Using go navigate. go_Navigate provide you the abili

Agalaba Ifeanyi Precious 2 Oct 11, 2021
Flutter Material Design Navigation Drawer Menu

navigation_drawer_menu Flutter Material Design Navigation Drawer Menu Navigation drawer is a common UI pattern for adaptive menus. The Material Design

Christian Findlay 9 Dec 12, 2022
A Flutter package for easily implementing Material Design navigation transitions.

Morpheus A Flutter package for easily implementing Material Design navigation transitions. Examples Parent-child transition You can use MorpheusPageRo

Sander R. D. Larsen 186 Jan 7, 2023
Customized 🚀 Bottom Navigation Bar Using Flutter 🐦

Customized ?? Bottom Navigation Bar Using Flutter ??

AmirHossein Bayat 3 Dec 7, 2022
Flutter custom BottomBar Navigation Widget

bottom_bar_with_sheet ?? Non-standard way to use more space of screens in your application ?? ?? Custom bottom Sheet under Bottom Navigation Bar ?? ??

Stanislav Ilin 305 Dec 23, 2022
A Flutter package for easy implementation of curved navigation bar

curved_navigation_bar pub package A Flutter package for easy implementation of curved navigation bar. Add dependency dependencies: curved_navigation

null 556 Dec 9, 2022