Cómo escribir aplicaciones para Android / Sudo Null IT News

En este artículo, analizaré las tres tecnologías más populares para escribir aplicaciones para Android, analizaré sus ventajas y desventajas y proporcionaré materiales de capacitación. Al final, daré un breve resumen del artículo, así que si te da pereza entrar en detalles, no dudes en desplazarte hacia abajo.

Introducción

Si eres completamente nuevo en la programación, primero necesitas una base, específicamente en este artículo te serán útiles los lenguajes Java, JavaScript (JSX) y Dart. Además, es mejor saber al menos algo sobre algoritmos y estructuras de datos, basta con leer el libro “Grokai Algorithms – Aditya Bhargava”, un excelente libro para introducir el tema en un lenguaje muy comprensible, después de leer casi no surgen preguntas como ” ¿Qué acabo de leer?” ?”.

Antes de considerar materiales de capacitación para otros idiomas (el japonés es un lenguaje de programación), quiero aclarar que Java se usa en Android Studio, JavaScript en JSX y Dart en Flutter. Te aconsejo que primero averigües qué tecnología quieres utilizar y solo entonces estudies japonés, será mucho más fácil. Y ahora a los materiales educativos para japonés.

Hay varios tutoriales excelentes para Java:

  • JavaRush – un sitio que será un material educativo ideal para personas de cualquier nivel. Le dirá todo, desde System.out.println(“Hola mundo”) hasta programación orientada a objetos, colecciones, subprocesos múltiples y trabajo con SQL en un lenguaje extremadamente comprensible. Además, el sitio cuenta con una traducción del curso Harvard CS50, también está presente en YouTube. El sitio también tiene una sección separada con artículosdonde podrás leer información de todas las preguntas que te interesen.

  • Libro “Java 8. La guía completa. – Herbert Schildt”. Un libro bastante detallado, pero escrito en un lenguaje de “documentación”, lo que lo hace un poco difícil de entender, pero no niega toda la cantidad de información que proporciona, a saber: conceptos básicos, programación orientada a objetos, colecciones, bibliotecas, metadatos y muchos otros temas. .

  • “Java eficaz – Tercera edición de Joshua Bloch”. Un libro bastante popular que explica bien el tema de subprocesos múltiples, lambdas, bibliotecas y programación funcional.

  • “Java. Concurrencia en la práctica – Brian Goetz”. El libro, como el anterior, está lejos de ser para principiantes. Ella hace un excelente trabajo al cubrir el tema de subprocesos múltiples, la seguridad de estos subprocesos y clases, la optimización y la concurrencia en java.util.concurrent.

Para JavaScript:

  • “No conoces a JS” es una serie de libros del autor Kyle Simpson. Una excelente serie de libros que lo guiarán a través de los conceptos básicos de JavaScript en un lenguaje simple y comprensible, luego de lo cual le informarán sobre objetos, el modelo asincrónico, puntos de referencia, ES6 y muchos otros temas en el mismo lenguaje comprensible.

  • “JavaScript elocuente – Marijn Haverbeke tercera edición”. Un excelente libro que examina en detalle con ejemplos temas como nodejs, DOM, http, manejo de errores, programación asincrónica y muchos otros temas, mencionando también los conceptos básicos al principio. Pero en mi opinión, si no tienes tiempo para leer Simpson y este libro, es mejor leer primero la serie de libros “No conoces a JS” y luego este libro.

  • Tarifa desde CódigoCademia. Un curso bastante bueno sobre los fundamentos de JavaScript, que nos lleva a través de temas desde console.log() y tipos de datos hasta ES6 y objetos. Otra gran ventaja es el editor de código integrado.

Y para Dardo:

  • “Dart. En funcionamiento: Kathy Walrath y Seth Ladd”. Un libro excelente en un lenguaje claro que es una guía completa de Dart, pero que en algunos lugares puede quedar bastante desactualizado debido a su antigüedad (2013).

  • Documentación de dardos. Documentación oficial, ideal para estudiar. Contiene tanto una introducción como temas serios. Aquí está el enlace a guía de instalación.

  • Academia de dardos. Una colección de tutoriales sobre Dart y Flutter, divididos en categorías.

Estudio Android

Android Studio es el IDE oficial de Google para crear aplicaciones para Android, TV OS y Wear OS en Java y Kotlin. También tiene la capacidad de escribir aplicaciones en C++. Este es el IDE más básico cuando se trata de desarrollo nativo.

