Tomemos Yik Yak por ejemplo.
La creación de esa aplicación requiere un equipo de personas que tienen habilidades diferentes y superpuestas.
Desarrollo del diseño: los artistas deben diseñar varios activos utilizados en la aplicación, como el logotipo de la aplicación y otros íconos. También es necesario que exista un equipo de diseñadores de UI / UX que colaboren para determinar una UX fluida y una UI limpia. Utilizan herramientas como Sketch y Photoshop para construir el front-end de la aplicación. Esto requiere tiempo y dinero, ya que a esas personas probablemente se les paga por su trabajo.
- ¿Cuánto tiempo lleva estudiar Swift en comparación con otros lenguajes de programación?
- ¿Puede ser posible que Apple esté inyectando errores intencionales para impulsar a los clientes a una actualización de la versión de iOS?
- ¿Cuál es la diferencia entre KVO y NSNotification Center?
- ¿Cuál es el mejor consejo para alguien que quiere aprender Swift y ser un desarrollador de iOS?
- ¿Existen penalizaciones de rendimiento o limitaciones funcionales al usar RubyMotion sobre Objective-C nativo para el desarrollo de iOS?
Desarrollo de código (front-end): se divide en trabajo front-end y back-end. A veces, un desarrollador de pila completa puede trabajar tanto en el front-end como en el back-end de una aplicación. El front-end de la aplicación consiste en tomar los diseños realizados por las personas de UI / UX e implementarlos usando Storyboard o generándolos mediante programación. Por ejemplo, Yik Yak usa un UITableView para mostrar las publicaciones de las personas. El diseñador diseña una maqueta de cómo debería verse la IU y luego un desarrollador de iOS iría y crearía UITableView dentro de la aplicación.
Desarrollo de código (back-end): el trabajo de back-end está relacionado con el trabajo con una base de datos para el almacenamiento de datos. Una instancia sería; cuando un usuario publica una nueva publicación, estos datos (que normalmente se almacenan como una cadena), se envían a Firebase (una base de datos específica en tiempo real que utilizan la mayoría de los desarrolladores de iOS). Una vez que estos datos se hayan almacenado en la base de datos, todos los demás clientes tendrán su teléfono actualizado (si están a cierta distancia del primer usuario) con la publicación de ese usuario. Algunos problemas que podrían surgir serían tratar de escalar la aplicación hasta millones de usuarios, ya que el tiempo de inactividad de la aplicación significaría clientes insatisfechos => posible pérdida de usuarios.
Todos estos factores combinados resultan en el alto costo de construir una aplicación de tamaño moderado.