Está en la página 1de 5

FLUTTER AVANZADO

ARQUITECTURA: Estructurar, diseñar, proyectar algo.

ARQUITECTURA DE SOFTWARE:
• Indica la estructura de funcionamiento e interacción entre las partes del software.
• Tener el código organizado para que todo el equipo pueda verlo.

ESTRUCTURA E INTERACCIÓN:

• Solicitud y envío de datos a internet.


• Limpiar, Transformar, preparar datos.
• Inserta y obtiene datos a una base de datos.

ARQUITECTURAS POPULARES PARA FLUTTER:

• Vanilla: La lógica y la vista se colocan en el widget. (Rompe los principios SOLID,


específicamente Single Responsability la cual dice que una clase debe tener solo una
responsabilidad).
• Scope Model: Es una librería de terceros que es extraida del código del sistema
operativa Fuchsia. En esta arquitectura cuando un Widget cambia de estado se
reconstruye el árbol completo (Toda la pantalla).

BLOC (BUSINESS LOGIC COMPONENT):

• Es un patrón de diseño que separa la lógica de negocio de la interfaz gráfica (Creado por
Paolo Sorares y Cong Hui)

Block Pattern: View (UI Screen) + BloC (Business Logic) + Repository + Data / Model.

• VIEW: Contendrá toda la interacción con las vistas, se organizaran en screens y


widgets.
• BloC: Capa de negocio estará contenida aquí. Casos de uso, Toda la vista que tenga
una lógica de negocio deberá tener un componente Bloc.
• Repository: Clases que se conectaran con fuentes de datos: APIs, Endpoints,
DataBase etc.
• Data / Model: Son nuestros modelos que nos ayudan a manejar los datos. PODO (Plain
Old Dart Object).

BLOC + CLEAN:

Combinación del patrón de diseño Bloc con el patrón de arquitectura limpia.

SINGLETON O Instancia única es un patrón de diseño que permite restringir la creación de


objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste
en garantizar que una clase solo tenga una instancia y proporcionar un punto de acceso global
a ella.

Provider Global Singleton: Usado para compartir los datos que posee un BloC a nivel
global (No elimina la redundacia).

Provider Global Singleton (Generic BloC Provider): Es una entidad que se usa para
compartir los datos que posee un BloC a nivel global (Eliminando la redundacia), en Flutter
existe una librería que ayuda a la exposición de este: bloc generic_bloc_provider.

FIREBASE:

• Crear el proyecto: console.firebase.google.com


• Seguir las instrucciones para Android: Firebase funciona desde el SDK 21 –
minSdkVersion 21 (Lollipop +)
• Seguir las instrucciones para iOS: File > Workspace Settings, selecciona Legacy
Build System

ANDROID:

En implementar Firebase como librería en el proyecto de Android

FirebaseAuth

Agregar en gradle.properties:

• android.useAndroidX=true
• android.enableJetifier=true

compileSdkVersion 28
targetSdkVersion 28

CloudFirestore:

android {
defaultConfig {
multiDexEnabled true
}
}

IOS:

No implementar Firebase con cocoapods

Pegar el archivo: GoogleService-Info.plist a nivel de Runner


Para Google Sign In:
Copiar el fragmento de código para el key CFBundleURLTypes que está en el siio de paquetes:
https://pub.dev/packages/google_sign_in

Para CloudFirestore:
Actualizar Firebase con el comando pod: pod update Firebase

Funciona desde el comando 5.7


CLOUD FIRESTORE DE FIREBASE:

En la consola de Firebase:
1. Database
• Create database:
• Locked Enable
• Cambiar las reglas
• Allow read, write: if request.auth != null

Modelo de datos: Bases de datos NoSQL

• Las entidades se conocen como Collection:


• Cada elemento de la entidad se llamara Document
• Las características las llamaremos fields (campos).

NAVEGACIÓN:

Destruir una pantalla de navegación para regresar a una pantalla anterior:

• Navigator.of(context).pop();

Insertar una nueva pantalla sobre otra.

Navigator.push(context,
new MaterialPageRoute(
builder: (BuildContext context) => new Screen2(userName)));
))

Librerías de acceso a Hardware en Flutter


41/58

LECTURA

Bluetooth
Es una librería de Flutter que funciona de manera Cross-Platform para Android y iOS. Nos
permite conectarnos a dispositivos, obtener información sobre ellos, mostrar notificaciones y
acceso a los servicios.

Esta librería la encuentras en el administrador de paquetes de dart:

https://pub.dev/packages/flutter_blue

Geolocalización

Este plugin creado por la compañía Baseflow nos permite usar el hardware del dispositivo para
obtener el último y/o actual punto de localización, una ruta de puntos de localización,
transformar estos datos en coordenadas latotud y longitud, calcular distancias, así como
monitorear si está activado en nuestro teléfono.

Por defecto en Android se utilizan los Google Play Services pero si no está disponible utiliza la
clase LocationManager.

Los permisos que se utilizan en` Android son:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />


<uses-permission android:name="android.permission.ACCESS_COARSE`_LOCATION" /`>

Y en iOS:

<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location `when open.</string>
Si quieres saber más puedes encontrar la documentación aquí:
https://pub.dev/packages/geolocator

Acelerómetro

El acelerómetro del dispositivo es un sensor que sirve para medir la aceleración de movimiento.
El comportamiento del acelerómetro normalmente estará en conjunto del giroscópio nos
permitirá detectar la orientación del dispositivo y rotar la interfaz en caso de ser necesario.

Sensors es el plugin más famoso en Flutter quenos permite tener acceso a e`stos dos
aditamentos de Hardware.

import 'package:sensors/sensors.dart';

accelerometerEvents.listen((AccelerometerEvent event) {
// Do something with the event.
});

gyroscopeEvents.listen((GyroscopeEvent event) `{
// Do something with the event.
});
Puedes ver toda la documentación aquí: https://pub.dev/packages/sensors

Beacon

Un Beacon es uno de los aditamentos de hardware más solicitados en el desarollo de


aplicaciones. Funciona vía Bluetooth emite una señal que lo identifica de forma única. Ésta
señal puede ser recibida e interpretada por otros dispositivos como un smartphone.

Sus usos son tan variados como la imaginación lo diga. Puede emitir, fotografías, videos, texto,
etc. y desde el dispositivo móvil ser visualizados

En el siguiente video puedes ver alguno de sus usos.

En Flutter tenemos soporte para Beacons con el plugin Flutter Beacon que soporta
especialmente a los iBeacons que viste en el video.

Mira la documentación aquí: https://pub.dev/packages/flutter_beacon

FIREBASE STORAGE:

Es un aditamento que Firebase proporciona para almacenar archivos y agruparlos en carpetas

También podría gustarte