Desarrollo de Apps: Fundamentos Básicos

  • por
desarrollo de apps

La tendencia en el uso de smartphones está en aumento. Se estima que para el año 2019 más de 2 mil 500 millones de personas usarán dispositivos móviles inteligentes.

Los usuarios se interesan en adquirirlos por su versatilidad. Gracias a las apps y a su enorme cantidad de funciones, los smartphones dejaron de ser simples objetos de comunicación, convirtiéndose en herramientas para distintas áreas de la vida, como el trabajo o el entretenimiento.

Estudios indican que el 89% de nuestro tiempo usando smartphones lo pasamos en las aplicaciones, por eso, el desarrollo de apps es un mercado atractivo para los emprendedores.

Desarrollo de apps, ¿qué necesitas saber para comenzar?

Hay aspectos que debes tener muy claros antes de arrancar. Debes iniciar pensando y planificando lo que vas a hacer, para se debe considerar qué queremos hacer; hacia dónde dirigir nuestro trabajo; cómo vamos a desarrollar la dinámica del trabajo; que benéficos económicos obtendremos; quienes nos van a ayudar, etc.

Identifica una idea novedosa

Las necesidades del mercado son las primeras a identificar, allí están nuestras oportunidades de emprendimiento en el desarrollo de apps. Comenzaremos revisando nuestro smartphone, detallando las apps instaladas. Al fijarnos en sus características y funcionalidades, notaremos tres tipos:

  • Las que sustituyen a las que utilizábamos en equipos de escritorio, por ejemplo Google Docs.
  • Las que sustituyen a elementos de la vida cotidiana, como el calendario.
  • Las que agregan funcionalidad al smartphone, por ejemplo, la aplicación de mensajes.

Todas las apps están pensadas para satisfacer necesidades. En ese sentido, una buena forma de identificarlas es preguntarnos ¿cuáles necesidades no ha cubierto la competencia?

[bctt tweet=”El desarrollo de apps es un mercado atractivo para emprendedores y se estima que para el 2019 más de 2500 millones de personas usarán dispositivos móviles inteligentes.” vía=”no”]

Otra forma para encontrar ideas es evaluar las aplicaciones que usamos, ¿realmente cubren nuestras expectativas o pueden mejorarse?.

Pensemos en nuestros hobbies, ¿que nos gusta hacer en nuestro tiempo libre? ¿Existen aplicaciones que ayuden a desarrollar o mejorar nuestro desempeño?

Los usuarios son una fuente inagotable de ideas. A ellos va dirigido nuestro trabajo y escuchar qué necesitan, qué les hace falta o qué les gustaría añadir a sus dispositivos, nos ayuda a identificar sus necesidades.

Puede que existan apps parecidas a la que queremos desarrollar, en ese caso, considerar la opinión de los usuarios es también buena opción. Podemos ver sus comentarios en las tiendas de apps o preguntarles: ¿Qué otra función te gustaría ver en una app? ¿Qué consideras positivo o negativo de tus apps?

¿A qué plataforma va dirigida mi app?

Teniendo claro el concepto de la app, lo siguiente es escoger las plataformas donde estará disponible. Tengamos presente que aunque parezca sencillo, existen distintas plataformas (Android, iOS, Windows phone), distintos dispositivos (tablet, teléfono, PC) y distintas versiones del sistema operativo.

Cada uno tiene particularidades que afectan la interacción del usuario y el funcionamiento del app, por esos motivos, esta elección determina en gran medida el trabajo a realizar.

Pensando en eso es que generalmente nos decidimos por una aplicación nativa, ya que su diseño no representaría mayor complicación. Pero haciéndolo así dejamos por fuera un volumen considerable de usuarios de otras plataformas, quienes pueden interesarse en el servicio.

