Cómo de preparado está Golang para el desarrollo tanto de Android como de iOS en términos de UI?

Puedo responder a la pregunta con respecto a Android. Y esta es una respuesta rápida, iré actualizando a medida que tenga tiempo… Si hubiera podido permitirme un Mac y un iPhone, también habría hecho esas demos técnicas para iOS

main-qimg-53108c26591c0bee7e21abddb92b4f31.webp

Yo uso esto para el desarrollo de Android.

  • Kotlin + Anko DSL para UI nativa → Más rápido que XML Layout Inflation / Fácil de codificar. Sólo unas pocas líneas para esa UI.
  • gomobile / gobind →Java Bindings son auto creados / genial pero las librerías son muy grandes. Evitar las importaciones excesivas. Sólo unas pocas líneas para incrustar BoltDB, LUA, JS, motor de red Golang etc
  • Android Studio Gobind Plugin → Hace que sea fácil de construir el proyecto en Android Studio. Tengo mi propia versión personalizada para pasar banderas -s -w al enlazador para hacer que las bibliotecas jni sean más pequeñas.

Ahora las bibliotecas jni go creadas son demasiado grandes que es el único problema que veo. Se podría pasar -s -w flags del linker para evitar los símbolos de depuración y reducir 10-5 mb. He actualizado el plugin de Android Studio para hacer lo mismo: ricosys.org.golang.mobile.bind

Rezipar, alinear, firmar el apk puede hacer que el tamaño del apk se reduzca en un 50%.

Me gusta la facilidad y la diversión en la codificación con golang y Kotlin con Anko DSL y el beneficio de rendimiento añadido.

Supongo que soy un pionero en este campo haciendo Kotlin, Anko y Golang para codificar para Android.

Si os interesa podéis echar un vistazo a mi Demo de tecnología JVM 8 donde en una sola app he utilizado 7 lenguajes diferentes y una docena de librerías en un 1.9MB APK para Android (La aplicación tenía diferentes actividades de lanzamiento para cada lenguaje, de ahí tantos iconos):

Descripción del video anterior:

¡BitCubate X Presents, Java y 7 lenguajes JVM lado a lado en un solo APK de demostración de 1.9MB!

Tenemos lenguajes JVM rellenos #Scala, #Groovy, #Beanshell, #Lua, #Xtend, #Kotlin y #Processing. También contiene librerías estándar de android, libAnko, Macroid AndroidSVG.

El tamaño del archivo de la app se minimiza con proguard.

Cuando se instala consume ~5,86 MB que es bastante pequeño con todas estas características.

Como no soy un experto en todos estos lenguajes JVM, he utilizado sus códigos de ejemplo estándar de estos lenguajes – el crédito va para ellos.

Hay que tener en cuenta que Groovy es un poco lento, lo cual yo’tará y arreglará. Parece que pierde su tiempo tratando de encontrar clases que no están presentes.

Lua parece la velocidad del rayo. Tanto Lua como Beanshell permiten ejecutar scripts arbitrarios desde cualquier carpeta especificada – uno puede usar eso para hacer aplicaciones extensibles. Groovy también podría usarse así, pero eso ralentizaría aún más las cosas o crearía bloat – no estoy seguro, puede que lo intente.

El procesamiento es un poco diferente aquí, ya que el código se ejecuta en Java a través de la clase PApplet – así que no estoy seguro de si podemos decir que es procesamiento puro.

Esto podría ser una buena noticia para los que odian Java o para la gente que le gustaría codificar en otros lenguajes además de Java en Android. Esto es una buena noticia para mí, ya que tenía miedo de codificar con Java en Android, por eso mis aplicaciones Android eran KISS hasta ahora – ejemplo BusyBox X. Soy más un programador de sistemas – me encanta C, pero ahora creo que puedo escribir aplicaciones bastante complejas sin mucha placa de caldera a través de las 7 opciones.

Espero que esto sea útil.