Estos días estoy trabajando en los productos de App Móviles y me he puesto a pensar en algunos detalles que son necesarios para ser un buen desarrollador. La verdad es que la mayoría de ellos son aprendidos al practicar mucho, pero sin saber algunos se presentan problemas y pueden llegar a ser muy frustrantes.
Para empezar hay que tener claro qué es una App: Es un programa informático diseñado para funcionar en un solo dispositivo, normalmente es descargable desde el propio App Store del sistema operativo. Una vez instalada se aloja normalmente en forma de icono o acceso directo en la pantalla de inicio. No olvides que estás trabajando con programas que serán instalados en el teléfono de tu cliente, no debes preocuparte demasiado por la apariencia, sólo cumple con lo exigido. Si estás empezando a desarrollar apps esto se te va a hacer muy fácil.
Algunas cosas que debes tener en cuenta para diseñar tu app son: Que sea simple y concisa, no uses demasiados colores o textos sobre todo si usas android. En los dispositivos de Apple es especialmente importante que utilice colores que destaquen poco y textos claros, esto se debe al sistema operativo de la marca (iOS). Si quieres complicarte la vida, cualquier aplicación hecha en Sketch o Photoshop para iOS debe tener un texto «AZUL» y para Android debe ser «AMARILLO».
Es importante que la app sea sencilla, no importa si es muy funcional o compleja (aunque lo ideal es ir acomodando las cosas en el proceso), pero asegúrate de que todo lo que vaya a hacer tu app sea útil, no incluyas funciones innecesarias en un principio porque podría provocar errores.
Esto se debe a que el consumidor medio de iOS está acostumbrado a la calidad y la utilidad de sus productos, mientras que en Android no. Para iOS hay que ser más cauteloso con las apps puesto que están dispuestas a pagar por mejores funcionalidades. Lo que nos lleva al siguiente punto :
Para aplicaciones iOS: No olvides comprar una licencia de desarrollo, si quieres vender tu aplicación en el App Store. Para Android no es necesario, pero puedes cobrar por tu aplicación y crecer como desarrollador profesional (también es un plus).
Además de descargar nuestra aplicación del Android Market o App Store, existen métodos para poder probar la funcionalidad completa antes de ser publicada y si se prueba con clientes felices, aumenta las posibilidades de que sigan usando tu aplicación.
Es necesario que la app sea fácil y rápida para ser utilizada, no olvides implementar funcionalidades interesantes como por ejemplo: Moverse en la aplicación es la parte más sencilla posible, no utiliza funcionalidades que tengan muchas posibilidades arriba y abajo.
Algo que se tiene en cuenta mucho es si la app va a necesitar conexión a internet o no, si necesitas conexión recuerda que necesitarás usar sockets y otras funcionalidades que vamos a discutir más adelante.
Aquí voy a hablar de las herramientas, en realidad son dos, cocoapods y Carth edad.
Cocoapods es una herramienta utilizada para agregar funcionalidades de terceros en tus proyectos, esto significa que podemos agregar todo tipo de funcionalidades (podrían ser librerías de cualquier sistema operativo) a nuestros proyectos de código abierto (Open Source, que implica que puedes modificar el código y postear tu app en otros sitios).
Cocoapods es un gestor para usar herramientas opensource en el iPhone y está compuesto por una gran comunidad de desarrolladores que nos ayudan a encontrar las mejores herramientas para nuestros proyectos, además de poder publicarlas.
Carthage es un sistema de compilación similar a cocoapods, trabaja con herramientas opensource (en este caso de Mac) y similares, pero no es tan utilizado como su contraparte para iOS.
Si queremos dividir nuestro proyecto puedes hacerlo con Carthage, Cocoapo por tu cuenta (creando una carpeta para cada librería y agregándola al proyecto).
Carthage es de uso más sencillo, pero Cocoapods es el que se utiliza más frecuentemente.
Cocoapods nos puede servir para encontrar funcionalidades que como desarrolladores no podemos crear o bien, utilizar alguna librería opensource que evite tener que reinventar la rueda.
Para saber cómo usar cocoapods y navegar por su repositorio ve al siguiente enlace.
Para saber cómo usar Carthage y navegar por su repositorio, ve al siguiente enlace.
Para añadir el framework de Creps o CocoaTods a tu proyecto debes buscar el ejecutable en la consola de terminal y agregarlo a tu proyecto.
El siguiente punto es muy importante para que seas un buen programador, el código austero (calidad del código) o calidad del código .
En los años que llevo programando iOS me he dado cuenta de que mucha gente no entiende esto, por eso lo voy a exponer en pocas palabras para que sea más fácil de comprender. Cuando se diseña un proyecto lo primero que se debe hacer es ponerse a pensar en todos los casos posibles, esto significa que ponemos código para detectar si estamos por arriba o por abajo del logro y después agregamos el mismo código para el otro caso, estamos duplicando código.
Este es un ejemplo de lo que quiero explicar, tú no tienes porqué hacerlo así. Lo mejor es crear una función y llamarla en las diferentes partes donde se necesita, de esta manera tienes menos código y mejor optimizado.
La siguiente gran diferencia es el uso de métodos abiertos y cerrados.
A los métodos abiertos podemos llamarlos así, porque los utilizamos en otra clase y así siempre estaremos actualizados con los cambios.
En el caso contrario tendremos un método cerrado que es útil cuando queremos modificarlos dentro de la misma clase.
Por ejemplo, para mostrar un mapa usaremos abierto, pero si queremos dibujar una línea en el mapa lo haremos cerrado.
Un detalle muy importante que debes tener en cuenta son las herencias, es decir, cómo puedes apropiarte de otros marcos y modificar su funcionalidad, de esta manera podrás mejorar mucho tu software.
También tienes que tener el concepto bien claro de lo que es y no es polimorfismo, en lenguaje coloquial creo que será algo común para todos, pero aún hay programadores que desconocen este concepto básico.
Programar es muy bonito y divertido si lo sabes hacer bien, además de ser algo que podrá ayudarte a resolver muchos problemas en el futuro. La siguiente parte es muy importante, es la optimización y definición del código.
Un programador avezado no le va a llevar mucho tiempo encontrar la mejor manera de realizar las tareas, pero por por otro lado un desarrollador principiante sigue las reglas que otras personas le marcan, esto significa que el programador avezado usa cosas como la métrica del código y utiliza operaciones algorítmicas que lo hacen trabajar más rápida y eficazmente.
Esto no significa que un programador principiante este incapacitado para realizar un buen trabajo, sólo tiene que asimilar bien el idioma de programación y entender sus conceptos básicos.