Si nos decidimos por una aplicación multiplataforma tendremos acceso a un mercado más amplio, pero para diseñarlas tenemos que considerar las características específicas de cada sistema operativo y dispositivo. Por ejemplo, si queremos una app que funcione en teléfonos y tablets, debemos considerar el tamaño de las pantallas en el diseño de la interfaz gráfica.

¿Dónde probar mi app?

Esto se puede realizar usando dispositivos reales o emuladores. Ambas opciones son válidas y cada una presenta sus propias ventajas y desventajas.

En los dispositivos reales tendremos todos los elementos necesarios para probar la app, pero su desventaja es de inversión, resulta muy costoso si la queremos en distintos dispositivos.

Con los emuladores el costo es menor y resultan versátiles, pero tendremos desventajas como ejecuciones lentas, no contar con varios elementos y algunas pruebas tendremos que hacerlas directo en los dispositivos.

¿Dónde publicar mi app?

Las apps se descargan en las tiendas de aplicaciones. A la hora de su desarrollo tenemos que considerar en qué tiendas vamos a publicarlas, porque algunas apps store exigen características específicas para los productos a ofrecer.

Durante la planificación de la app tenemos que incluir esas especificaciones en el diseño para que sea más fácil pasar por los filtros de las tiendas.

¿Cómo monetizar mi app?

Depende de la distribución y los beneficios obtenidos. El desarrollo de apps requiere una gran inversión, por eso, ya sea para recuperar la inversión o para generar ganancias permanentes, siempre es bueno pensar en las formas para monetizar.

En las app store existen muchas aplicaciones gratuitas. Si pensamos vender la nuestra, debemos estar conscientes que quienes la compren demandarán características que justifiquen la inversión.

Pero existen otras opciones para monetizar, como por ejemplo publicitando otras aplicaciones dentro de la nuestra o por el método in-app billing, que consiste en hacer la distribución de forma gratuita y vender características avanzadas.

El marketing nos ayudará en la distribución de la aplicación, pero en ocasiones esta opción es costosa y supera las ganancias. De ser nuestro caso, tenemos que pensar otras estrategias para distribuirla.

¿A quién buscar para trabajar? El equipo de trabajo

Crear una app es un trabajo combinado de varios especialistas. En términos generales, los equipos de desarrollo de apps se conforman de la siguiente manera:

  • Productor: Es quien dirige el proyecto y mitiga los riesgos.
  • Diseñadores: Refinan el concepto, hacen el diseño final y prueban el prototipo.
  • Programadores: Son quienes desarrollan la aplicación, deben ser personas con experiencia en apps.
  • Diseñadores gráficos: Como las apps tienen interfaces gráficas, botones, imágenes etc., tiene que haber diseñadores gráficos que realicen ese trabajo
  • Equipo de audio: Dependiendo de la app necesitaremos audios, por ejemplo cuando se trata de un videojuego.
  • Equipo de calidad: Ellos prueban la app en el mayor tipo de productos posibles. Su función es encontrar errores.
  • Equipo de localización: Este equipo de trabajo traducirá la app a los idiomas que solicitemos. Generalmente trabajan a través de un servicio subcontratado.
  • Equipo de marketing: Se encarga de posicionar nuestra app en el mercado.

¿Por dónde comenzar? Planificación del trabajo

Mencionamos que el desarrollo de apps es costoso, por eso, planificar el trabajo y establecer plazos es importante.

Cada parte del equipo tendrá tareas que deberá entregar en tiempos específicos. Nuestro plan de trabajo tiene que incluir esa información, además de indicar cómo se harán las actividades, los diseños, las maquetas, etc.

Tipos de apps

Existen tres tipos de apps, cada una posee características y limitaciones específicas.

Escoger entre una u otra dependerá de los dispositivos y sistemas a los que queramos llegar, de igual forma, de las funciones que queramos resaltar en la app.

Nativas

Las aplicaciones nativas son las desarrolladas utilizando el software que ofrece cada sistema operativo, estos se conocen con el nombre de Software Development Kit o SDK.

