Cómo comenzar a desarrollar aplicaciones

Esto puede ser una leyenda urbana o no, pero sospecho que las “aplicaciones” solo se llaman “aplicaciones” porque en un sistema Macintosh (o un sistema iOS para el caso) los programas en la carpeta “Aplicaciones” tienen un “.app “Sufijo. Desde que Apple popularizó el mercado de aplicaciones móviles con la “App Store”, todos estamos atrapados llamándolos aplicaciones. No es algo malo, supongo.

Ahora, ¿qué es una aplicación? La respuesta general es que una aplicación es cualquier programa que se ejecuta en hardware de computadora . Sí, cualquier programa. Hay aplicaciones móviles escritas en lenguajes con Java, Kotlin, Swift y Objective-C, sí, pero también hay aplicaciones de escritorio como Microsoft Word y Google Chrome e incluso Microsoft Windows, todas programadas en lenguajes de sistemas como C, C ++ y un toque de ensamblaje. idioma. Y también hay sistemas integrados que utilizan todo tipo de técnicas extrañas y maravillosas. Sin embargo, los sistemas integrados son un mundo extraño y definitivamente están más allá del alcance de esta respuesta.

También mencionaste aplicaciones web. Incluso definir qué es realmente una aplicación web no es una tarea trivial. Me gusta pensar en un portal en el que deba iniciar sesión, por ejemplo, como Quora, que actúe como un servicio para usted, en lugar de solo un sitio web estático como Example Domain o algo así. Por lo general, presentan MVC (controlador de vista de modelo) o alguna variante escrita en los idiomas del lado del cliente (como HTML, CSS y JavaScript, o tal vez incluso el react.js de Facebook) y los idiomas del lado del servidor (como PHP, Ruby, Python, Perl o algún otro Marco de JavaScript como Node.js). ¿Qué es MVC que dices? Eso probablemente esté más allá del alcance de esta respuesta.

Ahora, el historial de aplicaciones se remonta a los orígenes de la primera computadora del programa almacenado, pero es probable que desee desarrollar aplicaciones actualizadas. Pero la verdad del asunto es que su pregunta es muy amplia. Una “lista de todos los idiomas y softwares que hay para crear aplicaciones” requeriría una lista de todas las tecnologías que se usan en la actualidad. Lo cual sería tedioso tanto para escribir como para leer. Sí, más allá del alcance.

Hay dos lados del desarrollo de software: saber qué herramientas usar y saber cómo usarlas. Por ejemplo, si quisieras escribir un juego simple para Android, probablemente no querrías escribirlo todo en C ++ nativo usando Vim (que es un editor de texto – herramienta n. ° 2 del arsenal del programador, el primero es una máquina de desarrollo). Lo escribiría en Java y usaría Android Studio (un entorno de desarrollo integrado o IDE) para administrar todos sus archivos / dependencias, etc.

¿Cuáles son las dependencias que pides? Cubrirlo completamente incluso con unos pocos idiomas y tecnologías diferentes estaría más allá del alcance de esta respuesta. Tendría que explicar qué es la compilación y la vinculación y también qué son las bibliotecas de software y los binarios precompilados. Ahí es donde entra en juego el saber cómo usar sus herramientas. Y eso viene con algún tipo de educación secundaria / universitaria / postgrado en informática o con auto-enseñanza. Google está repleto de un sinfín de tutoriales que explicarán cualquier sistema de software libre que se te ocurra. Esto es genial, pero lleva a un problema. Por donde empiezas

La informática es un campo realmente masivo. Y es un campo en el que es muy fácil perderse, aunque sea un campo abierto. En esta etapa, tener una lista de idiomas frente a usted que necesita aprender para comenzar puede sonar como una gran idea, pero a menudo conduce a lo que en el mundo de la informática “afeitar el yak”. Es decir, comienzas a aprender algo pero luego te das cuenta de que necesitas aprender algo más para que funcione. Y luego debes ir a buscar algo de comida porque tienes hambre. Y luego necesitas aprender algo más. Luego, tu vecino de al lado dice que conoce a un chico que sabe todo sobre Android, pero que solo te dará la información si vas y le das un poco de pelo de yak. Lo conseguiría él mismo, pero tiene que aprender sobre los puntos más finos del patrón de diseño singleton …

