Curso de Bases Técnicas de Android

Curso de Bases Técnicas de Android

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Lenguajes para programar en Android

17/27

Lectura

¡Un saludo, Platzinauta!👋🏻

¡Ups! De momento esta clase no está disponible en nuestra plataforma, pero sí la tenemos en YouTube.

Para no interrumpir tu aprendizaje te dejamos el video y link para que puedas verla en YouTube.

Link a YouTube

Pronto estará disponible en Platzi como el resto de clases.

Gracias por tu comprensión y nunca pares de aprender. 💚

Aportes 56

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Como desarrollador de Móvil con 3 años de experiencia, les quiero compartir mi experiencia haciendo un resumen de los pros y contras de cada tecnología, solo hablare de las más extendidas, las de nicho como Ruby no las tocare, tampoco la de Unit 3D porque eso es para juegos y todavía no he trabajado con eso.

.

Nativo:

.

Las opciones nativas, utilizan XML para las interfaces, y la maquina de Java (JVM) para el código fuente, estas opciones tiene mas soporte con el hardware y tienen mejor rendimiento que cualquier opción híbrida.

.

El problema con estas opciones, es que vas a terminar manteniendo 2 o más proyectos que virtualmente son el mismo en distintos lenguajes, lo cual supone un gasto energético y de tiempo bastante elevado.

.

Java: este es el lenguaje que más tiempo a estado en el desarrollo de Android, y donde encontraras prácticamente toda la documentación oficial tanto vieja como nueva, su comunidad sigue siendo enorme y hay muchísimas librerías para ella.

.

Kotlin: este es el mejor lenguaje para programar nativo, es bastante más compacto que Java, tiene total compatibilidad con Java, por lo que lo puedes usar junto con Java para ir migrando poco a poco tu código, y por sobre todas las cosas no sufrirás por los nulos, (los nulos fueron el 70% de las causas de las caídas de los aplicativos de mi empresa, es un problema mas serio del que puedes llegar a imaginar)

.

Opciones Híbridas:

.

Simplemente no te metas ahí, no lo hagas, perderás tu tiempo, tu tiempo es mucho más valioso, aquí básicamente utilizan un Web View para encapsular código de javascript, html y css, es una perdida de tiempo total, mal performance y muchas limitantes.

.

Si aun así quieres usar Javascript, te recomiendo React Native o ionic, no uses las opciones híbridas si valoras tu tiempo.

.

Opciones Bridge:

.

Bueno aquí tenemos 4 opciones Flutter, ionic, React Native y Xamarin, de estas no he probado ionic, así que no podre hablar mucho de esa.

.

Estas opciones si bien tienen un performance aceptable las aplicaciones nativas le siguen ganando en este aspecto, pero tienes la ventaja de que te ahorras bastante tiempo

.

React Native: Si te gusta React o simplemente javascript, esta opción probablemente sea de las mejores, ya que es javascript es probable que toda tu empresa pueda apoyar en el proyecto (Javascript es el lenguaje más usado en el mundo)

.

Una ventaja importante, es que siempre podrás usar código y controles nativos, así que no tendrás que preocuparte porque algo no salga para React Native.

.

El principal problema es que ahora mismo no se cuenta con multihilo (hay algunas librerías pero no funcionan del todo bien), así que para cosas pesadas tendrás que usar código nativo.

.

Xamarin: Si usas C#, esta es la opción más rápida, desarrollar en xamarin no es mala idea, tiene mucha historia y un soporte muy robusto de parte de Microsoft, prácticamente todo lo que hay en nativo sale para Xamarin al poco tiempo.

.

Mi problema con Xamarin es que dependes del soporte de la comunidad, si tienes un proyecto sencillo y que haga cosas comunes no tendrás problemas, pero en mi caso yo soy de experimentar siempre con las nuevas cosas que traen Google y Apple, de andar haciendo experimentos y Xamarin no me da esa libertad.

.

Tengo miedo de Xamarin, porque no me da acceso al código nativo, sino a una representación abstracta del mismo escrita en C#, asi que por eso no lo uso, no quiero sorpresas raras en un proyecto de años de trabajo.

