Conoces los signos: no puedes dejar de pensar en eso mientras te duermes por la noche. Su mente vuelve a ella cuando sabe que debería concentrarse en su trabajo que actualmente paga las facturas. Incluso estás un poco distraído viendo Breaking Bad en Netflix. No puede evitar sentir que hay un agujero en la pantalla de inicio de su teléfono inteligente. Tienes una idea para una aplicación asesina, y no puedes dejarla descansar hasta que la construyas. Pero no sabes lo primero sobre programación y no tienes idea de cómo comenzar. Piense en algunas preguntas como:
Pregunta 1: ¿Qué tipo de aplicación quiero construir?
Responder eso se reduce a otras dos preguntas:
- ¿Cómo quiero que la gente lo use?
- ¿Qué tecnologías sé o quiero aprender?
Para la primera pregunta, ¿desea que la gente lo use como una aplicación web en una computadora de escritorio o portátil normal? ¿Una aplicación en un teléfono inteligente que obtienen de una tienda de aplicaciones (generalmente conocida como una aplicación “nativa”)? ¿O qué tal una aplicación web optimizada para el uso de teléfonos inteligentes? Su objetivo final puede ser tener todas estas opciones disponibles, pero eso es demasiado para abordar si está comenzando solo. Elija uno y concéntrese en él, pero tenga en cuenta otras opciones, ya que la ramificación puede afectar la forma en que lo diseña.
La segunda pregunta de seguimiento (¿Qué tecnologías sé o quiero aprender?) También puede desempeñar un papel importante en cómo desea proceder. En el resto del artículo, intentaré proporcionar información para cualquier ruta que decida.
Una nota sobre arquitectura de software
Si tiene alguna información que desea almacenar en la web para su aplicación; credenciales de inicio de sesión, fotos, puntajes, lo que sea, entonces querrá considerar una arquitectura orientada al servicio.
¿Eh?
No quiero ir demasiado lejos en las malezas aquí, pero tomar la decisión correcta por adelantado puede ahorrar mucho tiempo y dolor en el futuro. “Arquitectura orientada al servicio” significa que usted desarrolla su sistema de manera que la información y la funcionalidad estén disponibles en la web como llamadas de servicio que cualquier aplicación o programa puede hacer y usar.
Imagine que su idea implica que se muestren fotos para el usuario. Si comienza solo con un enfoque basado en la web, puede cometer el error de integrar estrechamente su sitio web con la base de datos de fotos, y cada foto puede devolverse al navegador con HTML y JavaScript a su alrededor para que funcione correctamente. Tú sitio. Pero, ¿qué sucede cuando decides crear una aplicación de Android? Ahora desea solicitar esas mismas fotos desde su aplicación, pero todo ese HTML y JavaScript no le sirve de nada.
En cambio, desglosa los datos más simples que necesita en el formato más simple posible y los pone a disposición como una solicitud para quien lo desee. Ahora cada cliente (un navegador web, una aplicación de teléfono inteligente, una aplicación de TV, etc.) puede solicitar esos datos y manipularlos, sin embargo, son necesarios para esa interfaz de usuario en particular.
Pregunta 2: ¿Necesito una computadora nueva?
¡Probablemente no! El único tipo de aplicación que puede requerir que compre (o pida prestado) una computadora nueva es una aplicación de iOS, que solo se puede desarrollar en una Mac. Para una aplicación web o Android, puede usar cualquier computadora Mac, Windows o Linux.
Las mejores computadoras ciertamente hacen que el desarrollo se mueva un poco más rápido, pero no es necesario obtener una nueva computadora a menos que la actual sea insoportablemente lenta para el desarrollo. Tengo una vieja computadora portátil HP con Windows 7 que todavía es decente para el desarrollo de Android, y el año pasado utilicé una vieja MacBook Snow Leopard de amigos para iOS y también fue genial. Por lo tanto, no necesita preocuparse demasiado por la preparación para el futuro, pero sí desea obtener la mejor computadora que pueda pagar.
Si esta es su computadora, entonces podría ser el momento de una actualización.
Pregunta 3: ¿Qué herramientas de desarrollador necesito?
Para las aplicaciones web, puede usar cualquier editor de texto antiguo como NotePad, TextEdit o Sububime Text 2. Las aplicaciones de teléfonos inteligentes o aplicaciones para otros tipos de dispositivos generalmente requieren programas especiales llamados IDEs, que significa “Entorno de desarrollo integrado”. Estas herramientas permiten puede escribir código y crear proyectos que puedan ejecutarse en teléfonos, tabletas, televisores u otros tipos de hardware.
Para las aplicaciones de teléfonos inteligentes, las herramientas de desarrollo en sí son gratuitas tanto para iOS (Xcode) como para Android (Eclipse). Microsoft también está facilitando la vida de los desarrolladores para comenzar a desarrollar aplicaciones para teléfonos con Windows: Visual Studio Express 2012 es gratuito y es similar a XCode y Eclipse. Y ni siquiera necesita un teléfono inteligente para probar en estas plataformas (aunque ayudan). Todas estas herramientas contienen teléfonos virtuales que puede ejecutar en su computadora y usar para probar su aplicación. Las pruebas en un dispositivo son mejores y más rápidas, ¡pero los teléfonos virtuales son geniales y gratuitos!
Si está desarrollando una aplicación para teléfonos inteligentes, es posible que desee considerar algunas soluciones no nativas como PhoneGap o Titanium que le permiten escribir aplicaciones para Android, iOS y la web de una sola vez. Actualmente no cubrimos esas herramientas en Treehouse, y cada una tiene sus propios pros y contras, pero he visto buenas (no excelentes) aplicaciones creadas con esas herramientas.
Herramientas como estas le permiten escribir aplicaciones nativas o híbridas (aplicaciones web envueltas en un shell nativo) utilizando tecnologías web como HTML y JavaScript. Las herramientas crean versiones de la aplicación para múltiples plataformas, e incluso puedes subir las diferentes versiones a lugares como Google Play y App Store. Esta puede ser una gran solución para algunas aplicaciones o para comenzar rápidamente, pero en última instancia, probablemente será mejor para usted crear aplicaciones nativas adaptadas a cada plataforma.
Pregunta 4: ¿Cuánto costará?
El registro y el alojamiento de aplicaciones web generalmente requieren pequeñas tarifas mensuales o anuales, pero las herramientas en sí mismas generalmente son gratuitas o baratas.
Las herramientas para aplicaciones de teléfonos inteligentes también son gratuitas, pero la publicación de aplicaciones en tiendas de aplicaciones cuesta un poco. Apple y Microsoft cobran una tarifa anual de $ 100 y Google cobra una tarifa única de $ 25.
Pregunta 5: ¿Cómo comienzo a escribir la aplicación?
Si nunca antes ha escrito una aplicación, probablemente quiera usar un recurso como Treehouse para aprender algunas lecciones sobre cómo crear una aplicación web, Android o iPhone simple. Por divertido que pueda ser saltar directamente y jugar con el código, necesitará al menos una comprensión básica de cómo se configuran las aplicaciones.
También hemos cubierto algunos de estos pasos iniciales aquí en el blog para Android e iOS. Hay otras publicaciones en el blog que pueden ayudarte; Simplemente haga clic en iOS o Android en la barra de navegación en la parte superior del blog para ver todas las publicaciones en cada categoría. También tenemos algunos consejos rápidos en YouTube que pueden ser de ayuda.
Lo primero que querrá hacer si usa una nueva plataforma, ya sea web, Android, iOS o Windows Phone, es crear un programa simple “Hello, World!” Para asegurarse de que su entorno de desarrollo esté configurado y funcionando correctamente. Los programas “Hello, World!” Son excelentes primeros pasos porque son lo mínimo que puedes hacer para ejecutar un programa completo. A continuación hay algunos buenos artículos y videos sobre cómo escribir programas “¡Hola, Mundo!” Para las diversas plataformas de las que hemos estado hablando:
- Web: JavaScript | Rubí | Python | PHP
- Androide
- iOS
- Telefono windows
Un gran recurso para aprender a codificar ciertos tipos de funcionalidad en las aplicaciones es el código de muestra que se distribuye con herramientas y plataformas. ¿Quieres usar la cámara? ¡Hay proyectos de muestra para mostrarle cómo! ¿Quiere que su aplicación tenga en cuenta la ubicación? ¡Hay proyectos de muestra para mostrarle cómo!
Para Android e iOS, descargue, explore y use el código disponible en los proyectos de muestra: Android | iOS También hay documentación fantástica disponible en los sitios de desarrolladores para Android, iOS, Windows Phone y otras plataformas.
Todo lo mejor !!