Découvrir le Service Worker

Le Service Worker est une nouvelle technologie encore expérimentale qui va faire avancer les webapps et sites internet.

Le Service Worker répond à un besoin spécifique : garder une page web active lorsque le réseau est indisponible.

Le Service Worker, qu’est-ce que c’est  ?

Le Service Worker est un script qui va fonctionner en parallèle des scripts de la page internet. Il se place en proxy et va récupérer les données du LocalStorage (Protocole de votre page Web). Grâce à ces données , le Service Worker va vous permettre de naviguer sur votre page Web  même si vous n’avez pas ou plus accès à un réseau internet.

Concrètement, si nous devions imager, votre page web est une maison. Celle-ci a normalement besoin d’électricité (connexion internet) pour fonctionner. Or,  si la centrale ne fonctionne plus, vous pouvez quand même utiliser de l’électricité dans votre maison grâce à une batterie de secours (Service Worker).

On retrouve les Services Worker notamment dans les Progressives Webapps.

Attention : Les Services Workers restent encore expérimentaux. Ils ne sont donc pas encore compatibles avec tous les navigateurs. Pour le moment seul Google Chrome et Mozilla Firefox sont compatibles avec les Services Workers

Développement spécifique : Application native ou hybride, que choisir ?

C’est la grande question qui revient au sein de nos clients. Devons-nous développer une application mobile native ou hybride ? Chacune des deux options a ses avantages et ses inconvénients.

La réponse : Cela dépend de votre projet !

L’application native : Performante mais plus coûteuse 

L’application native est une application mobile que l’on télécharge et que l’on installe ensuite sur son smartphone ou sur sa tablette. Chaque plateforme (IOS, android…) a son propre langage.

  •  IOS : Objective-C ;
  •  Android : Java ;
  • Windows Phones : C#.

Cette application est dites native car elle va  pouvoir accéder aux fonctionnalités du support comme par exemple le GPS, l’appareil photo et notamment au hardware. Les applications natives seront  plus performantes  que les applications hybrides.

Le hic ? Si vous souhaitez avoir une application mobile native et que vous voulez qu’elle soit disponible sur toutes les plateformes, il faudra concevoir des applications bien distinctes car ce ne sont pas les mêmes langages utilisés pour lors du développement sur IOS ou sur Android.

Cela entraîne donc des coûts de productions qui seront plus élevés que pour une application hybride.

L’astuce : suivant votre marché, il est intéressant de se demander qu’elle plateforme utilise votre cible. Si elle utilise à 80% Android, le développement d’une seule application peut suffire dans un premier temps.

L’application hybride : moins performante mais moins chère  

L’application hybride est une application à mi-chemin entre les Webapps et les applications natives.

Petit rappel : une Webapp est un logiciel applicatif hébergé sur un serveur et accessible depuis un navigateur Internet. Elle est adaptées pour les terminaux mobiles grâce à une bonne ergonomie et à certaines fonctionnalités spécifiques.  Une Webapp ne peut pas fonctionner sans connexion Internet. Les webapps sont développées une seule fois avec de l’open web HTML5, Javascript et CSS.

Une application hybride est donc à mi-chemin entre une application native et une webapp. Il s’agit de développer une application avec la même technologie qu’une webapp,  puis de l’encapsuler pour en faire une application mobile, que l’on peut installer via les stores. L’application hybride sera fonctionnelle avec une bonne ergonomie sur tous les supports sans avoir à développer une application pour chaque plateforme.

Contrairement aux webapps, dans une application hybride, on vient intégrer une couche de code natif pour permettre à l’application de pouvoir utiliser les fonctionnalités du support (appareil photo, GPS…).

Le hic ? Les applications hybrides coûtent moins cher mais sont en revanche  moins performantes que les applications natives. Suivant votre projet, il se peut que vous ne puissiez pas développer une applications hybride en raison de contraintes technique (utilisation de capteurs du téléphone…)

Par exemple, si vous souhaitez développer une application pour objet connecté et que cette application soit sur IOS et Android, il faudra surement privilégier l’applications native. Les langues de communications entre l’API de l’objet et les smartphones vont changer en fonction de votre plateforme.

Comme dit précédemment, votre choix dépendra de votre projet !

si vous souhaitez avoir plus d’informations ou  poser quelques questions, c’est ici. notre équipe se fera une joie de vous répondre.