Bonjour les Skillos !

J'ai un projet en cours concernant les infirmières libérales (comme les infirmiers d'ailleurs). 

Dans la réalisation de la proposition de valeur, le coeur est constitué d'une application mobile.

J'ai fait réaliser un PoC par l'école d'informatique INTECH Sud d'Agen, dont je suis très content. Il ne me manque que la diffusion de cette version de l'application. Mais c'est en cours.

Le Hic, c'est que cette version ne tourne que sur Android et non sur IOS ni sur Windows...

La question que je me pose c'est : 

- dois-je persister dans le fait de vouloir créer des applications mobiles natives

- ou bien dois-je me tourner vers des Progressive Web Apps ?

Sachant que l'application est avant tout une application "de gestion" et ne dispose pas du tout de machin qui font tûûût ou pouet ou de graphisme ou de vidéo ou de machins alambiqués...

Question corollaire : si le PWA semble être indiqué, existe-t-il des outils me permettant de développer rapidement des applications de ce type, à tout le moins pour un MVP ?

Merci de vos retours !

application mobile projet technique développement logiciel
7
9

7 réponses

il y a 5 ans par EtienneZulauf

Hello,

Il se trouve que nous travaillons sur plusieurs projets PWA actuellement, dont notre solution front-commerce. C'est clairement la nouvelle donne pour remplacer les applications natives et leurs nombreux désagréments (besoin d'installer, délai et décision de publication, nécessité de développer sur plusieurs plate-formes), tout en offrant le meilleur : raccourci de lancement, affichage plein écran, capacités offline, push de notifications, accès aux différents devices de l'appareil (selon navigateurs).

Il n'y a pas spécifiquement d'outil pour les développer, les frameworks Front JS les plus utilisés sont très efficaces : React et Angular. Nous avons choisi React de notre côté mais les deux se valent. De plus avec React tu peux utiliser la librairie ReactNative pour générer une appli native si besoin.

Je te confirme que le choix PWA est donc un choix d'avenir, pérenne et tu trouveras de plus en plus de développeurs compétents sur ces technos, même s'il faut quand même tabler sur des développeurs expérimentés pour un bon rendu sur les différentes plate-formes. A ta disposition si tu souhaites en savoir plus.

4
il y a 5 ans par EURLLSCONSULTING

Houlala !!!! Bis répétita....

J'ai eu du mal sur la question, alors là, je suis aux  abonnés absents ! 

Aucun avis concordant ou discordant !!!!

Allez, on se dit au prochain sujet !!! Mdr. 

1
il y a 5 ans par gmaison

merci @EtienneZulauf 

OK, c'est bien ce que je pensais. La notion de natif tient vraiment lorsqu'il faut exploiter certaines caractéristiques techniques des appareils et donc des OS (ie affichage pour les jeux, retouche d'images, etc...) A partir du moment où l'on est plus sur des principes d'application de gestion (même en intégrant de manière simple certains devices des smartphone comme géolocalisation, appareil photo, accéléromètre, etc.), le PWA semble plus indiqué - surtout si l'on veut être multi plateforme.

Juste, c'est encapsulé dans un framework (ie navigateur) qui est lui natif de chaque OS ou bien c'est vraiment autre chose ?

Pour l'installation sur les smartphone, il est souhaitable de passer par les stores (Google Play & App Store) ? (et je dis bien installation de l'environnement de l'appli, pas l'appli en elle même qui est un site web - pour faire simple).

Enfin, lorsque tu parles de dev expérimentés, c'est pour la partie HTML 5 & CSS3 ou bien pour la partie Front JS ?

Est-ce qu'il existe également des plateformes de dev rapides pour des applis de gestion "basiques" avec de simples échanges via des API REST ?

(euh, je crois que c'est tout :) )

Merci beaucoup pour ton retour ! :)

3
il y a 5 ans par EtienneZulauf

Il n'y a pas d'encapsulation, c'est "juste" un site qui a certains capacités avec de nouvelles commandes JS dont le support varie selon le navigateur. 

Il n'y a pas besoin d'installer quoi que ce soit pour l'utilisateur, il va simplement sur le site. A ma connaissance, le store Windows propose les sites PWA comme des applications dans leur catalogue mais c'est une "vue de l'esprit" (et une belle mise en avant). Le fait de placer un raccourci est une simple commande javascript a implémenter qui va alors proposer à l'utilisateur cette fonctionnalité, ou sur Chrome il va le proposer de lui-même après quelques visites.