Trata de pensar en ti mismo como un carpintero. Un carpintero construye cosas y usa herramientas para hacerlo. Una de las primeras cosas que un carpintero podría construir es una caja simple. Entonces toma una sierra de arco y tal vez un martillo y algunos clavos y hace una caja áspera. Retrocede y admira lo que ha hecho. Lo que NO hizo el carpintero fue leer toda la historia de martillos, clavos y sierras de arco y aprender exactamente cómo interactúan entre sí. Tendrá que aprender esas cosas más adelante para ser un mejor carpintero, claro, pero por ahora recién comienza. Una caja áspera servirá.

Desde que mencionaste las aplicaciones de Android y he mencionado los juegos de Android, te planteé un desafío. Haga que aparezca un cuadrado azul con un fondo negro en la pantalla de su Android. Android Studio, Java y su computadora portátil son sus herramientas. Comenzaría buscando en Google “tutorial simple de aplicación de Android” y veré a dónde lo lleva. Extienda esta sencilla aplicación y haga que aparezca el cuadrado azul. Si nada más saber cómo lograrlo usted mismo le revelará si la programación es para usted. Es un proceso bastante extraño cuando comienzas por primera vez. Pero de nuevo, trata de ser como el carpintero. Averigüe qué herramientas necesita para hacer que aparezca el cuadrado y luego júntelas para crear una aplicación que funcione. Después de tu triunfo, intenta hacer algo un poco más complejo. El nombre del juego es pequeños pasos aquí. No decidas que vas a hacer una versión para Android de Half Life 3. Es posible que en el futuro, todavía no.

Sin embargo, una pieza de software que les contaré de inmediato ahora es “git”. Git es lo que se llama un sistema de control de versiones y le permite guardar la versión actual y todas las versiones anteriores de su código de una manera muy inteligente. También funciona a la perfección con github, un servicio en línea (¿webapp?) Que permite a las personas compartir su código en línea. La versión que controla su código ahora, justo cuando comienza, se asegurará de que se acostumbre a hacerlo. Su principal regalo para el nuevo desarrollador es poder retroceder a una versión anterior del código que funcionaba bien antes de codificar que los demonios de terror lo poseían.

En general, la informática y la programación son enormes, enormes gigantes en su alcance y tamaño. Cuando recién comienzas, elige algo simple y haz que suceda. Nadie espera que inventes el próximo Facebook para mañana a las 7pm.

¡Primero decida en qué plataforma desea desarrollar!

Si es para Android , ¡consiga fuerte en Core Java! Ese es el principal requisito. Además de eso, tiene una gran cantidad de tutoriales y foros en los que puede confiar, como Stackoverflow, etc.

Si es para iOS , deberías aprender programación rápida . También necesitaría una máquina Mac para desarrollar. Apple ofrece su propio IDE XCode solo en MacOS y no en ninguna otra plataforma. ¡Eso es algo en lo que debes pensar antes de sumergirte en este mundo!

Si me preguntas, te recomendaría buscar información sobre el desarrollo de aplicaciones híbridas . ¡Esa es la próxima gran cosa en este dominio!

Utiliza tecnologías web como JavaScript, TypeScript, AngularJS y muchas más, y utiliza los complementos Cordova y Phonegap como contenedor nativo, para ejecutarse en cualquier plataforma móvil. Android, iOS y Windows.

Para el desarrollo de aplicaciones híbridas, Ionic Framework es la utilidad más común en la que se confía. Al tratarse de una nueva tecnología, el soporte apenas está comenzando a llegar y la comunidad está creciendo a un ritmo constante. Pero, la mayoría del trabajo se realizará, solo pasando por Documentación.

