Dans quelle mesure Golang est-il prêt pour le développement Android et iOS en termes d’interface utilisateur ?


Je peux répondre à la question en ce qui concerne Android. Et c'est une réponse rapide, je mettrai à jour au fur et à mesure que j'aurai le temps... Si j'avais pu m'offrir un Mac et un iPhone, j'aurais fait de telles démonstrations techniques pour iOS aussi

main-qimg-53108c26591c0bee7e21abddb92b4f31.webp


J'utilise ceci pour le développement Android.

  • Kotlin + Anko DSL pour l'interface utilisateur native → Plus rapide que l'inflation de la mise en page XML / Facile à coder. Seulement quelques lignes pour cette UI.
  • gomobile / gobind →Les Bindings Java sont auto créés / cool mais les bibliothèques sont très grandes. Évitez les importations exessives. Seulement quelques lignes pour intégrer BoltDB, LUA, JS, Golang Networking engine etc
  • Android Studio Gobind Plugin → Rend facile la construction du projet dans Android Studio. J'ai ma propre version personnalisée pour passer les drapeaux -s -w au linker pour rendre les bibliothèques jni plus petites.

Maintenant les bibliothèques jni go créées sont trop grandes ce qui est le seul problème que je vois. On pourrait passer les drapeaux -s -w linker pour éviter les symboles de débogage et réduire 10-5 mb. J'ai mis à jour le plugin Android Studio pour faire la même chose : ricosys.org.golang.mobile.bind

Rezipping, alignement, signature de l'apk peut faire réduire la taille de l'apk de 50%.

J'aime la facilité et le plaisir de coder avec golang et Kotlin avec Anko DSL et l'avantage supplémentaire de performance.

Je suppose que je suis un pionnier dans ce domaine en faisant Kotlin, Anko et Golang pour coder pour Android.

Si vous êtes intéressé, vous pouvez jeter un coup d'œil à ma démo technologique JVM 8 où, dans une seule application, j'ai utilisé 7 langages différents et une douzaine de bibliothèques dans un 1.9MB APK pour Android (L'application avait différentes activités de lancement pour chaque langue d'où tant d'icônes):

Description de la vidéo ci-dessus:

BitCubate X Présente, Java et 7 langages JVM côte à côte dans un seul APK de démonstration de 1,9MB!

Nous avons farci les langages JVM #Scala, #Groovy, #Beanshell, #Lua, #Xtend, #Kotlin et #Processing. Contient également des bibliothèques android standard, libAnko, Macroid AndroidSVG.

La taille du fichier de l'application est minimisée avec proguard.

Lorsqu'elle est installée, elle consomme ~5,86 Mo, ce qui est assez faible avec toutes ces fonctionnalités.

Comme je ne suis pas un expert dans tous ces langages JVM, j'ai utilisé leurs codes d'exemple standard de ces langages - le crédit leur revient.

Il faut noter que Groovy est un peu lent, ce que je'vais comprendre et corriger. Il semble qu'il perde son temps à essayer de trouver des classes non présentes.

Lua semble rapide comme l'éclair. Tant Lua que Beanshell permettent d'exécuter des scripts arbitraires à partir de n'importe quels dossiers spécifiés - on peut utiliser cela pour rendre les apps extensibles. Groovy pourrait être utilisé de cette façon aussi, mais cela ralentirait encore les choses ou créerait du bloat - je ne suis pas sûr, je peux essayer.

Le traitement est un peu différent ici, car le code est exécuté en Java à travers la classe PApplet - donc je ne suis pas sûr que nous puissions dire qu'il s'agit d'un traitement pur.

Cela pourrait être une bonne nouvelle pour les haters de Java ou les personnes qui voudraient coder dans d'autres langages que Java sur Android. C'est une bonne nouvelle pour moi, car j'avais peur de coder avec Java sur Android, c'est aussi pourquoi mes applications Android étaient KISS jusqu'à présent - exemple BusyBox X. Je suis plus un programmeur de systèmes - j'aime le C, mais maintenant je crois que je peux écrire des applications assez complexes sans beaucoup de boiler plate grâce aux 7 options.

J'espère que cela est utile.