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
5
7

6 réponses

il y a 7 jours 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 7 jours 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 7 jours 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 7 jours 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.

2
il y a 6 jours 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 1 jour par EURLLSCONSULTING

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

2
il y a 15 heures 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.

2
il y a 14 heures 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 6 jours 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é.