En primer lugar, aplausos para usted que va sistemáticamente, primero está investigando y luego comenzará a implementar.

Según yo, no hay clasificación cuando hablamos de aplicaciones, pero si lo desea, considere la siguiente:

  1. Aplicaciones nativas
  2. Aplicaciones web
  3. Aplicaciones híbridas

Aplicaciones nativas: Estas son aplicaciones tradicionales de Android e IOS.

  • Dependiente de la plataforma
  • Reside en dispositivos locales (sus teléfonos móviles), por lo que puede trabajar sin conexión.
  • Debe aprender: HTML, CSS y Swift para IOS y Android para dispositivos Android para el desarrollo.
  • Ejemplo: aplicaciones de juegos para niños sin conexión.

Aplicaciones web: en realidad no son las llamadas “aplicaciones”, son sitios web que parecen aplicaciones, ya que son sitios web, por lo que por razones obvias no funcionarán completamente sin conexión. Sí, son independientes de la plataforma.

Ejemplo: sitios web de compras.

Para el desarrollo de aplicaciones web necesitas lo siguiente:

  1. Interfaz
  2. Back end
  3. Base de datos

Para el front end:

Primero aprenda HTML y CSS, además, si lo desea, puede optar por el angular 2 o 4 (sugiero que debería aprender).

Para back end:

Puede optar por Django (uno de los mejores, en el marco de Python de alcance) o express (un buen marco de Nodo Js) o si desea seguir el conjunto de tendencias ya, ir a PHP o Java (entre ambos PHP sería mejor )

Advertencia : hay muchos desarrolladores de PHP y Java en el mercado y están trabajando en paquetes muy bajos (no todos, pero muchos).

Para la base de datos:

SQL tiene su propio mercado, una buena imagen, buena seguridad, mejores funcionalidades o puede usar mongodb, es un poco más rápido que SQL pero menos seguro. Para la base de datos, ambas son buenas opciones.

Aplicaciones híbridas: Estas son, podemos decir “combinación de aplicaciones nativas y aplicaciones web”, estas aplicaciones también están en el servidor al igual que las aplicaciones web, pero no se ejecutan en los navegadores web normales, estos se instalan desde App Store y Play Store, Dependiendo de la plataforma. Estas aplicaciones no pueden funcionar sin conexión por razones obvias (se requiere comunicación con el servidor). No son independientes de la plataforma (debe instalar su navegador desde App Store y Play Store).

Ejemplo: aplicaciones de compras.

Para el desarrollo, lo que necesita aprender: todas las tecnologías mencionadas anteriormente para aplicaciones web y aplicaciones nativas. Y créeme, son fáciles de desarrollar.

Espero que encuentres esto útil.

Todo lo mejor. Te deseo un futuro brillante por delante.

Idiomas:

  • Java (para la aplicación de Android)
  • C / C ++ y Swift (para la aplicación iOS)
  • .NET, C # (para aplicación web)
  • Rubi on Rail

Tipo de aplicaciones:

  • Aplicación móvil (Android, iOS, WindowsPhone, Symbian, BlackBerry)
  • Aplicación web (SaaS)
  • Aplicación para PC o Mac o Linux
  • Algunas extensiones para navegadores web (Chrome, Firefox …)

La pregunta es cuántas estrellas en el cielo en un día de luna nueva. El paisaje es tan enorme y muy amplio como el mar.

Para comprender mejor el paisaje, podría asumir las dos formas:

1) Plataformas de código abierto

2) Plataformas empresariales.

Para facilitar la vida y la popularidad, puede tomar la ruta de la “Plataforma de código abierto” para sobresalir rápidamente en la profesión. Puede leer Los 9 lenguajes de desarrollo más demandados de 2017 para facilitar su elección. Feliz codificación !!!!