Revisando la arquitectura de nuestros sistemas, analizando oportunidades de mejoras, buscando formas de mejorar performance y escalabilidad.
Aquí se mencionan algunos artículos y temas de interés.
Diseño de una aplicación orientada a microservicios: muy buena publicación, donde explica el desarrollo de una aplicación empresarial del lado del servidor.
Advanced Message Queuing Protocol (AMQP)
Command Query Responsibility Segregation (CQRS)
¿Que es CQRS?
CQRS es un patrón de arquitectura que separa los modelos para leer y escribir datos.
La idea básica es que puede dividir las operaciones de un sistema en dos categorías claramente separadas:
- Consultas. Devuelven un resultado sin cambiar el estado del sistema y no tienen efectos secundarios.
- Comandos. Cambian el estado de un sistema.
Event-driven architecture (EDA)
Swagger es un marco de código abierto de uso común, respaldado por una gran variedad de herramientas que le permite diseñar, compilar, documentar y utilizar las API RESTful. Se está convirtiendo en el estándar para el dominio de metadatos de la descripción de API.
miércoles, 4 de septiembre de 2019
Desarrollo de aplicaciones móviles
- Nativas: Significa que para su desarrollo se utilizó el lenguaje de
programación nativo del dispositivo. Es un modelo cien por ciento
dependiente de la plataforma y las Apps no son portables, hay que
desarrollar una por plataforma.
Los principales paradigmas asociados
a las Apps nativas son:
·
Se puede
lograr el mejor rendimiento posible.
·
Se puede
lograr un look&feel ópitimo acorde al sistema operativo
·
Se puede
acceder a todas las capacidades del dispositivo
- Nativas Hibridas: Son desarrolladas usando HTML5, CSS y JavaScript, desplegadas dentro de un contenedor nativo como Phonegap/Cordova el cual brinda acceso a las capacidades del dispositivo de una forma totalmente neutral respecto al sistema operativo. Es un modelo neutro respecto a la plataforma y con portabilidad máxima.
- Nativas Generadas: Son aplicaciones desarrolladas usando herramientas como Xamarin o Genexus (entre muchas otras), en donde el desarrollo se realiza usando técnicas y lenguajes específicos de la herramienta y luego se genera la App en el lenguaje de la plataforma destino para ser compilada con las herramientas nativas.
Frameworks para desarrollo de
aplicaciones móviles híbridas
Permite desarrollar aplicaciones híbridas mediante tecnología web HTML5,
CSS3 y JavaScript. Utiliza una API que permite acceder a elementos de hardware
del sistema como la cámara, almacenamiento, acelerómetro, etc. Permite
integrarse con otros frameworks como por ejemplo jQuery Mobile, etc.
Apache Cordova es la versión de código abierto de PhoneGap, la principal diferencia entre estos dos frameworks es que PhoneGap tiene acceso al servicio de compilación en la nube Adobe Creative Cloud permitiendo compilar la aplicación para el sistema operativo deseado e independiente del sistema operativo donde se desarrolle. Consulta este artículo para más información sobre sus similitudes y diferencias.
Apache Cordova es la versión de código abierto de PhoneGap, la principal diferencia entre estos dos frameworks es que PhoneGap tiene acceso al servicio de compilación en la nube Adobe Creative Cloud permitiendo compilar la aplicación para el sistema operativo deseado e independiente del sistema operativo donde se desarrolle. Consulta este artículo para más información sobre sus similitudes y diferencias.
Al contrario que otros frameworks mencionados más abajo que se ocupan de la
parte de la interfaz, PhoneGap/Apache Cordova se encarga de la integración
dentro del sistema operativo móvil y de dar acceso a los servicios de éste. Así
que probablemente lo usarás junto a alguno de estos frameworks, que en muchos
casos sólo ofrecen la parte de la interfaz de usuario en HTML, CSS y
JavaScript.
Únicamente integra el framework
jQuery basado en JavaScript. Su curva de aprendizaje es muy baja. Se ha quedado
un poco atrás en cuanto a potencia y diseño si lo comparamos con el resto de
nuevos frameworks que hay en el mercado.
Es uno de los frameworks más
famosos para el desarrollo de aplicaciones híbridas. Utilizaa los frameworks
Front-End: Angular, React, Vue.JS.
Ionic integra una capa de diseño
con estilos css y recursos como iconos, etc. Estos estilos pueden ser adaptados
a los estándares de diseño de las plataformas Android e iOS. Otra de sus muchas
ventajas es que Ionic tiene su propio IDE de desarrollo que nos facilitará el
diseño y programación de aplicaciones.
Framework 7 no es uno de los más conocidos, pero
tiene la ventaja de que es completamente independiente y por lo tanto no tiene
dependencias externas en frameworks como Angular o React.
Este framework tiene una curva de aprendizaje más
baja que React Native e Ionic gracias a que se pueden realizar aplicaciones
híbridas utilizando simplemente HTML5, CSS3 y JavaScript. No obstante Framework
7 permite su desarrollo también con Vue.JS o React si nos interesa. Para la
emulación y ejecución requiere la combinación con Cordova o PhoneGap.
Frameworks para desarrollo de
aplicaciones móviles nativas
Framework para crear aplicaciones híbridas basadas
en JavaScript y en un conjunto de componentes del framework ReactJS.
Actualmente también es uno de los más famosos, y cuenta con una gran comunidad
de desarrollo. Forma parte de aplicaciones muy potentes y conocidas, como
Facebook, Pinterest, Skype o Instagram.
Permite el desarrollo de aplicaciones nativas
mediante JavaScript y TypeScript. También permite el desarrollo mediante el
Framework Angular y Vue.js. NativeScript genera aplicaciones verdaderamente
nativas, utilizando las mismas APIS que tendrías disponibles desde Android
Studio y XCode. Incluso permite el acceso a bibliotecas nativas de terceros,
aportando así mayores capacidades respecto al rendimiento y capacidades de las
aplicaciones.
Su mayor inconveniente es que el desarrollo de las
interfaces de usuario es más complejo (es XML, no HTML), así como las abstracciones
necesarias para acceder al código nativo de manera independiente del sistema.
Con NativeScript no necesitarás a PhoneGap/Apache Cordova.
Apps That Work Natively on the Web and Mobile –
Angular + NativeScript
Es un nuevo framework desarrollado por Google para desarrollar aplicaciones nativas de forma fácil, rápida y sencilla. La principal y más importante ventaja de Flutter es que desarrollas un solo proyecto para todos los sistemas operativos, lo que significa una reducción de costes y tiempo de producción. Utiliza un lenguaje llamado Dart. Gana en performance a React Native y Native Script.
Otras opciones ya menos utilizadas son:
Permite crear aplicaciones nativas de IOS y Android
a partir de un único código escrito completamente en JavaScript o TypeScript. Se
pueden utilizar las bibliotecas JavaScript existentes, los módulos de nodo y el
complemento Cordova para crear aplicaciones.
Es un marco de código abierto que permite la
creación de aplicaciones para Android, IOS, Blackberry y Windows desde una
única base de código JavaScript.
Tiene un marco de aplicación MVC que proporciona un
modelo simple para separar la interfaz de usuario de la aplicación, la lógica y
los modelos de datos. Es opcional, ya que solo puede codificar la interfaz y
las lógicas solo en JavaScript.
Al igual que React Native y Native Script, Fuse es
una plataforma para crear aplicaciones móviles multiplataforma con UX Markup
(un lenguaje basado en XML que proporciona el componente básico de la interfaz
de usuario) que se compila en código nativo y JavaScript para controlar la
lógica empresarial. que es interpretado por una máquina virtual JavaScript en
tiempo de ejecución.
Cursos y enlaces de interés
Suscribirse a:
Entradas (Atom)