Arquitectura de Software

1

Arquitectura en Android

2

Patrón de diseño vs. Arquitectura de Diseño

3

¿Qué es la Arquitectura de Diseño?

4

SOLID: Single Responsability y Open/Closed Principles

5

SOLID: Liskov substitution, Interface segregation y Dependency Inversion principle

6

Evolución de la Arquitectura en Android

Arquitectura Model View Controller (MVC)

7

¿Qué es la aquitectura Model View Controller (MVC)?

8

MVC en un Proyecto Android: Analizando el código en capas

9

MVC en un Proyecto Android: Llevando el código a sus responsabilidades

Arquitectura Model View Presenter (MVP)

10

¿Qué es la aquitectura Model View Presenter (MVP)?

11

¿Qué es Clean Architecture?

12

Composición en Clases

13

Model View Presenter explicado

14

Capa Model

15

MVP en un Proyecto Android: Presenters y Views

16

MVP en un Proyecto Android: Model

17

Ubicando el código en MVP

Arquitectura Model View ViewModel (MVVM)

18

¿Qué es la arquitectura Model View ViewModel (MVVM)?

19

¿Cómo funciona MVVM Data Binding?

20

MVVM Data Binding estructurando nuestra aplicación y migrando a AndriodX

21

MVVM DataBinding creando un ViewModel

22

Patron Observer en MVVM

23

MVVM Data Binding: integrando ViewModel a View

24

MVVM Data Binding: RecyclerView Adapter

25

MVVM Data Binding: RecyclerView CardView

Android JetPack Arquitectura

26

¿Qué es Android JetPack Arquitectura?

27

¿Cómo funciona la arquitectura de componentes?

28

Arquitectura Componentes Lifecycle ViewModel

29

Arquitectura Componentes Lifecycle Observe

Fin del curso

30

Conclusiones

Curso de Arquitectura de Android

Curso de Arquitectura de Android

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

¿Qué es la Arquitectura de Diseño?

3/30
Recursos
Transcripción

Ya vimos que una arquitectura nos proporciona una estructura, se va a encargar del buen funcionamiento y una buena interacción entre las partes del software.

Modelo de capas (Layers Model). La arquitectura va a estar orquestando lo que sucede a nivel de aplicación. Ahora vamos a organizarlo en capas, módulos o partes del software:

  • UI o Presentación: Encontraremos todo lo que tiene que ver con la interfaz de usuario: botones, imágenes, campos de texto y más.

  • Business Logic o Reglas de Negocio: Encontraremos toda la lógica de lo que tiene que hacer la aplicación, los casos de uso de la aplicación: login, logout, registrar usuarios y más.

  • Data: Veremos mucho sobre la persistencia y procesamiento de la información, la mayoría de las aplicaciones deben estar preparadas para soportarlo: leer una base de datos o traer datos de una API.

Arquitecto de Software: Va a analizar las necesidades, va a planear con anticipación, toman decisiones para evitar riesgos y tienen una amplia experiencia resolviendo problemas.

El futuro tú tendrá que reutilizar código creado por otro desarrollador, tocar código creado por ti de hace mucho tiempo, resolver bugs e implementar nuevos features.

En conclusión la Arquitectura de Diseño:

  • Organiza el código para trabajar en equipo.
  • Hace el código más intuitivo de leer y escribir.
  • Permite mantener, testear e integrar nuevos features más rápido y fácil.

Aportes 21

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

El futuro tú tendrá que reutilizar código creado por otro desarrollador, tocar código creado por ti de hace mucho tiempo, resolver bugs e implementar nuevos features.
Necesitamos implementar arquitectura de software para organizar y ayudar a nuestro** futuro yo.**

En conclusión, la Arquitectura de Diseño:
 Organiza el código para trabajar en equipo.
 Hace el código más intuitivo de leer y escribir.
 Permite mantener, testear e integrar nuevos features más rápido y fácil.

Partes del software
UI -> Front End
Business Logic -> Lógica del negocio(qué, como y cuando)
Data -> Obtención y procesamiento de información
Arquitecto de software : analiza, planea y decide

Conclusión:

La arquitectura de diseño nos ayuda a organizar el código para que este sea mas intuitivo de leer y escribir, esto con el fin de que sea mas fácil el trabajo en equipo y que el código se pueda mantener, testear y que en un futuro se integren nuevos elementos rápido y fácil.

Lo duro y bonito de ser app dev, es que como dices, te toca el front y el back (business logic) de el app.

Arquitectura N capas (UI, Bussines, Data Access) son las comunes, ya dependiendo la aplicación se construyen capas transversales (Entities, Security)

¡Espectacular!

Es curioso como a pesar de implementar buenas practicas y eso, cada programador o equipo tiene su propia manera de implementar el código.

lo que entiendo que utilizar una buena arquitectura ayudara a que otros que agarren el mismo codigo le entiendan mas rapido, eso esta genial

  • UI Designer: Las interfaces visuales deben cumplir estos lineamientos de estética y organización.
  • UX Designer: Las interfaces visuales deben cumplir estos lineamientos de usabilidad para el usuario final.
  • DB Admin: La base de datos cumple con la estructura X para manejar la información del negocio.
  • Dev: La aplicación debe tener esta arquitectura e implementar estas librerías para el desarrollo.
  • PM: ¿Como vamos?

Muy bueno, me gustaría agregar que las arquitectura que se mencionan son a nivel aplicativo (componentes de código) haciendo un Zoom Out hay otros patrones de Arquitectura que se enfocan en las integraciones entre aplicativos y/o componentes de software donde se manejan otros patrones (Microkernel, patron de capas, cliente-servidor, event drive, etc…), por ejemplo, si se quisiera externalizar la autenticación, habrá una integración entre tu App hacia un IdP (Identity Provider) usando OAuth 2.0 o si se requiere hacer un SSO (Single Sig On) hacia otra aplicación.

Interesante, cuando cree mi app para monetizar, al único q contrataria seria a un UX Designer y eso porque no se diseñar profesionalmente lo demás uno mismo lo puede ser, facil.

Nosotros los emprendedores (solo) desarrolladores ejjejeje

QUÉ ES PM???

A tomar en cuenta como desarrollas tu código, ya que no sabes si lo puedes necesitar más adelante.

es como el mvc

¡Genial!

layers model es muy bueno nos ayuda tambien a definir que necesitamos en nuestro equipo

Y cual es el rol del PM en el desarollo de una APP ?

supeeeer

Arquitectura De Diseño

  • Estructura
  • Funcionamiento
  • Interacción

…entre los componentes del SW

Me gusto la analogía que hacen de orquestar