Quanto è pronto Golang per lo sviluppo di Android e iOS in termini di UI?

Posso rispondere alla domanda per quanto riguarda Android. E questa è una risposta veloce, aggiornerò quando avrò tempo... Se mi fossi potuto permettere un Mac e un iPhone, avrei fatto queste dimostrazioni tecniche anche per iOS

main-qimg-53108c26591c0bee7e21abddb92b4f31.webp

Io uso questo per lo sviluppo Android.

  • Kotlin + Anko DSL per UI nativa → Più veloce di XML Layout Inflation / Facile da scrivere. Solo poche righe per quell'UI.
  • gomobile / gobind →I binding Java sono creati automaticamente / bello ma le librerie sono molto grandi. Evitare importazioni eccessive. Solo poche righe per incorporare BoltDB, LUA, JS, Golang Networking engine etc
  • Android Studio Gobind Plugin → Rende facile costruire il progetto in Android Studio. Ho la mia versione personalizzata per passare -s -w flags al linker per rendere le librerie jni più piccole.

Ora le librerie jni go create sono troppo grandi che è l'unico problema che vedo. Si potrebbe passare i flag -s -w al linker per evitare i simboli di debug e ridurre 10-5 mb. Ho aggiornato il plugin di Android Studio per fare lo stesso: ricosys.org.golang.mobile.bind

Rezipping, allineamento, firma dell'apk possono ridurre le dimensioni dell'apk del 50%.

Mi piace la facilità e il divertimento nel codificare con Golang e Kotlin con Anko DSL e il beneficio aggiunto delle prestazioni.

Credo di essere un pioniere in questo campo facendo Kotlin, Anko e Golang per codificare per Android.

Se siete interessati potete dare un'occhiata alla mia demo sulla tecnologia JVM 8 dove in una singola app ho usato 7 lingue diverse e una dozzina di librerie in un 1.9MB APK per Android (L'app aveva diverse attività di lancio per ogni lingua, da cui tante icone):

Descrizione del video sopra:

BitCubate X Presenta, Java e 7 linguaggi JVM fianco a fianco in un unico APK Demo da 1.9MB!

Abbiamo farcito i linguaggi JVM #Scala, #Groovy, #Beanshell, #Lua, #Xtend, #Kotlin e #Processing. Contiene anche librerie standard Android, libAnko, Macroid AndroidSVG.

La dimensione del file dell'app è ridotta al minimo con proguard.

Quando è installato consuma ~5.86 MB che è abbastanza piccolo con tutte queste caratteristiche.

Siccome non sono un esperto in tutti questi linguaggi JVM, ho usato i loro codici di esempio standard di questi linguaggi - il merito va a loro.

Va notato che Groovy è un po' lento, cosa che scoprirò e sistemerò. Sembra che perda il suo tempo cercando di trovare classi non presenti.

Lua sembra veloce come un fulmine. Sia Lua che Beanshell permettono di eseguire script arbitrari da qualsiasi cartella specificata - si può usare per rendere le applicazioni estensibili. Anche Groovy potrebbe essere usato in questo modo, ma questo rallenterebbe ulteriormente le cose o creerebbe gonfiore - non sono sicuro, potrei provare.

L'elaborazione è un po' diversa qui, poiché il codice viene eseguito in Java attraverso la classe PApplet - quindi non sono sicuro che si possa dire che è pura elaborazione.

Questa potrebbe essere una buona notizia per chi odia Java o per le persone che vorrebbero scrivere codice in altre lingue oltre a Java su Android. Questa è una buona notizia per me, dato che avevo paura di scrivere codice con Java su Android, ed è anche il motivo per cui le mie applicazioni Android erano KISS finora - esempio BusyBox X. Sono più un programmatore di sistemi - amo il C, ma ora credo di poter scrivere applicazioni abbastanza complesse senza molte piastre attraverso le 7 opzioni.

Spero che questo sia utile.