Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DA
H2
Alumno: Semestre 9
López Aguirre Bryan Mahomedalid
Fecha de Entrega:
Catedrático: 16/03/21
Dr. Ibarra Carlos Francisco
NC:
Desarrollo de aplicaciones Hibridas Instituto Tecnológico de Tepic / ISC
Correo:
Tema 1. Introducción 17400124
Catedrático: Dr. Francisco Ibarra Carlos
brmalopezag@ittepic.edu.mx
Grupo 5B
Actividad 3
Investigar acerca de la arquitectura de las aplicaciones multiplataforma (hibrido).20
16/03/2021
Página 2 de 27
Contenido
Introducción..................................................................................................................................... 3
Competencias.................................................................................................................................. 4
Subtemas.......................................................................................................................................... 4
Contenido......................................................................................................................................... 5
A) Plasmar en al menos una hoja tamaño oficio o mejor aún doble carta
todos los componentes relacionados en las 4 tecnologías de la actividad 2.
Estos componentes deben mostrarse relacionados entre si y describir
palabras clave para cada uno de estos. Representar los componentes con la
simbología mas adecuada respetando sus colores nativos...................................5
B) En esta investigación se deberá incluir al igual que en la actividad 2
NetCore/Xamarin, React/JavaScript, Flutter/Dart......................................................6
C) Independiente al diseño de la arquitectura de las 4 tecnologías
plasmadas en el inciso (A), es importante describir y explicar su relación,
funcionamiento y diferencias entre cada arquitectura ya que se trata de una
investigación............................................................................................................................ 6
Conclusión..................................................................................................................................... 25
Glosario..................................................................................................................................... 26
Introducción
El siguiente documento se abarca a fondo los temas siguientes: una investigación extensa
acerca de la arquitectura de las aplicaciones multiplataforma, en donde se busca tener todos
los componentes relacionados en las 4 tecnologías que anteriormente vimos en la actividad
2 es decir NetCore/Xamarin, React/JavaScript, Flutter/Dart.
Así mismo se incluye un breve pero concisa explicación del funcionamiento de estas
Competencias
Distingue la historia y utilización de las tecnologías de desarrollo híbrido.
Analiza y compara distintos frameworks de desarrollo de aplicaciones híbridas.
Subtemas
1.1 Historia.
1.2 Potencialidades.
1.4 Frameworks.
Contenido
Actividad 3. Investigar acerca de la arquitectura
de las aplicaciones multiplataforma (hibridas).
Arquitectura Xamarin
Xamarin se basa en Mono, una versión de código abierto de .NET Framework que
se basa en los estándares ECMA de .NET. Mono ha existido desde hace casi tanto
tiempo como .NET Framework y se ejecuta en la mayoría de plataformas, Linux,
Unix, FreeBSD and macOS. The Mono runtime automatically handles tasks such as
memory allocation, garbage collection, and interoperability with underlying
platforms.
Xamarin.Android
Xamarin.IOS
.NET Core
Tipos de infraestructura
- Controladores
- Filtros
- Vistas
- ViewModels
- Inicio
Palabras Clave:para
desarrollo Nativo, Transpilado.
móviles (iOS, Android), pero también para Mac, Windows 10
y en breve para Linux. En muy poco tiempo ha crecido como la espuma.
React Native
Esta definición puede resultar un poco simple, por lo que para aclarar mejor las
ideas y saber mejor lo que es este framework, vamos a ver lo que no es React
Native :
No va a convertir todo el código una aplicación nativa , transpilado con Java
o con ObjectiveC.
You won't help but have to touch the code on both Android and iOS, even if
you allow you to integrate all the parts you have of both systems into a single
application, with some differences but with a part of the code shared and
written in JavaScript, using JSX to define the interfaces.
Funcionamiento
React Native usa API nativas como un puente (bridge) para representar
componentes en dispositivos móviles. Por ejemplo, para los componentes de
Android, utiliza las API de Java e invoca la API de Objective-C para renderizar en
iOS. Es por eso, que React Native procesa algunos componentes de código con API
nativas, a diferencia de otros marcos multiplataforma como PhoneGap, que procesa
código a través de WebView, un motor móvil. Si bien el enfoque de WebView
reduce en gran medida el rendimiento, React Native se comunica con componentes
específicos para iOS o Android y presenta el código en las API nativas de forma
directa e independiente. Al hacer eso, React usa un hilo separado de la interfaz de
usuario, que también aumenta la puntuación de rendimiento.
You create a new view model for each screen in your app. However, the Services
are globally accessible, so they remain the same. A multi-screen application would
be structured in this way:
Flutter
Flutter Bloc
For each view (component or widget) or concept important enough we will have its
corresponding BloC. For example, the view (component or widget) that represents a
page or represents state that is shared by more than one view would be examples
where it makes sense to create a BLoC.
Flutter Provider
Provider, es un paquete que ha sido lanzado recientemente (en Google I/O) el cual
tiene como función, permitirnos manejar el estado de nuestra app. Como sabemos,
en Flutter para poder construir una App, y alterar el aspecto visual de la misma,
debemos trabajar con el “Estado de la App”. La forma más sencilla de hacer esto, es
mediante el uso de “StateFul Widgets” y la función de “setState”. Eso puede
funcionar para alguna aplicación muy pequeña, sin embargo, cuando estamos
construyendo una app que contiene varias pantallas y hay que acceder a esas
propiedades en todas, el proceso se vuelve muy complejo.
IONIC
Ionic Framework, un marco de desarrollo que junto con AngularJS nos facilitará
sobremanera la tarea de creación de aplicaciones
Sistema de Clases
Control DOM
AngularJS incluye j qLite, una pequeña versión ultraligera de jQuery que permite la
gestión de DOM (Document Object Model, Modelo de Objetos del Documento) de
forma compatible en la inmensa mayoría de navegadores, dejando una pequeñísima
huella en los mismos haciendo la app mucho más ligera y eficiente.
Interfaz y Temas
We enter the strong field of Ionic, where its simplicity stands out for development.
In a similar way (not the same) as Google does with Android, Ionic seeks to make
use of the capabilities offered by HTML5 and CSS3 to deliver above all-fast user
experiences.
Widgets
Responsive Design
Ionic por supuesto aprovecha los principios del diseño web Responsive para adaptar
el contenido al tamaño de pantalla o densidad de píxeles ofrecidas por el destino,
optimizando así los recursos empleados y prestándose a soportar prácticamente
todos los dispositivos del mercado.
Angular
Para crear nuestras aplicaciones con Angular, generamos templates con HTML y
controlamos estos mismos templates con lógica creada en nuestros componentes, que
serán exportados como clases. Así mismo, agregamos lógica en nuestros servicios
para manejar la data que nuestra aplicación tendrá y finalmente “encapsulamos”
nuestros componentes y servicios en módulos o NgModules.
Then we start our application by bootstraping our root module. Angular takes control
and displays content in the browser, reacting to the interaction of users using the app
according to the instructions we gave it in our logic (code).Por supuesto hay mucho
más detrás de esto. Podemos analizar cada uno de los actores en nuestra aplicación.
Módulos
Cada aplicación generada con Angular cuenta con un root module o modulo de raíz
llamado convencionalmente AppModule, el cual provee el mecanismo de arranque
que inicia nuestra aplicación. Una aplicación generalmente contiene varios módulos
funcionales.
Antes de que se muestre una vista, Angular evalúa las directivas y resuelve la sintaxis
del data binding en el template para modificar los elementos HTML y el DOM,
según los datos y la lógica de nuestra aplicación. Angular cuenta con two-way data
binding, que significa que los cambios en el DOM también se reflejan en nuestra
data.
Servicios e Inyección de Dependencias 💉
All the data or logic that is not directly associated with a view and that you want to
use in different parts of your application and between different components, can be
written in a service. Like a component, services are exported as classes. The services
Palabras Clave: Inyección, Dependency.
have the decorator @Injectable() that provides metadata that allows your services to
be injected into components such as dependencies.
Conclusión
Como bien sabemos una arquitectura se denota por los patrones y las técnicas que se
utilizan para diseñar y desarrollar aplicaciones. La arquitectura le proporciona un plan y las
prácticas recomendadas que debe seguir al momento de diseñar una aplicación, de modo
que obtenga una aplicación bien estructurada.
Es por esto que debemos saber cómo atacar y adaptarnos a cada una de estas tecnologías
hibridas desde el punto de vista a gran escala de frontend y backed.