Les développeurs expérimentés c'est pour la partie Javascript Front car du coup une partie de la logique métier est déplacée du back vers le front. Ce n'est donc pas que de l'intégration HTML / CSS. Aujourd'hui on parle donc de dev "front" pas seulement pour faire l'inté mais aussi faire du JS avancé.

A nouveau, une PWA est un site amélioré, ce n'est pas une techno particulière. Il n'y a pas de framework spécifique. Avec React, il y a le projet "Create React App" qui t'installe de base une architecture PWA (entre autre) : github.com/facebook/create-react-app

Si tu cherches un framework plus facile d'accès, tu peux regarder VueJS qui te permet également de bâtir des PWA.

A bientôt.

3
il y a 5 ans par PascalW

Bonsoir,

Le PWA me semble être une bonne piste au moins en terme de portabilité et de souplesse.

En tant qu'utilisateur je peste régulièrement contre les solutions fermées sur iOS, Windows ou Linux. Les spécialistes de la vente et du marketing sauront sans doute expliquer la frustration qu'on ressent quand on découvre qu'on n'a pas la bonne plateforme pour utiliser le produit qui nous séduit tant.

Puisque que ton app est une application de gestion, cela me semble encore plus vrai…

Pour les outillages et le MVP, là on est hors de mon scope. Je n'en ai aucune idée.

3
il y a 5 ans par OlivierFRANCOIS

Bonjour,

Merci à @gmaison pour cette question et à @EtienneZulauf pour la clarté des réponses apportées.

Pour résumer :
les Application Mobile Native ont besoin d'un OS (Android, Ios) pour être installées puis utilisées.

les Progressive Web Apps ont juste besoin d'un navigateur (Chrome, Safari, Firefox, Opera) pour être utilisées. il n'y a pas d'installation de type "App.Store".

les Progressive Web Apps sont utilisables sur les pc de bureau et les pc portable via le navigateur.
quelques exemples pwa.rocks

d'autre semble vouloir ajouter de l'AMP aux PWA : PWAMP, un avis les Skillers(euses) ?

3
il y a 5 ans par EtienneZulauf

Ce sont 2 choses différentes, les balises AMP peuvent être ajoutées à tous les sites, PWA ou pas.

Elles permettent à Google de servir ces pages de manière plus rapides car fortement optimisées par leurs soins, et Google favorise ces pages dans les résultats de recherche.

Mais du coup c'est Google qui prend la main sur ces pages, avec une forte dépendance donc à leur infrastructure. Pas de redirection vers la page originale si votre page AMP ne fonctionne plus ou est supprimée.

Là on est plus dans des stratégies de référencement que dans les performances mobiles en général.

3
il y a 5 ans par ChristopheFantoni

Je peux répondre à ta question, mais ma réponse sera un peu technique. Et comme je ne connais pas du tout ton niveau en technique, je préfère te poser la question avant de commencer à y répondre...

En résumé, cherches-tu une réponse technique ?

2
il y a 5 ans par gmaison

Aussi oui :)

Ne t'inquiète pas pour mon niveau technique, j'ai fait du développement pendant 15+ ans, avec de tout dedans dont du DBA Oracle et autres + de l'admin sys et du réseau.

Et puis, s'il y a un truc que je ne comprends pas, je me permettrai de te demander :)

3
il y a 5 ans par ChristopheFantoni

Partons du principe que tu souhaites développer une même application pour Windows, Linux, MacOS, iOS et Android.  Déjà, il faut savoir que Windows, Linux, MacOS et iOS ont un énorme point commun, à savoir une interface système propriétaire. Pour la contourner, il suffit le plus souvent d’utiliser un framework(1) universel au lieu d’utiliser celui proposé nativement par le système. Celui qui a la cote ce moment, c’est QT(2). Une fois installé, il te permettra de programmer de la même manière ces 3 environnements. Pourquoi pas les 4 ? Tout simplement, car iOS nécessite obligatoirement l’utilisation de l’interface système (via le SDK XCode(3) proposé gratuitement par Apple), tout en rendant indispensable la présence d’une signature numérique. Mais en dehors de cela, le principe de programmation reste le même.

