Le développement mobile est aujourd’hui dominé par les technologies hybrides permettant de développer directement pour Android et iOS.
Nous avons décidé de nous positionner fortement sur ces technologies afin d’accompagner la prochaine génération d’applications mobiles avec notre backend.
Après des années de domination de React Native, un concurrent commence à se démarquer : Flutter, le framework hybride écrit en Dart et propulsé par Google.
Open Source matters
Depuis quelques mois nous avions remarqué que la communauté Dart/Flutter était assez active autour de Kuzzle avec notamment la sortie de notre premier SDK communautaire pour Kuzzle v1, et de nombreuses questions pour utiliser Kuzzle comme backend avec Flutter.
D’un commun accord avec les développeurs du premier SDK Dart, nous avons décidé d’intégrer ce projet au sein de l’écosystème officiel Kuzzle afin de pouvoir assurer le même niveau de qualité et de support pour les utilisateurs que ce que nous proposons pour nos autres SDK.
Nous remercions donc chaleureusement Prijindal, Sacha Stafyniak et Manuel Baun pour leurs contributions au SDK Dart, merci beaucoup à vous !
Nous souhaitons également remercier les utilisateurs à travers le monde qui utilisent déjà Kuzzle pour leurs applications Flutter, c’est aussi grâce à eux que nous avons décidé de travailler sur le SDK Dart !
Show me the code!
Le paquet est bien sur disponible sur https://pub.dev/packages/kuzzle.
Vous pouvez dès à présent ajouter la ligne suivante dans votre pubspec.yml:
dependencies:
kuzzle: ^2.0.0
Tout d’abord il faut instancier le SDK en choisissant le protocole de communication. Pour l’instant il n’y a que WebSocket de disponible, mais le support HTTP arrivera très prochainement.
final kuzzle = Kuzzle(
WebSocketProtocol(Uri(
scheme: 'ws',
host: 'kuzzle',
port: 7512,
)),
offlineMode: OfflineMode.auto,
);
kuzzle.connect();
La structure du SDK est calquée sur celle de notre API avec un découpage en contrôleurs et actions.
Par exemple, pour vous authentifier avec la méthode auth:login :
// Login with username "Aschen"
await kuzzle.auth.login('local', {
'username': 'Aschen',
'password': '<password>'
});
// The SDK instance is now authenticated
Ou encore pour créer un nouveau document avec document:create :
final document = await kuzzle.document.create('nyc-open-data', 'yellow-taxi', {
'name': 'Aschen',
'licence': 'B',
'plate': '42 XDF 94'
});
Vous pouvez dès à présent consulter l’ensemble de la documentation (https://docs.kuzzle.io/sdk/dart/2/) et jeter un oeil au Getting started flutter.
Évolutions à venir
Dans un futur proche nous avons prévu de développer le support du protocole HTTP, très important pour le développement mobile, afin de ne pas drainer la batterie par une connexion WebSocket persistente.
Il reste également du travail à réaliser sur la documentation afin de la rendre plus accessible, en rédigeant notamment des Getting Started et des nouveaux guides.
Finalement, comme l’API de Kuzzle s’enrichit sans cesse de nouvelles actions, nous allons également avoir du travail pour les intégrer au SDK actuel.
Si vous avez des questions à propos du SDK, vous pouvez les poser à la core-team sur Stackoverflow ou venir en discuter avec nous sur notre Discord : http://join.discord.kuzzle.io.
Dart : le langage orienté Web de Google
Dart est un langage de programmation sorti par Google en 2011. Le langage a été conçu pour être extrêmement intuitif.
De plus, sa syntaxe est très proche de Java et de Javascript, ce qui permet aux développeurs d’être productifs rapidement.
Aujourd’hui nous sortons officiellement notre SDK Dart afin de proposer une alternative backend open source à la communauté Flutter, qui est de facto très liée à l’écosystème Google, et notamment à Firebase.
Dart peut être utilisé pour créer des applications côté serveur mais son utilisation a surtout été popularisée par le framework Flutter, qui permet de créer des applications mobiles pour Android et iOS.
Flutter : Créer des applications pour iOS et Android
Flutter est donc un framework de développement d’applications mobiles hybride.
Nous avons réalisé plusieurs applications en Flutter : l’expérience utilisateur ainsi que le déroulement des développements ont été concluants.
Les développements ont été facilités par Flutter par rapport à l’utilisation d’autres technologies cross-plateforms ou hybrides. Flutter permet l’adaptation spécifiques aux plateformes Android et iOS, simplifie la création d’animations, ou encore offre l’utilisation complémentaire de composants material design.
Quelques caractéristiques intéressantes :
- Performance native : les widgets de Flutter intègrent toutes les différences de plate-forme critiques telles que le défilement, la navigation, les icônes et les polices, et votre code Flutter est compilé en code machine ARM natif à l'aide des compilateurs natifs de Dart.
- Interface utilisateur flexible : L'architecture en couches permet une personnalisation complète, ce qui se traduit par un rendu incroyablement rapide et des conceptions flexibles.