.

Pero si no eres tan errático como yo y simplemente quieres hacer un aplicativo solido sin tanta experimentación es totalmente funcional. De hecho creo que es la opción Bridge más solida a día de hoy.

.

Flutter: Bueno esta es la opción con el mejor rendimiento ya que tiene un enfoque distinto al resto de las opciones Bridge, es posible que para ciertas interfaces gráficas sea incluso más rápido que las nativas, así de poderoso es su enfoque.

.

Problema, al igual que pasa con React Native, no tenemos multi hilo propiamente dicho, tienen una cosa rara al igual que React Native pero ya les digo que si van a hacer procesos pesados, no sera buena idea hacerlo en Flutter. Así que muy probablemente termines usando código nativo para los procesos más pesados.

.

Al igual que con React Native, tienes total acceso al código nativo, pero con un pequeño problema, si bien es más rápido que React Native, no utiliza el XML (o los .xib/.storyboard en iOS), así que dependerás de los widges que haga Google y su comunidad, no tendrás acceso a todas las opciones nativas nada más salgan, algunas puede que nunca tengas acceso, por ejemplo con el touch 3D de Apple, no sé si ya hay soporte, pero si sé que durante mucho tiempo esto simplemente no se podía hacer.

.

Así que para aplicativos más experimentales optaría por React Native, pero para aplicativos que requieran mejor rendimiento me inclinaría por Flutter.

.

Conclusiones y Una opción complementaria:

.

Bueno si vieron las opciones Bridge de React Native y Flutter, son buenas para unificar interfaces gráficas, pero para código complejo y procesos pesados falla, hay se puede crear librerías comunes con tecnologías como Kotlin Multiplatform, esto sin duda es mucho más trabajo de configuración, y tiene muy poca documentación, pero se puede realizar, de hecho es la opción por la que me estoy decantando a día de hoy.

.

Sin embargo Xamarin no tiene este problema, así que considero que es la opción mas solida a día de hoy, dependerás de Microsoft, pero hay mucha documentación y es muy solida la tecnología. Si no la uso porque soy errático y no me quedo a gusto si no puedo tener el código nativo a mi disposición (me gusta hacer cosas raras).

…

Por ultimo decirte que si aspiras a realizar aplicaciones grandes de peso, es mejor que hagas proyectos Bridge a los nativos, ya que mantener 2 proyectos es excesivamente costoso, sacrificas un poco de performance para mantener todos tus recursos enfocados en tener aplicativos sólidos y bien testeados.

Yo estoy desarrollando aplicaciones móviles para iOS y Android en Xamarin de forma muy satisfactoria.

De hecho tenemos una aplicación super gigante que es para el manejo y automatización de los procesos logísticos en grandes almacenes, totalmente con Xamarin para Android, su desempeño es genial y la puesta en producción es muy rápida.

Lenguajes de Programación
Hay varios lenguajes que podemos usar para el desarrollo de app en android uno de ellos y el mas antiguo es Java, también existe otro lenguaje que trabaja de forma nativa y es Kotlin en este resuelve muchos problemas que java aun no puede resolver, también tenemos JS que se trabajan en muchos Frameworks como Reactive Native, Ionic que se ocupan para sustituir el Xml que ocupamos en Java y Kotlin para esquematizar la interfaz Gráfica.
Tenemos otro entorno de desarrollo que es Xamarin que se basa en el Lenguaje C sharp que lo que intenta hacer es hacer app totalmente nativas tanto para ios como para android, web y de escritorio.
Y por ultimo tenemos NativeScript que es parecido a Ionic pero presume ser un poco mas rápido y eficiente.

a hoy diciembre del 2018 hay que agregar Dart con Flutter

Dart con Flutter, que provee una facilidad grandísima para desarrolar UI para varias plataformas

EN LOS VIDEOS MAS ACTUALIZADOS MENCIONA LAS VENTAJAS DE TRABAJAR CON KOTLIN, POR LO QUE SUGIERO ENFOCAR TODO SU ESTUDIO A KOTLIN Y PARTE DE JAVA

