Aprendiendo a programar para hacer aplicaciones

Para lograr que una aplicación móvil tenga éxito se precisa aprender sobre muchos temas. La programación es uno de estos temas. La misma se puede tercerizar con desarrolladores freelance (que no están asociados a una empresa) lo cual puede ser tentador por el precio estimado inicialmente, pero usualmente la calidad es baja y termina llevando mucho más tiempo del presupuestado y con un costo final alto. La otra opción son las empresas de tipo software factory, pero esto suele ser muy caro para un emprendedor independiente. 

Por lo que sería recomendable que al menos uno de los miembros del equipo fundador sepa desarrollar y que esa sea su función en la incipiente empresa. Por lo tanto vamos a empezar por la forma de capacitación en desarrollo para Android que resultó ser la mejor para mi situación. 


Desarrollo de aplicaciones móviles para Android

Al empezar con la idea de programar para hacer aplicaciones Android no sabía muy bien cómo iba a ser el proceso. Mi experiencia nivel medio en lenguajes de programación sin duda que me dieron confianza para poder arrancar. Tener conocimientos de Java fue un plus muy importante dado que en 2014 la programación para Android se hacía completamente en ese lenguaje. Igualmente el ecosistema Android es muy particular y la verdad que la potencialidad de Java no es una ventaja apreciable para el programador. 

Android tiene una serie de librerías en donde se oculta (encapsula) todo el comportamiento de los bloques básicos para el funcionamiento de una app para que el programador no tenga que saber todos los detalles de bajo nivel y se pueda dedicar al funcionamiento de la aplicación sin preocuparse por resolver problemas básicos como ser el acceso a GPS, WiFi y demás sistemas del teléfono. Estos bloques tienen su propio ciclo de vida (p.ej: inicio, pausa, reinicio, fin de una pantalla) y otras propiedades que lo hacen parecer más a una programación de bloques prefabricados que a un programa hecho en Java desde cero.

En vista de esto Google ha optado recientemente (al momento de escribir) por darle entrada a un lenguaje de programación de más alto nivel llamado Kotlin, el cual facilita al programador la tarea y acerca la sintaxis del mismo a las ideas que están detrás de los bloques funcionales de las librerías de Android.

Con esta introducción quiero decir que hace unos años era más complejo para alguien sin experiencia en programación poder empezar, hoy en el 2019 con Kotlin esto ha cambiado y cualquiera que tenga las suficientes ganas de aprender y no le aburra el tema, puede hacerlo. 

En mi caso, al trabajar todo el día no tengo mucho tiempo para dedicarle a actividades adicionales, y tener que ir a un instituto a aprender en la noche no es muy buen plan si quiero también tener una vida. Tampoco existían muchas opciones en ese momento en el mercado para aprender a desarrollar apps. Por lo tanto me inscribi en el MOOC que me recomendó mi amigo. En realidad son un conjunto de cursos que son gratuitos pero que si quieres un certificado debes pagar unos 50 dólares. 

Hay mucha oferta hoy en día, puedes buscar en Coursera, Udemy u otras plataformas de aprendizaje online, pero si quieres puedes ir a la opción que yo realice en Coursera en el 2014 que se llama Programming Mobile Applications for Android Handheld Systems. Ten en cuenta que este curso está en inglés y aparte está basado en Java lo cual puede ser más complicado si recién empiezas a programar que un basado en Kotlin como The Complete Android + Kotlin Developer Course™ de Udemy.


Aprendiendo sobre la marcha

Bueno esto que te conte es solo la punta del iceberg. La parte fuerte del aprendizaje se logra en la práctica, empezando a hacer cosas. Pero ten cuidado, porque es en este punto también donde empiezas a perder la cabeza buscando errores y donde hay más chances que decidas abandonar. Por eso es bueno empezar con un curso donde tengas las cosas servidas en bandeja para aprender con ayuda antes de tirarte solo.


Empieza escribiendo en un papel lo que quieres lograr, y acompañalo de dibujos de las pantallas que quieres tener y cómo se navega de una hacia otra. Una vez tengas esto claro puedes empezar a buscar ejemplos en la web. Hay una infinidad de blogs y páginas relacionadas a estos temas por lo que seguramente encontrarás rápidamente una referencia. Por ejemplo si tu página precisa de una lista de fotos y texto como twitter o Instagram puede buscar por los términos, list with image and text example Kotlin, y por ejemplo encontrarás esta página entre otras. Si puedes buscar usando inglés vas a encontrar más cantidad de resultados.

Esto en cuanto al desarrollo de la idea, ahora llega un momento en que empiezas a realizar pruebas y es ahí donde ya dijimos que empiezan los líos complejos. Al principio puedes sentirte desesperanzado al ver la cantidad de logs y errores que aparecen en la pantalla de tu ambiente de desarrollo (Android Studio en mi caso), pero te aseguro que con el tiempo lograras encontrar los problemas más sencillos simplemente revisandolos rápidamente. Lo importante aquí es encontrar una línea relevante y buscar en la web por alguno de esos términos (*).

Hay mucha gente programando para Android en el mundo, y lo han venido haciendo hace ya muchos años, por lo tanto la probabilidad de que una o varias personas hayan pasado por lo mismo que tu es alta. 

Usualmente la respuesta la encontrarás revisando respuestas a preguntas hechas en Stack Overflow, que es un sitio de colaboración de programación. Y a partir de estas vas a lograr afinar tus búsquedas a términos más relevantes para tu problema, lo cual te dará como resultado otra lista de respuestas. Así vas iterando hasta llegar a una que te sirva o a varias, y sacar ideas de ellas para resolver tu problema. 


(*)Tu diras, y como demonios se cuando una línea es relevante o no? Busca líneas que identifiques con partes de tu aplicación escritas por ti. Recuerda que lo que estás usando son muchísimas librerías que Google provee para la programación de estas aplicaciones y la gran mayoría de las líneas que verás en la lista de errores (stacktrace) serán desconocidas por ti y te generan confusión.





Comentarios

Entradas más populares de este blog

Los mejores memes de Shakira Bizarrap Music Sessions #53

Los mejores memes del mundial de Qatar 2022