Por ejemplo, Android e iOS poseen diferentes SDK. Las aplicaciones desarrolladas en uno u otro son consideradas nativas para cada sistema operativo, sus diseños son específicos para cada uno y el lenguaje usado para su programación será el disponible en el SDK.

Sus características son:

  • Se descarga e instala en las tiendas de aplicaciones.
  • Se actualizan frecuentemente para corregir errores o añadir mejoras.
  • Pueden hacer uso de las notificaciones del sistema operativo para mostrar avisos importantes al usuario.
  • No requieren Internet para funcionar.
  • Aprovechan todas las características del hardware.
  • La interfaz está basada en las guías del sistema operativo, ayudando a la usabilidad.

Aplicaciones web

Son aplicaciones que funcionan sobre la web, es decir, se visualizan en los navegadores de Internet. Ellas no usan SDK, lo que permite programar de forma independiente. Su base de programación es HTML, junto con Javascript y CSS.

Se caracterizan porque:

  • No se instalan en el dispositivo, se visualizan en el navegador del teléfono.
  • Se distribuyen, comercializan y promocionan de forma independiente.
  • Cómo funcionan sobre la web, el usuario siempre estará actualizado a su última versión.
  • Requieren conexión a Internet para funcionar correctamente
  • Poseen algunas restricciones e inconvenientes en factores importantes como la gestión de memoria.
  • No permiten aprovechar al máximo los diferentes componentes del hardware del teléfono.
  • Su interfaz es mucho más genérica e independiente del sistema operativo, lo que dificulta la interacción del usuario.

Aplicaciones híbridas

Son combinaciones de las dos anteriores. Se usan HTML, CSS y JavaScript para desarrollarlas, pero al terminarlas se ajustan de forma tal que el resultado quede como si se tratara de una aplicación nativa.

Su ventaja es que a través de un mismo código se obtienen aplicaciones para diferentes sistemas, por ejemplo Android, iOS, Windows phone, etc.

Algunas de sus características son:

  • Se puede distribuirlas en las tiendas de los sistemas operativos.
  • Deja usar las capacidades del teléfono como si se tratara de una app nativa.
  • Permite usar controles y botones nativos de cada plataforma.

Lenguajes de programación

En informática el lenguaje de programación es todo idioma artificial diseñado para indicar secuencias de instrucciones a los ordenadores o computadoras. Se usa para crear programas que controlen el comportamiento de una máquina.

En el desarrollo de apps se utilizan distintos tipos de lenguaje. En varios casos, su elección depende del sistema en el cual queramos distribuir nuestra aplicación. Los más comunes son:

Java

Es la base para el desarrollo de apps Android. Posee una amplia comunidad de desarrolladores, lo que facilita conseguir ayuda y soporte técnico.

Sus características son:

    • Soporte en casi todas las plataformas
    • Lenguaje orientado a objetos
    • APIs y herramientas
    • Librerías de Open Source
    • Amplia comunidad de desarrolladores Android y Java
    • Fácil de aprender
    • Fácil de leer
    • Las plataformas de desarrollo IDE reducen el margen de error y facilitan el trabajo

Swift

Es uno de los lenguajes mejor valorados por los desarrolladores, está orientado a la creación de aplicaciones iOS y Mac Os X. Es un lenguaje moderno, optimizado, sencillo y muy potente con características que lo vuelven seguro.

Características:

    • Compatible solo con iOS y OS X
    • Sintaxis “Sugar” con un código más sencillo, más fácil de leer y que reduce el margen de error
    • Cada vez más común en el desarrollo de aplicaciones para apple
    • Fácil de entender
    • Librerías dinámicas
    • Más sencillo de usar comparado con Objetive C

HTML5 + Javascript

