Libro "Desarrollo de aplicaciones m贸viles en C # para iOS y Android"

Estimados lectores, nos complace presentar el libro "Desarrollo de aplicaciones m贸viles en C # para iOS y Android" de Vyacheslav Chernikov, autor y experto en Xamarin, conocido por ustedes, de Binwell. Sin largos preludios, paso la palabra al autor.



Buenas tardes, querido habrachitatel. En los 煤ltimos a帽os, he escrito bastantes art铆culos y tutoriales sobre el desarrollo de aplicaciones m贸viles usando C # y el marco Xamarin, pero inicialmente todas estas gu铆as y parte de los art铆culos fueron concebidos como cap铆tulos de mi primer libro, que finalmente vieron la luz del d铆a. Al reunirse en un solo conjunto (隆y hay muchas cosas que no se han publicado antes!), Los materiales del libro llevar谩n el proceso de desarrollo de aplicaciones m贸viles a un nivel completamente nuevo, desde elegir una herramienta y preparar la documentaci贸n, hasta la automatizaci贸n del proceso de desarrollo y la resoluci贸n de problemas comunes. Este libro fue concebido como una adici贸n armoniosa a los materiales sobre Xamarin que ya est谩n en ruso e ingl茅s, revelando temas como el dise帽o, la arquitectura, la creaci贸n del esqueleto (marco) de un proyecto, todo lo que generalmente permanece detr谩s de escena de la mayor铆a de los libros y cursos de capacitaci贸n. .

El libro cubre en detalle y con una gran cantidad de ejemplos de c贸digo los siguientes temas: comparaci贸n de herramientas nativas y multiplataforma usando Xamarin, ReactNative, PhoneGap, Qt y Flutter como ejemplos; dise帽o y documentaci贸n t茅cnica para el c贸digo; arquitectura y estructura del proyecto, ponemos todo en su lugar; DevOps m贸vil y automatizaci贸n de ensamblaje, prueba, entrega y monitoreo; Consejos pr谩cticos para todos los d铆as.



El libro se puede comprar en el sitio web de la editorial " DMK Press " (隆la opci贸n m谩s barata!) Y en las tiendas en l铆nea Labyrinth , My-Shop.ru , Flip.kz , Oz.by , as铆 como en otras tiendas en l铆nea, su n煤mero aumenta con la distribuci贸n del libro. .

Para la semilla (y con el consentimiento del editor) dar茅 una parte del Cap铆tulo 3.

3. Arquitectura de la aplicaci贸n


Entonces, ya nos familiarizamos con c贸mo funciona Xamarin.Forms y c贸mo llevar a cabo el dise帽o t茅cnico por nuestra cuenta. Ahora entendemos el modelo de dominio, y es hora de pasar a la arquitectura y estructura de la soluci贸n: c贸mo distribuiremos nuestras clases en carpetas para que sea f谩cil encontrar el c贸digo necesario m谩s adelante.

3.1. MVVM multicapa


En aplicaciones m贸viles, una arquitectura multicapa se usa tradicionalmente con la separaci贸n de capas de acceso a datos, una capa de l贸gica de negocios y una capa de visualizaci贸n de interfaz de usuario.


Fig. 3.1. Arquitectura cl谩sica de tres niveles.

Dado que el patr贸n arquitect贸nico MVVM es nativo de Xamarin.Forms, se recomienda usarlo en aplicaciones m贸viles. MVVM describe la relaci贸n de Vista (por lo general, las pantallas de la aplicaci贸n son P谩gina), Modelo de vista y Modelo.


Fig. 3.2. Patr贸n MVVM

Por lo tanto, la arquitectura t铆pica de una aplicaci贸n basada en Xamarin.Forms ser谩 la siguiente:


Fig. 3.4. Arquitectura b谩sica de la aplicaci贸n en Xamarin.Forms

En este libro, nos centraremos en la arquitectura presentada, ya que es un cl谩sico para Xamarin.Forms. Cada uno de los m贸dulos se describir谩 con m谩s detalle en las siguientes secciones.

3.2. Descomposici贸n en capas


Si recordamos lo b谩sico, entonces un programa es un conjunto de algoritmos y datos. Las aplicaciones m贸viles no son la excepci贸n. La arquitectura le permite separar los algoritmos y los datos para diversos fines entre s铆.

En aplicaciones m贸viles, los siguientes tipos de algoritmos se pueden distinguir condicionalmente:

  1. controlar el comportamiento y la apariencia de los componentes de la interfaz de usuario (interfaz de usuario, IU);
  2. l贸gica de interacci贸n del usuario y escenarios empresariales (l贸gica empresarial, BL);
  3. l贸gica de adquisici贸n, almacenamiento y transformaci贸n de datos (capa de acceso a datos, DAL);
  4. funcionalidad de plataforma no relacionada con la interfaz de usuario (plataforma).
  5. Tambi茅n hay muchos algoritmos adicionales, como la inicializaci贸n de la aplicaci贸n o clases y extensiones auxiliares adicionales (Extensiones), pero no son tan f谩ciles de clasificar, ya que son espec铆ficos de proyectos, equipos y bibliotecas seleccionadas.
  6. La estructura de un proyecto vac铆o en Xamarin.Forms se muestra a continuaci贸n. Adem谩s, es importante comprender en qu茅 carpetas colocar los archivos, para que el c贸digo siga siendo simple.


Fig. 3.5. La estructura de un proyecto vac铆o en Xamarin.Forms

Si procedemos a c贸mo mantener el c贸digo "en buena forma" (deuda t茅cnica m铆nima), entonces es importante que el equipo siga acuerdos uniformes. A continuaci贸n consideraremos un ejemplo de la separaci贸n de clases en carpetas, que corresponder谩 a la arquitectura descrita.

Pero primero, recordemos los datos. Es importante entender cu谩l de ellos ser谩 discutido. Hay datos que provienen del servidor (objeto de transferencia de datos, dto), pero hay datos que se procesan en la aplicaci贸n (modelos, entidades, objetos de datos). Tenga en cuenta que es m谩s conveniente recibir de inmediato datos ya preparados de la capa DAL para que sea m谩s f谩cil trabajar con ellos. Hablaremos m谩s sobre esto en la secci贸n 3.5.

Adem谩s, en las aplicaciones m贸viles no existe una cantidad de datos tal que se requiera para hacer modelos gruesos y "difuminar" la l贸gica de negocios en ellos (un enfoque de grandes sistemas corporativos). Suficiente POCO convencional (Objeto CLR antiguo simple) sin ninguna l贸gica. Por lo tanto, todos los datos terminados provienen de la capa DAL, las clases DTO que otras capas no conocen est谩n ocultas en su interior. A continuaci贸n se muestra la diferencia entre modelos gruesos y objetos POCO.


Fig. 3.6. La diferencia entre un modelo "grueso" y un objeto POCO

Adem谩s nos adheriremos a la siguiente notaci贸n:

  1. Objetos de datos: modelos de datos planos (POCO) con los que la l贸gica empresarial continuar谩 trabajando.
  2. Servicios de datos: servicios de adquisici贸n, transformaci贸n y almacenamiento de datos.
  3. Servicios empresariales: servicios de procesamiento de datos y escenarios empresariales.
  4. Servicios de plataforma: servicios para acceso directo a la funcionalidad de la plataforma.

Estar铆a agradecido por sus comentarios y comentarios, 隆mant茅ngase en contacto!

Source: https://habr.com/ru/post/484602/


All Articles