¿Qué debo dominar antes de crear una aplicación social para iOS?

Necesitará saber mucho si va a abordar esto por su cuenta. La aplicación de iOS es la más visible, pero la menos importante en el gran esquema de las cosas.

Primero, necesitará conocer su mercado. ¿Qué hace que tu aplicación social sea diferente a las demás? ¿A quién estás tratando de contactar? ¿Cómo los alcanzarás? ¿Cómo conseguirás que usen tu aplicación?

Una vez que haya descubierto eso, no solo necesita desarrollar una aplicación (que es la parte fácil), sino que también debe desarrollar su infraestructura. Que sistema operativo Que hardware ¿Quién lo alojará? ¿Cuánto ancho de banda necesitarás? Si está basado en una base de datos, ¿qué db? ¿Cómo va a replicar entre bases de datos? ¿Cómo va a realizar copias de seguridad? Si tiene éxito y necesita aumentar la capacidad, ¿se ampliará su diseño para satisfacer la demanda? ¿Quién ejecutará los servidores, redes y bases de datos? ¿Cómo estará disponible su aplicación si un sitio de host deja de funcionar? ¿Quién hará la atención al cliente? ¿Cómo pagarás por todo eso?

Se aturde la mente.

Si todo eso no te asusta, una buena manera de comenzar es diseñar tu sistema, de principio a fin, teniendo en cuenta todo lo que mencioné, y luego implementar un prototipo que puedas usar para desarrollar y probar tu visión.

Dado que el hardware cuesta mucho dinero, compre UNA caja de Linux muy robusta con múltiples procesadores, muchos ram y husillos de unidades múltiples, luego haga la prueba y el desarrollo de su servidor utilizando máquinas virtuales. Sí, también puede hacerlo en una Mac, pero si desea hacer frente a un servidor robusto, es mejor implementarlo en Linux (también es más barato que ejecutar servidores en Mac).

Documento TODO. Esto puede ahorrarle si algo se rompe, si necesita ayuda para desarrollar el sistema o si alguien intenta robar su idea.

Una cosa que mata por completo la escalabilidad es elegir una pieza crítica que no escale. Si su proceso de back-end consume demasiada RAM para cada conexión, agregar más RAM no es escalable. En cambio, haga que su aplicación del lado del servidor sea más eficiente y, si eso no es factible, rediseñe para que sea así.

Presta mucha atención a las interacciones de la base de datos. Tocar la base de datos varias veces para una sola transacción lo MATARÁ. Cuando estaba en AOL, a un desarrollador se le ocurrió una herramienta muy ingeniosa para realizar encuestas en la pantalla de inicio del cliente de AOL. Lo había probado en su sistema de desarrollo y funcionó bien. Pero, cuando lanzamos carga de producción, derritió el servidor SQL en el back-end.

Cuando observamos por qué las cosas eran AFU, descubrimos que tocaba la base de datos SEIS VECES para cada transacción. La solución consistía en implementar un proceso de recolección de votos que mantuviera registros de los votos ya realizados y los votos acumulados para actualizar periódicamente su aplicación.

Hicimos trampa un poco y no nos importó si perdíamos algunos votos aquí y allá, pero a la larga, hizo felices a los servidores y a la administración y ¿a quién le importa si a alguien le gustaba el nuevo peinado de Britney Spears o no?

Una vez que tenga su servidor y su aplicación iOS funcionales, realice MUCHAS pruebas. Haz que tus amigos golpeen sin piedad en el servidor e incluso invítalos a intentar romperlo. Si no lo hacen, alguien más lo hará.

Tener un cliente y un servidor sólidos también significa que tiene algo que mostrar a los posibles inversores.

Para la aplicación social, debe crear un componente de servidor y un cliente. El cliente para iOS requiere conocimientos básicos de Cocoa Touch: interfaz de usuario, redes, diseño. El componente del servidor es algo complicado con innumerables formas posibles. Tal vez sea mejor usar el servicio: Apple CloudKit o algo así como Parse de Facebook.

Aquí hay algunas preguntas que deberá responder antes de comenzar a trabajar en el camino para iniciar una aplicación:

  • ¿Cuánto costará?
  • ¿Cómo escribir la descripción de iTunes?
  • ¿Cuál es la mejor manera de probar tu aplicación?
  • ¿Cuánto deberías cobrar?
  • ¿Qué sucede cuando aparece en la lista de aplicaciones destacadas?

Para conocer en profundidad esta pregunta, visite este enlace: 5 cosas que debe recordar antes de crear una aplicación para iPhone

¡Aclamaciones!

Esencial:

  • Back end
    Cualquier lenguaje de programación del lado del servidor, como PHP, Python, node.js, ruby, ASP.NET y muchos más
  • Desarrollo de aplicaciones iOS
    Objetivo-C o Swift. Si la aplicación no es tan complicada y no te preocupa el mal rendimiento en dispositivos antiguos, la aplicación web HTML5 también puede hacerlo (pero no se recomienda).
  • El mantenimiento del servidor
    Cómo mantener un servidor Windows o Linux (depende de lo que elija) y ejecutar un programa de servidor web (nginx, Apache, etc.) en él

Opcional:

  • Interfaz web si necesita un sitio web
    HTML, CSS, JavaScript
  • Configuración y mantenimiento de registros de dominio y DNS
    Si quieres un dominio, entonces necesitas esto

Recuerda comprar una Mac.