La deuxième exception, c’est donc Android. Celui-ci, je le rappelle, repose sur du Linux. Logiquement, si mon programme fonctionne sous Linux, il devrait pouvoir  fonctionner sous Android. Or, ce n’est pas le cas. En  effet, Google a fait le choix délibéré d’interdire le système à ses utilisateurs en confiant l’installation et l’utilisation de ses applications à sa machine virtuelle Java. Et le Java,  plus particulièrement sous l’une de ses versions (appelée aussi Bytecode Java(4)), est ce que l’on appelle un langage intermédiaire (comme LLVM(5) ou comme le CIL, pour Common Intermediate Language(6), qui a notamment donné naissance au .NET Framework de Microsoft).  

En clair, cela veut dire que si tu souhaites avoir un seul et même code, quel que soit l’environnement auquel tu le destines, il te faut passer par des compilateurs qui vont être capables de te sortir ton programme en langage intermédiaire. Et ça tombe bien puisque FreePascal(7) ou encore GCC(8) te permettent de le faire. Par contre, attention, la sortie en langage intermédiaire nécessite le plus souvent d’être activée lors d’une recompilation du compilateur. En effet, ce n’est pas une option qui est proposée en standard.

Ensuite, il ne te restera plus qu’à compiler ton code en langage intermédiaire à l’aide d’un compilateur supportant celui-ci en entrée. C’est notamment le cas d’ANT(9) d’Apache qui te permettra de transformer assez facilement le langage intermédiaire produit par FreePascal/GCC en application Java. Il te restera plus qu’à packager ton application Java en fichier APK(10).

Et voilà !

Pour aller plus loin :
(1) fr.wikipedia.org/wiki/Framework
(2) fr.wikipedia.org/wiki/Qt
(3) fr.wikipedia.org/wiki/Xcode
(4) fr.wikipedia.org/wiki/Bytecode_Java
(5) fr.wikipedia.org/wiki/LLVM
(6) fr.wikipedia.org/wiki/Common_Intermediate_Lang...
(7) fr.wikipedia.org/wiki/Free_Pascal
(8) fr.wikipedia.org/wiki/GNU_Compiler_Collection
(9) fr.wikipedia.org/wiki/Apache_Ant
(10) fr.wikipedia.org/wiki/APK_(format_de_fichier)

2
il y a 5 ans par Stephane31

Salut,

Personnellement, en terme d'expérience utilisateur, je préfère le natif.

Si tu le souhaites, il existe des frameworks qui te permettent de compiler en natif IOS/Android/Windows depuis une seule base de code. Je ne l'ai pas expérimenté, mais à l'époque  j'avais vu une présentation très convaincante de Xamarin.  Il est intégré à Visual Studio et de mémoire tu peux le tester avec une simple version community.

Il doit y en avoir d'autres (delphi, et à l'époque il y avait robovm :,( )

Peut être une piste à creuser.

2
il y a 5 ans par EURLLSCONSULTING

Houlala, c'est un peu trop compliqué pour moi, je "reskille" ! :)

2
il y a 5 ans par FredericLibaud

Bonjour,

Il y a différentes approches... Certes l'application n'est pas d'une technicité extraordinaire. Toutefois, comme pour un équipement de type ordi. la performance sur le long terme est quand même importante. Il y aussi différentes problématiques en lien avec l'architecture mais, ça je ne vais pas l'apprendre à ceux qui ont plusieurs années de dev. dans les gambettes.

Alors, il y a l'approche Web apps, code interprété (.Net, Java, ...) ou bien natif.

Personnellement, j'ai toujours eu une préférence sur la dernière, pour la maîtrise qu'elle permet d'avoir par rapport au système cible.

Toutefois, Android et iOS qui sont aujourd'hui les deux OS dominants sur le marché ne permettent pas le développement d'application portable de l'un à l'autre et vice-versa.

L'idéal est donc de disposer d'une plate-forme multi-cibles et en la matière, il existe plusieurs solutions sous Linux, OSX ou Windows.

Et puisque l'on parle du Pascal par exemple qui à l'instar du C++ existe sur de très nombreuses plates-formes, ça fait une vingtaine d'années que j'en fais. Au niveau outil on a Delphi (RAD Studio), Lazarus et son dérivé Code Typhon. Les 3 sont des environnements complets permettant du développement Cross Plate-forme et multi-cibles.

1

Vous aimez Skiller?

Rejoignez la communauté.