Yo he utilizado Ionic y es muy bueno para aplicaciones que no hacen un uso intensivo del hardware del dispositivo (mas allá de lo común camara, gps…)
Algo a destacar de ionic es que te permite crear aplicaciones web, pwa, apps de escritorio, ios y android desde una base de código. Muy recomendado para hacer MVP y prototipar ideas.

los lenguajes para andorid

  • java - en android esta unido con xml para las interfaces
  • kotlin en android esta unido con xml para las interfaces
    react native - en android utiliza html y css para las interfaces (Java - kotlin)
    ionic- en android utiliza html y css para las interfaces (JavaScript)
    xamarin en android (C#)

Tengo un conocido que hizo una app utilizando IONIC, al principio iba bastante bien, pero cuando quiso agregar mejoras y actualizaciones tuvo bastantes problemas y, finalmente, la terminó haciendo en JAVA…

Lenguajes para programar en Android

<h4>Java</h4>

Es un lenguaje con mucha comunidad y soporte, así como librerías de terceros. Es el lenguaje que más tiempo se lleva usando en Android. Se desarrollan las interfaces con XML…

<h4>Kotlin</h4>

Resuelve muchos problemas que tiene Java, como excesivas líneas de código y punteros nulos. Es fácil de aprender e interoperable con Java. Las interfaces también funcionan con XML.

<h4>React Native</h4>

Permite ahorrarnos el código XML y desarrolla las interfaces con tecnologías web por lo que son muchos más portables a otros ambientes, pero igual el control de esta es mediante Java o Kotlin.

<h4>Ionic</h4>

Es recomendable para proyectos pequeños, trabaja enteramente con lenguajes web, nada de Java o Kotlin. Es básicamente una aplicación web incrustada en una aplicación nativa.

<h4>Xamarin</h4>

Funciona con C# y es sencillo de aprender, presume de entregar aplicaciones nativas tanto para Android como para iOS.

Hola Anahí y comunidad. Cual lenguaje me recomiendan Java o Kotllin?, para el desarrollo de apps ANDROID.

gente … cual recomiendan aprender primero ionic o flutter … solo quiero hacer proyectos pequeños …
mi objetivo principal por ahora es familiarizarme un el desarrollo móvil .

y Flutter? 😦

DESPUES DE LA EXPLICACIÓN CONSIDERO A KOTLIN COMO LA ALTERNATIVA PARA DESARROLLO RAPIDO DE APLICACIONES…

Hola muy buen curso, en mi caso, solo he utilizado js con react native, actualmente trabajo en un proyecto con esta tecnología. Ahora estoy tratando de incrementar mis conocimiento con código nativo. Sin embargo, he tenido que tocar el manifest unas cuantas veces y tambien graddle y algunas integraciones con google play services. Creo que si estas trabajando en el mundo mobile, sin importar cual de los muchos frameworks o herramientas uses siempre es bueno tener conocimientos bases sobre java y los leguajes nativos para el desarrollo mobile. Gracias por el curso lo estoy disfrutando…

intereseante ionic!!

Flutter es otra opción y hasta el momento mi favorita ❤️
De hecho hice una ponencia sobre el desarrollo de apps en Flutter, aquí se las comparto creo que podría ser interesante!

https://docs.google.com/presentation/d/1gu--04D4j2Wh9-1aNAxAvUcDJUfJdODQUpWthUVzTo4/edit

https://github.com/carlosmoran97/mussol_messenger

Hola Excelenten, Video, no Sabia mas alla de Java, pero ahora quisiera manejar Kotlin y React, Como tambien Ionoc, Espero con ancia seguir para conocer estos cursos… Gracias Ann!!

Flutter de Google para desarrollo de apps nativas multiplataformas

Flutter es el numer one, super rapido y muy bueno he trabajdo con react y es la forma geneial que es trabaar con flutter que se basa en la forma de trabajo de React y es super facil y super recomendado.

OK… Esto es muy controvercial…

¿Qué ha pasado con la app de platzi? Aquí una excelente historía que debemos revisar…
https://platzi.com/blog/la-app-nativa-de-platzi/

Dart con Flutter.

flutter

Alcancé a utilizar phonegap

@anncode dicta Kotlin porfa

Para crear videojuegos es mejor hacerlo desde android studio y con estas tecnologias o con un motor de juegos como unity?

Cual es mas recomendable en la actualidad Flutter o React Native.

Una lista de Lenguajes de programación bastante amplio.

Dart

He utilizado Xamarin Adroid nativo para desarrollar, y la verdad es muy bueno tiene bastantes similitudes con Android nativo, y si ya desarrollas en C# es muy facil de aprender.

Lo único es que a la hora de integrar librerías de java o Android es muy complicado, además cuando instalas el apk generado te instala otras aplicaciones como el Mono.droid (que son necesarias para el funcionamiento de Android).

Además la documentación de la comunidad que hay es muy poca si tienes un problema es muy difícil encontrar información al respecto (hablo de hace 1 año mas o menos no se como seguirá ahora)

Opinión Personal no me gustó Xamarin

Sé programar C# a un 10%, porque para conocer todo, es necesidad de mucho tiempo, pero si conocia que se podia utilizar Xamarin para diseñar las aplicaciones, lo que desconocia plenamente era que se puede utilizar JS en el desarrollo, es bastante interesante.

AUNQUE CONSIDERO QUE C# ES UNA DE MIS FORTALEZAS

Ya hice mis cursos de kotlin pero ahora siento la necesidad de aprender java ya que veo ann resalta mucho que saber java nos ayudara a entender mas kotlin, java alla voy aunque estuve muhco tiempo resagado en aprenderlo, voy hacer el curso con la motivacion de entender mejor kotlin y como nuestra plata forma playzi lo tiene hay que aprovecharlo, i love platzi

Que tal ésta ruta: Curso de android con Kotlin y curso de React Native. Es la que pienso hacer.

Lo que puedo decir es WOWWW la programacion es lo mas hermoso que he podido conocer y hacer

Ionic es muy bueno

En la empresa se desarrolló una aplicación muy importante con IONIC y no pudo ni ponerse en producción. Fue necesario desecharla por completo y hacerla en otra plataforma.

Con ionic, he trabajado con mapas

Para desarrollar app para Android existen muchas alternativas de acuerdo al alcance del proyecto.
Empecé con Java , luego fui full web y escuché de Kotlin y más Nativo hasta un poco de híbrido. El volver a repasar me hace ver cuanto ha progresado el desarrollo móvil desde que salí de la universidad en estos cortos años.

Gran Aporte

Flutter!!!

Te falto dart con flutter para apps híbridas.

Me gustaría saber como es que funciona el desarrollo movil con Angular, que segun tenia entendido es parecido a ionic

Mi hermano me cuenta que usa Flutter y que es muy sencillo en comparación a otras opciones que ha utilizado

Hola anahi, nunca programe en android apptengo experiencia con Html pero tengo muchas ansias por probar Todo este conocimiento, la seccion de práctica dentro de la aplicacion está mas adelante?

Flutter y Dart

Flutter con dart y también he escuchado que se puede usar python.

La verdad nunca he programado por lo tanto usado ningún lenguaje.
sin embargo si he escuchado a cerca de python y C++

La información que dan de React Native está incorrecta, no necesitas programar en nativo para hacer una App a no ser que tengas que tocar módulos especiales.

Puedes hacer todo, sólo con React Native, de hecho si usan Expo es más sencillo el proceso de desarrollo

Aportaría Flutter con Dart y para el tema de React Native no es obligatorio conocer Java o Kotlin al menos que requieras alguna funcionalidad o comportamiento personalizado.

Dart con Flutter!! 😄

Yo quiero empezar con java puesto que si bien no es un lenguaje que domine, fue el primer lenguaje que vi en la universidad y tengo las nociones para aprender poco a poco.
Aunque me gustaría algún día probar React native ya que estoy en proceso de aprender JS y me gustaría experieentar con esta tecnología.

Java kotlin y React

Flutter
Hay curso donde profundicen más acerca de cómo usar Xml?