Ventajas de Android Studio:

  • Soporte para Java, Kotlin y C++. Además, utilizando complementos puedes escribir dentro de Android Studio incluso en Idol.

  • La posibilidad de trabajar casi ilimitadamente con el dispositivo, lo que elimina el problema de la imposibilidad de escribir determinadas funciones en Android Studio.

  • Amplia gama de herramientas integradas de depuración y creación de perfiles.

  • Gran comunidad de desarrolladores con muchos tutoriales y complementos.

  • Android Studio está completamente integrado con el SDK de Android y brinda acceso rápido a herramientas y bibliotecas para desarrollar aplicaciones de Android.

  • Conveniente depurador incorporado.

  • El editor gráfico incorporado le permite crear interfaces de usuario para aplicaciones sin tener que escribir código XML manualmente.

  • Android Studio admite una amplia gama de complementos y extensiones, lo que le permite ampliar la funcionalidad del IDE y simplificar el proceso de desarrollo.

  • Android Studio se integra fácilmente con sistemas de control de versiones populares como Git, lo que facilita la colaboración en proyectos.

  • Emulador de dispositivo virtual incorporado.

Y los contras:

  • Android Studio requiere importantes recursos informáticos, lo que provoca un trabajo lento en computadoras débiles y construcciones de proyectos largas, lo que, junto con la falta de recarga en caliente, afecta negativamente el desarrollo.

  • Adicción a Google. Pueden cambiar fácilmente la política de la aplicación, no para mejor, como Unity en 23rd.

  • Configurar Android Studio e integrarlo con otras herramientas suele ser bastante complejo y confuso, lo que a menudo genera errores.

  • Las actualizaciones de Android Studio aparecen con bastante frecuencia y, a menudo, traen consigo nuevos errores.

  • Android Studio tiene un archivo de instalación bastante grande, lo que puede ser un problema para usuarios con Internet lento, y los complementos como los sistemas Android también pesan mucho, por lo que el problema de almacenar esta cantidad de información se suma al anterior. .

Se pueden recomendar las siguientes fuentes de materiales educativos:

Reaccionar nativo

React Native es un marco de JavaScript popular para desarrollar aplicaciones móviles. Le permite utilizar el mismo código para crear aplicaciones de Android e iOS, lo que hace que el proceso de desarrollo sea más eficiente. React Native se basa en la popular biblioteca React, que se utiliza para crear aplicaciones web. Aunque esto es un poco, facilitará que las personas familiarizadas con React aprendan React Native. Los creadores de React Native son Meta. Empresas como Microsoft, Shopify, Tesla, Amazon, Discord, Pinterest y por supuesto Meta lo utilizan en sus aplicaciones.

Ventajas:

  • Una de las principales ventajas de React Native es la posibilidad de crear aplicaciones para iOS y Android utilizando el mismo código. Esto simplifica enormemente el proceso de desarrollo y reduce el tiempo necesario para crear una aplicación.

  • React Native le permite reutilizar componentes, lo que puede acelerar significativamente el proceso de desarrollo y mejorar la calidad general del código.

  • React Native usa JSX, que es una combinación de JavaScript y XML. Como resultado, el aprendizaje se acelera para los principiantes debido a la simplicidad de JavaScript.

  • Amplio soporte para bibliotecas de terceros: React Native tiene un amplio soporte para bibliotecas de terceros, lo que le permite agregar funcionalidad adicional a su aplicación sin tener que escribir todo desde cero.

  • React Native exige poco recursos de hardware informático, lo que lo convierte en una solución ideal para ordenadores débiles. Pero al mismo tiempo, React Native sigue siendo bastante rápido en la construcción y depuración.

  • Gran base de datos de soluciones listas para usar para la interfaz gráfica de la aplicación.

  • Gran comunidad con muchos materiales ya preparados.

  • Recarga en caliente, que acelera enormemente el proceso de depuración de la aplicación.

Desventajas:

  • Aunque JSX utiliza JavaScript, lo que lo hace mucho más comprensible, no se puede dejar de notar la sintaxis bastante compleja y confusa de este lenguaje.

  • React Native no proporciona acceso completo a las funciones nativas del dispositivo, lo que puede dificultar el desarrollo.

  • Funcionamiento inestable en diferentes dispositivos y plataformas, además, debido a las constantes actualizaciones, muchas funciones pueden ser eliminadas o cambiadas.

  • Las aplicaciones creadas con React Native tienen menos rendimiento en comparación con las aplicaciones nativas debido al puente JavaScript y al concepto mismo de codificación multiplataforma. Esto puede resultar especialmente notable cuando se trabaja con grandes cantidades de datos o animaciones complejas.

  • Crear interfaces de usuario complejas puede ser más desafiante usando React Native en comparación con el desarrollo nativo debido a las limitaciones del marco.

  • A diferencia del desarrollo nativo, React Native puede limitar el acceso a ciertas características y funcionalidades que solo están disponibles en una plataforma específica. Es decir, lo que funciona en iOS producirá, en el mejor de los casos, un error en Android.

  • El uso de bibliotecas y complementos de terceros puede provocar problemas de compatibilidad o errores durante el proceso de desarrollo. Sin embargo, su uso suele ser necesario para implementar determinadas funciones.