Se usa para crear web apps y aplicaciones móviles híbridas. De sus características destacamos:

  • Independencia con respecto a dispositivos y sistemas operativos
  • Se usa para el desarrollo de apps y páginas web
  • El diseño se adapta a cualquier dispositivo y tamaño de pantalla
  • La reproducción multimedia no requiere herramientas externas
  • Offline caching que permite trabajar con determinados elementos offline

¿Cómo crear una app?

El desarrollo de apps es una tarea compleja que involucra a profesionales de diferentes perfiles, como diseñadores y técnicos. Además, necesitaremos recursos, herramientas y documentación sobre lo que vamos a hacer.

App Android

Android es la plataforma líder en el mercado de las apps gracias a su popularidad, para el 2015 se estimó que el 80% de los smartphones ejecutaban Android. Por este motivo, es el mejor sistema para que los emprendedores concreten sus ideas.

Android y las empresas que lo apoyan han construido toda una infraestructura para desarrolladores, ofreciendo herramientas, tutoriales, ejemplos y dispositivos gratuitos o de bajo costo.

[bctt tweet=”Android es el sistema operativo líder del mercado, 80% de los dispositivos usados en el mundo poseen este sistema.” vía=”no”]

Desde un punto de vista más técnico, aportan una plataforma gratuita de desarrollo y un entorno de ejecución.

Para crear apps usaremos Android Studio, que contiene un catálogo amplio de herramientas, una plataforma de desarrollo conocida como el Kit Estándar de Desarrollo SDK y un entorno de programación llamado IDE.

De igual manera, Android ofrece a los desarrolladores documentos sobre herramientas, sus usos y guías de prácticas desarrolladas por la comunidad de creadores.

Por ejemplo, en la página Android Developers tendremos información orientada a tres grupos:

  • Distribute. Donde se encuentra contenido relacionado con las estadísticas del comportamiento de los usuarios. Se dirige a los gestores que se encargan de la difusión y comercialización.
  • Desing. Pensado para diseñadores gráficos.
  • Develop. Información para los técnicos con tutoriales, ejemplos, guías de mejores prácticas e historias de creadores mencionando las herramientas que han usado.

Además encontramos foros que sirven para resolver dudas relacionadas al desarrollo de apps, las cuales serán contestadas de la mano de la comunidad de creadores.

Apps iOS

iOS es el sistema operativo de los smartphones de Apple y solo puede ejecutarse en dispositivos de esa marca. Aunque no son compatibles, el sistema comparte características comunes con OS X como un mismo lenguaje de programación, herramientas y librerías.

Apple ha vendido más de 1000 millones de dispositivos, su tienda cuenta un millón y medio de apps que han acumulado de 100 mil millones de descargas. En el año 2015 se repartieron 15 mil millones de dólares entre los desarrolladores.

Una debilidad del mercado de apps iOS es que el 80% de ellas es difícil de encontrar, no recibe descargas y los desarrolladores les realizan muy pocas actualizaciones, pero es posible ganar dinero con ellas.

Apple ofrece a los desarrolladores diversos componentes para tareas comunes, por ejemplo algunos botones, interruptores, lista de elementos, etc. A pesar de que el sistema ha sufrido cambios a lo largo de su historia, en cada nueva versión agregan librerías que facilitan su uso.

El kit de desarrollo de iOS es uno de los más avanzados. Brinda acceso al hardware del teléfono, cámaras, giroscopio, GPS, barómetros y otras librerías que permiten añadir gráficos 3D, audio, video, etc.

La app store Apple posee un estricto sistema de revisión para nuevas  aplicaciones, por eso se recomienda leer el iOS Human Interface Guidelines y la Guía de Revisión de Aplicaciones.

Aunque pueden desarrollarse en otros sistemas operativos, para crear aplicaciones iOS necesitaremos un ordenador Apple, porque para subir una aplicación a la tienda hay que hacerlo desde una computadora Mac.

