Se connecter

Informatique

Programmation

Sujet : Développement mobile : Quelles technos à rajouter à son arc ?
1
Languiste
Niveau 11
19 janvier 2021 à 15:46:24

J'entend de plus en plus dire que Xamarin et Android Studio sont voués à disparaître :noel:

Alors sur quelles technos on doit se rabattre pour être "embauchable" ? :(

Dans le domaine de l'application mobile je parle :oui:

Pseudo supprimé
Niveau 10
19 janvier 2021 à 17:04:43

Kotlin, Swift, Flutter...

JeffAirplane6
Niveau 8
19 janvier 2021 à 17:42:42

Android Studio ? Le natif ne disparaîtra jamais même si il peut devenir minoritaire par rapport au multi-plateforme. Et l'Android embarqué est de plus en plus populaire.

Si tu veux trouver du travail très facilement, apprends react native.
Si tu veux parier sur le prochain framework majeur, Flutter. Pour l'instant peu d'offres mais ça va venir.
Si tu veux rester sur une valeure sûre, le natif.

Aussi il faut choisir un truc dans lequel te spécialiser au lieu de faire tout et rien. C'est bien d'avoir des bases de natif Android et iOS quoi qu'il arrive parce que pour certains trucs t'as pas le choix, mais ça sert à rien de connaître plusieurs frameworks cross-plateforme par exemple.

Si tu veux une liste des technos demandées quasiment systématiquement en Android natif :

  • Kotlin + coroutines (plus la peine d'apprendre RxJava heureusement :hap: )
  • Suite Jetpack
  • Retrofit 2
  • Tests unitaires et UI (JUnit et Espresso)
  • Intégration continue (Jenkins)
  • Firebase (notifications, crashlytics...)
  • ConstraintLayout (même si ça va être tout doucement remplacé par Compose)
Languiste
Niveau 11
19 janvier 2021 à 21:05:55

Je suis pas spécialement un grand fan de cross plateform, souvent le xamarin m a été imposé :noel:

C'est juste que je cherche de faire des projets perso pour me faire la main sur des technos qui ne sont pas voués à disparaître, et pouvoir montrer des choses lors d'une embauche :oui:

Android studio je codais pas mal en java :(
Du coup c'est plus intéressant de dev en kotlin ?

lokilok
Niveau 10
19 janvier 2021 à 21:26:53

Android studio c'est juste un IDE, ça impose pas les techno que tu utilises pour développer ton app :(

JeffAirplane6
Niveau 8
19 janvier 2021 à 22:33:03

Oui si tu veux te faire engager pour de l'Android natif il faudra connaître Kotlin dans 80% des cas de nos jours. C'est le langage recommandé par Google depuis 2019.

C'est infiniment mieux que Java et pas super compliqué à apprendre surtout si t'as déjà eu une expérience avec la programmation fonctionelle et les optionnels sur Swift par exemple. Sur Android Studio quand tu colles tu codes en Java il peut le reconvertir en Kotlin même si la plupart du temps il y a quand même des trucs à régler. :noel:

En fait Android est bloqué sur Java 7 et le restera probablement du coup Kotlin est là pour proposer des features que tout langage moderne se doit d'avoir.

D'ailleurs Compose n'est compatible qu'avec Kotlin ils s'embêtent même plus à supporter Java.

Perso ça fait deux ans que je touche plus à du Java, et tu peux également t'en servir pour faire du back-end avec les frameworks Java comme Spring.

boucif
Niveau 24
19 janvier 2021 à 22:34:09

Le 19 janvier 2021 à 21:05:55 Languiste a écrit :
Je suis pas spécialement un grand fan de cross plateform, souvent le xamarin m a été imposé :noel:

C'est juste que je cherche de faire des projets perso pour me faire la main sur des technos qui ne sont pas voués à disparaître, et pouvoir montrer des choses lors d'une embauche :oui:

Android studio je codais pas mal en java :(
Du coup c'est plus intéressant de dev en kotlin ?

Xamarin ne va pas disparaitre il va être remplacé par net maui, mais tes connaissances seront toujours utile, t'aura toujours du xaml avec du code behind
https://github.com/dotnet/maui
https://dotnet.developpez.com/actu/303795/Build-2020-Microsoft-annonce-NET-MAUI-une-evolution-de-Xamarin-Forms-pour-la-creation-d-applications-natives-multiplateformes-mobiles-et-bureautiques/

Perso venant du monde .net et aimant bien le xaml j'ai pas pu m'y faire au fonctionnement de flutter, et je déteste ces frameworks avec la vue dans le code style flutter react, à toi de tester si tu apprécies

Faire du natif peut avoir un gros intérêts, ça sera toujours recherché et kotlin/swift étant en place depuis pas longtemps je pense dans 5 ans tu auras encore du boulot dedans.

Bunyan
Niveau 13
20 janvier 2021 à 08:10:44

De ce que je vois de l'écosystème (je suis dév mobile pro, spé Android), je te dirai :
- Java : le langage historique. De nombreuses applications sont encore codées en Java, et il faut en maintenir de nombreuses. L'interop Kotlin/Java a beau exister, des entreprises ne sont toujours pas ouvertes au Kotlin.
- Kotlin : langage officiel actuel. L'écosystème pousse pour l'utiliser.
- Flutter : techno X-platform actuelle qui a le vent en poupe (après Cordova, Xamarin, Titanium...). À voir si cela fera un énième effet de mode ou non.

Pour iOS : toujours Swift.

Je serai volontiers preneur de tes sources, par curiosité, d'ailleurs :)

lokilok
Niveau 10
20 janvier 2021 à 08:25:15

[22:33:03] <JeffAirplane6>
En fait Android est bloqué sur Java 7 et le restera probablement du coup Kotlin est là pour proposer des features que tout langage moderne se doit d'avoir.

Non tu peux utiliser des feature supérieur à Java 7 sur Android. D'ailleurs même pour faire du kotlin sur Android il est conseillé d'utiliser JDK 8.

boucif
Niveau 24
20 janvier 2021 à 10:46:55

Même s’il restera un moment du java, je conseillerais pas à quelqu’un qui s’y met de faire du java.
C’est comme je conseillerais pas à quelqu’un de faire de l’objective c maintenant.
Vaut mieux apprendre les nouveaux frameworks que sont kotlin/swift.

lokilok
Niveau 10
20 janvier 2021 à 15:58:56

Ouais mais t'es obligé de connaître Java si tu veux travailler dans le développement Android, tu te fermes trop de portes sinon.

Puis c'est pas super long à apprendre non plus, il y a pas vraiment de concepts qui existent qu'en Java et pas en kotlin, donc ça sera essentiellement juste une syntaxe différente à apprendre.

Languiste
Niveau 11
01 février 2021 à 10:21:49

Merci pour vos retours :noel:

De base j'ai des conaissances en Android Studio + Java et en Xamarin, Flutter à l'air d'être effectivement d'être une bonne techno :noel:

A voir si ça monte encore :noel:

J'ai la sensation que kotlin & Android studio reste une solution assez fiable pour du natif :noel:

boucif
Niveau 24
01 février 2021 à 10:34:36

Bein Kotlin disparaitra pas de si tôt.
Par contre flutter c’est cool pour le moment mais on ne sait pas quel avenir Google lui réserve, après test passe une semaine dessus tu verras si ça te plait

lokilok
Niveau 10
01 février 2021 à 12:13:16

Je rappelle encore que Android studio c'est juste un IDE. Tu peux faire des apps Kotlin avec le SDK Android sans Android studio, et tu peux faire des apps flutter avec Android studio. Ça définie pas la technologie que tu utilises derrière.

Bunyan
Niveau 13
02 février 2021 à 08:12:56

GROS +1 pour Lokilok.
C'est très sympa et important de savoir utiliser ses IDE (j'ai arrêter de compter le nombre de développeurs que je croise qui n'en ont jamais fouillé les fonctionnalités), mais ça ne reste qu'un IDE. Le fait qu'il soit multi-langage en prime n'indique pas grand chose.
Android != Android Studio != Kotlin != Java != Flutter.

mandraker17
Niveau 28
09 février 2021 à 00:13:48

Perso après 1 ans de licence pro en full natif et 3 ans de Xamarin.Forms j'ai voulu me former à React Native et Flutter, et j'ai clairement une préférence pour Flutter.

J'ai pas encore les automatismes que j'ai avec Xamarin mais j'ai l'impression niveau UI les choses sont bien plus facilitées. Après c'est sur niveau Code je m'y perds un peu comparé au XAML où j'aimais bien avoir les choses bien rangées.

lokilok
Niveau 10
09 février 2021 à 09:32:56

J'ai jamais regardé en détail Xamarin mais visiblement ça utilise les widgets de l'OS pour créer les interfaces. Ça complique forcément le design parce que tu dois te contraindre aux limitations des deux API (iOS / Android).

Flutter est mieux pensé de ce point de vue là parce que le framework utilise ses propres widgets qu'il dessine lui-même sur l'écran, donc t'as un contrôle total sur ce que tu affiches, tu as même plus de contrôle que dans une application Android native parce que tu contrôles la version du framework que tu utilises (alors que si tu utilises le SDK d'Android le comportement d'un widget dépendra de la version Android et de la surcouche sur lesquels ton application tourne).

boucif
Niveau 24
09 février 2021 à 10:12:12

Le 09 février 2021 à 09:32:56 lokilok a écrit :
J'ai jamais regardé en détail Xamarin mais visiblement ça utilise les widgets de l'OS pour créer les interfaces. Ça complique forcément le design parce que tu dois te contraindre aux limitations des deux API (iOS / Android).

Flutter est mieux pensé de ce point de vue là parce que le framework utilise ses propres widgets qu'il dessine lui-même sur l'écran, donc t'as un contrôle total sur ce que tu affiches, tu as même plus de contrôle que dans une application Android native parce que tu contrôles la version du framework que tu utilises (alors que si tu utilises le SDK d'Android le comportement d'un widget dépendra de la version Android et de la surcouche sur lesquels ton application tourne).

Sur Xamarin tu as soit le choix de faire directement une app Android/Ios, avec les mêmes templates et t'aura juste une surcouche au niveau du code qui utilisera du C# plutôt que le langage natif.
Ou Xamarin Forms où là tu fais du Xaml et c'est sensé utilisé les composants natifs de chaque plateforme derrière, après rien ne t'empêche de crée tes propres contrôles.

Xamarin utilise skiasharp pour certaines choses, donc je pense qu'on pourrait recrée un flutter like avec Xamarin (je parle niveau rendu).

Après ce qui me fait chier avec flutter c'est que t'es contraint au pattern MVU, c'est dommage qu'ils n'ont pas mis plus de choix de base...

lokilok
Niveau 10
09 février 2021 à 10:58:51

Xamarin utilise skiasharp pour certaines choses, donc je pense qu'on pourrait recrée un flutter like avec Xamarin (je parle niveau rendu).

Ouais enfin tous les framework ont des API 2D, l'intérêt de flutter c'est que les widgets utilisent déjà cette API, si tu dois réécrire tous les widgets de 0 l'intérêt du framework est plutôt limité :hap:

Après ce qui me fait chier avec flutter c'est que t'es contraint au pattern MVU, c'est dommage qu'ils n'ont pas mis plus de choix de base...

Tu voudrais qu'ils implémentent un système d'UI impérative ? Quel intérêt ?

Les UI réactives c'est justement ce vers quoi tout le monde tend, même le natif va dans cette direction (SwiftUI, JetPack Compose), ça serait une perte de temps de devoir en plus supporter une version impérative du framework.

boucif
Niveau 24
09 février 2021 à 11:29:32

Le 09 février 2021 à 10:58:51 lokilok a écrit :

Xamarin utilise skiasharp pour certaines choses, donc je pense qu'on pourrait recrée un flutter like avec Xamarin (je parle niveau rendu).

Ouais enfin tous les framework ont des API 2D, l'intérêt de flutter c'est que les widgets utilisent déjà cette API, si tu dois réécrire tous les widgets de 0 l'intérêt du framework est plutôt limité :hap:

J'émettais juste une hypothèse, et l'intérêt est que tu peux coder avec du c#, mais je me demande si pour maui c'est pas prévu...

Après ce qui me fait chier avec flutter c'est que t'es contraint au pattern MVU, c'est dommage qu'ils n'ont pas mis plus de choix de base...

Tu voudrais qu'ils implémentent un système d'UI impérative ? Quel intérêt ?

Les UI réactives c'est justement ce vers quoi tout le monde tend, même le natif va dans cette direction (SwiftUI, JetPack Compose), ça serait une perte de temps de devoir en plus supporter une version impérative du framework.

Perso je déteste avoir la vue dans la code, j'aime un "langage déclaratif" style Xaml, html, une habitude de "vieux" peut être, mais j'aime que chaque chose soit segmenté.

1
Sujet : Développement mobile : Quelles technos à rajouter à son arc ?
   Retour haut de page
Consulter la version web de cette page