Kuzzle blog

Dart SDK for Flutter released

Written by Alicia Thermos | August 17, 2020

Mobile development today is dominated by hybrid technologies that allow to develop for both Android and iOS.

Lire l'article en français

 

We have decided to focus on these technologies in order to support the next generation of mobile applications with our backend.

After years of domination of React Native, a competitor is starting to stand out. This competitor is Flutter, the hybrid framework written in Dart and powered by Google.

 

Today we are officially releasing our Dart SDK in order to offer an open source backend alternative to the Flutter community, which is de facto very much linked to the Google ecosystem and especially Firebase.

 

Open Source matters

 

Since a few months we noticed that the Dart/Flutter community was quite active around Kuzzle with the release of our first community SDK for Kuzzle v1, and many questions about how to use Kuzzle as a backend for Flutter.

 

Together with the developers of the first Dart SDK, we decided to integrate this project into the official Kuzzle ecosystem in order to ensure the same level of quality and support for our users.

 

We therefore warmly thank Prijindal, Sacha Stafyniak and Manuel Baun for their contributions to the Dart SDK. Thank you very much!

 

We would also like to thank the users around the world who are already using Kuzzle for their Flutter applications, it is also thanks to them that we decided to focus on the Dart SDK!

 

Show me the code!

The package is available on our official repositories: https://pub.dev/packages/kuzzle.

You can add the following lines to your application's pubspec.yml:

 

dependencies:
  kuzzle: ^2.0.0


First of all, you have to instantiate the SDK by choosing the communication protocol. For the moment there is only WebSocket available, but HTTP support will soon be released.

 

final kuzzle = Kuzzle(
   WebSocketProtocol(Uri(
   scheme: 'ws',
   host: 'kuzzle',
   port: 7512,
 )),
   offlineMode: OfflineMode.auto,
 );
 
kuzzle.connect();

 

The structure of the SDK follows our API with a structure divided into controllers and actions.

 

For example, to authenticate yourself with the auth:login action:

 

// Login with username "Aschen"
await kuzzle.auth.login('local', {
 'username': 'Aschen',
 'password': '<password>'
});
 
// The SDK instance is now authenticated

 

Or to create a new document with document:create:

 

final document = await kuzzle.document.create('nyc-open-data', 'yellow-taxi', {
 'name': 'Aschen',
 'licence': 'B',
 'plate': '42 XDF 94'
});

 

You can find the complete documentation here: https://docs.kuzzle.io/sdk/dart/2/

 

Future developments

 

In the near future we plan to develop support for the HTTP protocol, which is very important for mobile development, in order not to drain the battery through a WebSocket connection.

 

There is also still work to be done on the documentation to make it more accessible by writing a Getting Started, and new guides.

 

Finally, as the Kuzzle API is constantly being enriched with new actions, we will also work to integrate them into the current SDK.

 

If you have questions about this SDK, you can ask the core-team on Stackoverflow. You can also join and discuss with us on our Discord server: http://join.discord.kuzzle.io.

 

Dart: Google's web-oriented language

Dart is a programming language released by Google in 2011. The language was designed to be extremely intuitive.
In addition, its syntax is very close to Java and Javascript which allows developers to be productive quickly.
Today we are officially releasing our Dart SDK in order to offer an open source backend alternative to the Flutter community which is very linked to the Google ecosystem and especially Firebase.
Dart can be used to create server-side applications but its use has been popularized by the Flutter framework which allows to create mobile applications for Android and iOS.

Flutter : Create applications for iOS and Android

Flutter is therefore a hybrid mobile application development framework.

We have realized several applications in Flutter the user experience that the development process has been conclusive.

Developments have been facilitated by Flutter compared to the use of other cross-platform or hybrid technologies. Flutter allows specific adaptation to the Android and IOS platforms, simplifies the creation of animation, or by the complementary use of material design components.

 

Some interesting features :


  • Native performance: Flutter widgets integrate all critical platform differences such as scrolling, navigation, icons and fonts, and your Flutter code is compiled into native ARM machine code using Dart's native compilers.
  • Flexible user interface: The layered architecture allows full customization, resulting in incredibly fast rendering flexible designs.