Xcode es el entorno de desarrollo integrado o IDE de Apple que incluye todo tipo de herramientas de edición y depuración de códigos, modelados de datos, diseño de interfaz, edición de escenas 3D y diseño de partículas, entre otras.

Los lenguajes de programación empleados para apps iOS son Objetive C y Swift, pero independientemente del que escojamos, debemos usar los frameworks de Apple que  permitirán interactuar con los diferentes servicios.

Multiplataforma

Basados en el hecho de que los móviles comparten características comunes, como pantalla táctil, acelerómetro, brújula, etc., las aplicaciones multiplataforma surgen de la necesidad de crear apps que cubran una mayor cuota de mercado en las distintas plataformas.

El desarrollo de apps multiplataforma reduce los costos y cubre las cuotas del mercado, pero su mayor desventaja es que no aprovechan al máximo el potencial del dispositivo, por ejemplo la cámara, el GPS y otros.

Las web app solo pueden usarse desde el navegador del teléfono y para crearlas usaremos HTML5, Javascript  y CCS. Si queremos una app que trabaje fuera del navegador, nos encontramos ante una aplicación híbrida.

Las app híbridas son webapp creadas con un envoltorio que les permite ejecutarse dentro del dispositivo como cualquier app nativa.

Con Phonegap y Apache Cordova podemos crear apps híbridas, sin necesidad de entornos de desarrollo más allá de HTML, Java Javascript y CCS. Otra característica positiva es que pueden distribuirse en las tiendas de apps.

https://www.youtube.com/watch?v=PtkgjLwocIU

Software para desarrollar apps

Android studio

Es el entorno oficial de desarrollo de Android y se encuentra en descarga gratuita en la web de Android Developers. Ofrece un Kit Estándar de Desarrollo SDK y un entorno de programación llamado IDE.

En el SDK encontraremos:

  • El entorno de ejecución
  • Las librerías de códigos
  • Ejemplos de códigos fuentes
  • Emuladores con un catálogo de los dispositivos reales como smartphones, tablets, etc.
  • Componentes como el SDK Manager que se utiliza para gestionar los componentes instalados con el SDK

El entorno de programación IDE es el que proporciona funcionalidad para crear las apps y ofrece:

  • Un editor de código especializado para Android
  • Un editor visual para las interfaces gráficas para su diseño
  • Permite desplegar las aplicaciones en dispositivos reales o virtuales donde podremos ejecutarlas, evaluar su estado interno, el uso de memoria y tiempo de uso del procesador

X Code

Es el entorno de desarrollo IDE de Apple. Contiene un  conjunto de herramientas que permiten a los desarrolladores crear software macOS, iOS, watchOS y tvOS. Se encuentra disponible para descarga gratuita en la Mac App Store o mediante descarga directa desde la página para desarrolladores.

[bctt tweet=”El entorno de desarrollo de iOS y el lenguaje de programación Swift son los mejores valorados por los desarrolladores. Aunque el sistema ha variado mucho a través de los años, con cada cambio ofrecen librerías que facilitan el trabajo.” vía=”no”]

Sus principales características son:

  • Ofrece una herramienta gráfica para la creación de la interfaz
  • Distribución del proceso de construcción de la app usando un código fuente entre varios ordenadores
  • Permite acceso al hardware del teléfono, cámaras, giroscopio, GPS y barómetros
  • Sus librerías permiten añadir gráficos 3D, audio, video, etc.
  • Instrumentos para el análisis de rendimiento visual
  • Tecnología LLVM que encuentra y corrige errores

Conclusiones

El desarrollo de apps móviles es un atractivo mercado para emprendedores, aunque requiere de una gran inversión inicial, a través de diferentes mecanismos, como el método in-app billing, esta se puede recuperar y generar ganancias.

Crear apps móviles es un proceso que requiere preparación. Esta información es solo la base para iniciar, pero si deseas ampliar este contenido, te recomendamos el curso Desarrollo de Apps de Google Activate.  

Te puede interesar:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *