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?
- ¿Cuáles son algunos buenos juegos casuales para iPhone?
- ¿Qué opinas sobre las aplicaciones que serán reemplazadas por HTML5 en el futuro?
- Cómo desinstalar aplicaciones de un iPhone y un iPad en segundos
- ¿Existe una aplicación para iPhone donde pueda administrar mis contactos en grupos y tener la capacidad de moverlos de / a diferentes fuentes, como una cuenta de Google a otra?
- ¿Cuál es la mejor aplicación VOIP para un iPhone?
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.