Los siguientes son excelentes recursos para el aprendizaje:

Aleteo y dardo

Flutter es un marco desarrollado por Google que permite a los desarrolladores crear aplicaciones de alto rendimiento para dispositivos móviles, web y de escritorio utilizando una única base de código. Flutter se usa ampliamente en varios proyectos, desde aplicaciones simples hasta soluciones para grandes empresas. Empresas como Google, Alibaba, BMW, Toyota y Philips utilizan Flutter en sus aplicaciones.

Vale la pena señalar que muchas personas crean proyectos de Flutter a través de Android Studio, pero esta opción de desarrollo requiere mucho hardware de computadora. Incluso una computadora promedio puede no ser capaz de generar dicho enlace. Crear un proyecto a través de Visual Studio Code será mucho menos costoso en términos de recursos de hardware de computadora, por lo que le aconsejo que lo haga.

Ventajas:

  • Desarrollo multiplataforma

  • Alto rendimiento: utilizando el motor de renderizado patentado de Skia, las aplicaciones Flutter se ejecutan rápida y fluidamente incluso en dispositivos con recursos limitados.

  • Rápida creación y actualización de aplicaciones.

  • Desarrollo rápido de aplicaciones: con la recarga en caliente en Flutter, los desarrolladores pueden realizar cambios de código rápidamente y ver inmediatamente el resultado en el dispositivo, lo que acelera el proceso de desarrollo.

  • Aspecto consistente en todas las plataformas: al utilizar el motor de renderizado nativo de Flutter, todos los elementos de la interfaz de usuario de la aplicación tienen el mismo aspecto en todas las plataformas, lo que facilita la creación de aplicaciones multiplataforma.

  • Opciones de personalización de la interfaz: Flutter tiene una variedad de widgets listos para usar y la capacidad de crear los suyos propios, lo que permite a los desarrolladores personalizar fácilmente la apariencia y el comportamiento de los elementos de la interfaz.

Desventajas:

  • Lenguaje impopular de Dart.

  • Número limitado de componentes listos para usar en comparación con las aplicaciones nativas.

  • Debido al motor de renderizado integrado de Flutter, el tamaño de la aplicación creada puede ser mayor que el de las aplicaciones creadas en plataformas nativas.

  • Debido a que Flutter se abstrae de las API nativas de las plataformas, algunas funciones específicas pueden ser más difíciles o imposibles de implementar sin el uso de bibliotecas adicionales.

  • Aunque Flutter tiene una gran comunidad de desarrolladores y muchos paquetes listos para usar, algunas bibliotecas de terceros pueden ser menos estables o no ser compatibles a largo plazo.

  • Menos optimizado en iOS que en Android.

  • Un pequeño número de bibliotecas, documentación y otros materiales.

Resultados

Como resultado, es imposible sacar una respuesta definitiva, pero podemos partir de la situación. Las plataformas multiplataforma ahora tienen una gran demanda debido a la facilidad de escribir código, pero pueden no ser adecuadas para animaciones complejas y grandes datos procesados; aquí es donde Android Studio viene al rescate con un alto rendimiento de la aplicación. Si miramos más de cerca las plataformas cruzadas, entonces React Native es más adecuado para aplicaciones simples que no requieren animaciones complejas, al mismo tiempo que tiene una gran base de widgets gráficos listos para usar que, desafortunadamente, no siempre funcionan igual en diferentes plataformas y obligan al uso de un puente JavaScript que reduce el rendimiento. Por otro lado, Flutter, que tiene una base mucho más pequeña de widgets listos para usar, incluso teniendo en cuenta las bibliotecas, es mucho más productivo y estable que React Native, además el diseño se ve igual en todas las plataformas gracias a su propio motor de renderizado. .

Le aconsejo que elija una plataforma según la situación o según las aplicaciones personalizadas que escribirá. Pero puedo recomendar Flutter. A pesar de sus desventajas, esta es una excelente solución para aplicaciones simples, y si eres principiante, será suficiente para ti.

Eso es todo. Espero que mi artículo le haya ayudado a decidirse por la tecnología y le haya indicado los materiales de formación adecuados que le ayudarán a aprender rápidamente la tecnología que ha elegido.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *