¿Qué necesito aprender para programar una aplicación como Tinder y Snapchat?

Editar: He comenzado a enseñar a las personas cómo construir sus propias versiones de Tinder y SnapChat usando React Native en Cloneable . Compruébalo si te tomas en serio la creación de esa aplicación.

Todas las otras respuestas explicaron cuán difícil y cuánto tiempo tomará convertirse en un codificador lo suficientemente bueno como para construir una aplicación. Respetuosamente no estoy de acuerdo, no será fácil, pero con las herramientas adecuadas, podría tener su aplicación Tinder for Nerds o SnapChat for Burgers en la tienda de aplicaciones en menos de 2 meses. Déjame explicarte cómo. . .

Me enseñé a mí mismo a crear aplicaciones en solo unos meses, y eso fue hace unos años. Las herramientas y el material disponibles para usted hoy son mucho mejores, realmente nunca ha sido tan fácil crear su primera aplicación.

Hice este clon de yesca durante un fin de semana:

El truco es usar las herramientas adecuadas:

Front End (lado visual)

React Native : una biblioteca de interfaz de usuario súper potente creada por Facebook que usa React. Puede crear aplicaciones nativas para Android e iOS utilizando componentes simples.

Bibliotecas – Si tiene un problema de codificación común, como “¿cómo trato con los datos de fecha y hora en mi aplicación?” , Es probable que alguien lo haya resuelto y usted pueda usar todo su trabajo duro en su aplicación. por ejemplo, moment.js

Back End (lado de la base de datos)

Firebase : un back-end como servicio, creado por Google, le brinda las herramientas y la infraestructura que necesita para implementar una base de datos de back-end con solo unas pocas líneas de código. En serio, no cree su propia base de datos a menos que lo necesite (probablemente no sea necesario).

El uso de la combinación de herramientas anterior le brinda codificación de superpoderes. Puede crear aplicaciones en la mitad del tiempo, con menos errores, todo mientras mantiene una alta calidad de la aplicación. Es realmente asombroso.

Si lo que quieres hacer son aplicaciones móviles. Debe considerar Java, que se usa para la programación de aplicaciones de Android. Ver Desarrollar | Desarrolladores de Android para un tutorial.

Alternativamente, también podría aprender Objective-C para crear aplicaciones en iOS.

También puede considerar crear aplicaciones web que puedan usarse en dispositivos móviles. En ese caso, probablemente necesite HTML, CSS, Javascript y un lenguaje de script del lado del servidor como PHP (o un marco como ASP.NET o Django).

Además de un lenguaje de programación, también necesitará aprender conceptos básicos de ingeniería de software como patrones de diseño. Y para que las aplicaciones sean más fáciles de usar, también se necesita un diseño UI / UX.

También hay que tener en cuenta el conocimiento específico del dominio. Supongamos que si desea crear una aplicación que tenga algo que ver con la música, es posible que necesite aprender algunas técnicas de procesamiento de señales de audio, que no están incluidas en la mayoría de los libros de programación básica.

En resumen, es mucho aprender. Si no ha realizado ninguna programación antes y desea crear esta aplicación realmente rápido, puede considerar encontrar un programador experimentado como su socio, o simplemente ver si puede contratar a un programador independiente. Si quiere hacerlo por su cuenta, comience con algo pequeño, desarrolle sus habilidades gradualmente. Tomará tiempo. Roma no fue construida en el día. Pero el tiempo que pase valdrá la pena.

Basaré mi respuesta primero en el aspecto técnico y luego en el lado comercial.

Lado técnico

Debe usar plataformas para acelerar el desarrollo de software y reducir la curva de aprendizaje de programación total. El tiempo total que necesitará para desarrollar una aplicación dependerá de cuán complejo desee que sea la aplicación y también si usará marcos para acelerar el desarrollo de software. Deberá aprender diferentes habilidades de programación:

Backend: Back-end significa las partes que hacen el trabajo, pero el usuario final desconoce o no puede ver. Ir representa hasta el 80% del trabajo total y contiene API, bases de datos, servicios, etc. Existen varios proveedores de BaaS – Backend as a Service para acelerar el desarrollo del backend. http://www.back4app.com puede acelerar hasta un 80% el desarrollo del backend y es una buena opción para los desarrolladores que buscan flexibilidad y control sobre el código fuente. Firebase proporciona resultados similares, pero los usuarios no tienen acceso al código fuente y están bloqueados en la plataforma.

Frontend: Front end normalmente significa las partes del proyecto con las que un usuario interactúa. La interfaz puede ser móvil (Android, IOS, Windows, etc.) o web. Una buena plataforma para acelerar el desarrollo de la interfaz móvil es Xaramin y puede reducir hasta un 70% el tiempo total para desarrollar aplicaciones de Android e IOS. Para el desarrollo web, sugeriría Ruby / Rails y Python / Django como lenguajes de programación rápidos y confiables.

Lado comercial

Las habilidades empresariales y empresariales son tan importantes como las técnicas. Nunca hará que su aplicación sea exitosa a menos que tenga ambas (o su empresa tenga ambas, esto se puede hacer con un equipo técnico y fundador de negocios). El siguiente libro es lo mejor que sé sobre cómo crear una startup exitosa.

La Guía de estrategia del Manual del propietario de inicio de Steve Blank.

Le sugiero que también participe en un programa de aceleración de uno de los aceleradores Top American. Por favor, consulte la referencia a continuación:

Proyecto de clasificación de acelerador de semillas (SARP)

Descargo de responsabilidad, soy parte del equipo back4app.

Realmente debería considerar si va a estar dispuesto a dedicar cientos de horas de aprendizaje a la codificación antes de crear una aplicación, será un trabajo largo y desafiante. Además, deberá aprender disciplinas como diseño de UI / UX y gestión de productos.

Si desea crear una aplicación lo más rápido posible, le recomiendo que revise Bubble: no necesita ser ingeniero. Es un lenguaje de programación visual para crear aplicaciones web y móviles, y podrá aprender back-end, front-end y la base de datos en aproximadamente 3 horas. Para que pueda pasar su tiempo creando SU aplicación, no aprendiendo.

Debe aprender el lenguaje de programación JAVA y también aprender a trabajar en Android Studio para el desarrollo de aplicaciones de Android y XCode para el desarrollo de aplicaciones ios.

Gracias.

IOS también tiene un nuevo lenguaje ahora llamado Swift. ¡Sugeriría revisarlo así como también los otros idiomas que la gente mencionó!