Está en la página 1de 24

Desarrollo de Aplicaciones Móviles

Clase 12 Librerías para el Database – realtime.


Objetivo: Crea
aplicativos móviles
para manejo de
datos en Database-
realtime.

Martes 13:00-18:00
MA. Juan Carlos Reátegui Morales “Todo lo complejo puede dividirse en partes simples” .
Rene Descartes 1
jreategui@untels.edu.pe
MBA-ISO 27001-ISO 9001-ISO 22301 1
SERVICIOS GOOGLE
Firebase ofrece numerosos servicios, entre los que se encuentra una base de
datos en tiempo real, sistema de login de usuarios, notificaciones,
almacenamiento de archivos, hosting, analítica, etc.
Firebase es compatible con la web, mediante programación Javascript y con
numerosas librerías para trabajar en sistemas diversos como AngularJS, React
o Polymer. Pero también es compatible con dispositivos iOS y Android, así
como -por medio de un API REST- en cualquier otra plataforma o tecnología
que deseemos trabajar.
Este servicio "Backend as a Service" nos ofrece varias piezas que vamos a
describir y usar en el manual, necesarias para cualquier tipo de aplicación. Te
las ofrecen listas para que solo tengas que configurar y comenzar a usar, de
modo que el desarrollo de aplicaciones se realiza de una manera mucho más
rápida.
https://youtu.be/AddqzrFdR4Q
SERVICIOS GOOGLE
Firebase es una plataforma para el desarrollo de aplicaciones web y
aplicaciones móviles desarrollada por James Tamplin y Andrew Lee en 2011 y
adquirida por Google en 2014, empezando con su producto base: base de
datos a tiempo real.

¿Que es una base de datos a tiempo real?

En vez de hacer peticiones AJAX, el usuario se conecta a la base de datos y


automáticamente manda los datos. Emites cambios en el front a tiempo real
sin necesidad de recargar absolutamente nada y a todos tus usuarios
conectados a ella.

https://youtu.be/g3eIRWB9ZVM
SERVICIOS GOOGLE
Algunas ventajas de Firebase:
No necesitas casarte con Firebase, usa lo que necesites (Quiero sólo Cloud
Functions y Remote Config, pero no Real Time database).

Usa Cloud Storage: base de datos para que usuarios puedan compartir
ficheros e imágenes, sin necesidad de hacer bases de datos propias, que para
imágenes a veces puede ser un poco ‘tedioso’.
Usa Cloud Functions: te ahorras toda la infraestructura de backend. Eso sí,
Google es lo que más cobra ya que sabe que es en lo que más te ahorras.
Algo bueno es que con el plan Blaze con las CF puedes hacer llamadas a tu
API, no hay firewalls.

Esto de Firebase.. ¿es caro? No y sí: depende de cuanto ganes. Puedes tener
pequeños proyectos corriendo en producción y el gasto es nulo. Si tu empresa
escala, Google lo va a saber y te va a cobrar sabiendo lo que ganas. Existen 3
planes:
Free: 100 usuarios — 1GB
Flame: 100.000 usuarios — 2.5GB
Blaze: >100.000 usuarios — 5$/1GB en 2014, empezando con su producto
base: base de datos a tiempo real.
FUTURO DEL SOFTWARE
https://www.noticias.ltda/sociedad-digital/que-es-saas-industria-del-futuro/
¿Qué es SaaS? .- En el mundo digital de hoy hablamos de SaaS, el acrónimo en inglés
de Software as a Service, su traducción literal al español es Software como Servicio.
Este es un nuevo modelo de distribución de software. En comparación con el modelo
tradicional, en SaaS un proveedor externo aloja aplicaciones y las pone a disposición
de los usuarios a través de Internet. A diferencia del pasado, mientras que el software
se compraba e instalaba localmente en el dispositivo, con el método SaaS, el software
se aloja en la nube y se puede acceder a través de Internet mediante suscripción.
Todos los elementos típicos de un software, desde las secuencias de comandos hasta
los códigos y algoritmos, así como la parte del hardware en forma de servidores y las
estructuras que los alojan, permanecen sin cambios y son administrados y mantenidos
por el proveedor de software. Las características clave de un software como servicio
son:
Arquitectura multiinquilino Alojamiento en un servidor remoto
Accesibilidad a través de Internet Gestión desde un solo lugar
Actualizaciones automáticas

El concepto de software as a service ( o software como servicio) comenzó en el 2000 y


está asociado con un ensayo que realizó Tim O’Reilly. El éxito de muchas compañías
como Netflix, Dropbox, Slack, Spotify, Microsoft Office 365, Google Apps y Kubernetes
ha hecho de la naciente industria SaaS un modelo distintivo de la economía digital
moderna.
FUTURO DEL SOFTWARE
Software tradicional vs Software as a Service

El software tradicional se compró a través de un CD, se descargó recientemente y


luego se instaló localmente en tu computadora. Las licencias pueden estar limitadas a
varios usuarios y/o dispositivos en los que está instalado el software.

Con SaaS, los usuarios adquieren una suscripción, generalmente mensual. Las
aplicaciones se actualizan y se usan en línea, los archivos se guardan en la nube en
lugar de en computadoras individuales, lo que facilita el trabajo en equipo. El “trabajo
sucio” lo realiza el proveedor de software SaaS.
Los clientes solo necesitan contratar expertos de TI para supervisar la implementación.

Este cambio sustancial en la relación proveedor-cliente trae cambios drásticos que


eliminan el viejo negocio de comprar licencias con la adición de costos anuales para
funciones adicionales como soporte y mantenimiento.

El modelo SaaS a menudo propone piezas a través de una suscripción mensual, anual
fija o negociada, simplificando todos los procesos relacionados con la compra. Además,
muchos proveedores le permiten cancelar su suscripción en cualquier momento.
FUTURO DEL SOFTWARE
Desventajas y posibles peligros del modelo
SaaS
Las desventajas y los posibles peligros
relacionados con el software como servicio se
deben principalmente a sus primeras etapas de
vida. El modelo SaaS se está extendiendo
rápidamente como estándar, creando una
presión competitiva que garantiza que
contratiempos problemáticos como la seguridad
de los datos y el rendimiento mejoren
constantemente. Sin embargo, siempre es mejor
tener cuidado y saber cuáles son los posibles
problemas relacionados con el software como
servicio:

Compartir tus datos con el proveedor: la


seguridad de datos para los servicios en la
nube sigue siendo algo controvertida.
Aunque se garantiza la máxima privacidad y
seguridad, los datos realmente ingresados ​no
están en tu posesión, sino que se almacenan
“en el proveedor”.
FUTURO DEL SOFTWARE
Desventajas y posibles peligros del modelo SaaS
Las fugas de datos, los ataques de piratas informáticos y otros posibles “incidentes”
están fuera de tu control.

Posibles interrupciones del servicio: si el proveedor se ve obligado a interrumpir el


servicio, el software ya no sería accesible y también podrías sufrir la pérdida de datos y
documentos. Sin embargo, los usuarios generalmente tienen tiempo para hacer una
copia de seguridad de sus documentos y datos en unidades o servidores externos.

Necesidad de una conexión a Internet rápida y constante: el software como servicio


funciona por medio de una conexión a Internet. Cualquier problema de conexión
podría interrumpir tu trabajo. Muchos proveedores también ofrecen un modelo fuera
de línea que te permite trabajar incluso sin Internet y sincronizar los datos lo antes
posible.

Incapaz de usar en caso de tiempo de inactividad: si el proveedor necesita eliminar


servicios de la red por mantenimiento o falla del servidor, muchos SaaS pueden ser
inaccesibles temporalmente.

Compatibilidad con sistemas operativos y navegadores: dependiendo del navegador o


sistema operativo que se use, pueden surgir problemas de compatibilidad.
https://www.youtube.com/watch?v=pitaK213P6k
EL FUTURO DE LAS PLATAFORMAS DE SOFTWARE
La última década fue ciertamente significativa en términos de resolver el problema de la
portabilidad del software. Prueba de ello son ejemplos como los siguientes:

• Hoy es posible utilizar Java en teléfonos celulares, en múltiples sistemas operativos y


en arquitecturas de hardware basadas en microprocesadores muy distintos.
• .NET ha ofrecido también independencia de lenguaje materializando no únicamente
simetría del modelo de programación en el cliente y en el servidor, sino más allá:
Silverlight incluye una versión de .NET que opera dentro en Internet Explorer, Firefox,
SeaMonkey, Safari, Chrome y Opera, tanto en PC como en Macintosh y Linux,
mediante Moonlight.

• Stonehenge (http://sn.im/lj94g) es una aplicación de referencia que demuestra mejores


prácticas de integración entre sistemas Java, .NET y PHP – esta última, un modelo
ampliamente aceptado en la web. El proyecto se extenderá en el futuro hacia otras
plataformas.
• A pesar de estos avances en portabilidad, el
tema de realizar las pruebas en cada plataforma
y la capacidad de ofrecer soporte técnico
continúa siendo costoso (desde la visión de un
software que opere en cualquier dispositivo,
aprovechándolo al máximo). 9
2
EL FUTURO DE LAS PLATAFORMAS DE SOFTWARE
El siguiente paso: centros de datos públicos en la nube
La evolución de la web nos ofrece una nueva posibilidad: aprovechar la
infraestuctura de cómputo de empresas como Yahoo, Microsoft, Google y
Amazon. En el caso de Microsoft, su oferta de cómputo en la nube está basada
en la plataforma de servicios Windows Azure. Éste, es un ambiente de
ejecución (runtime) para aplicaciones, que opera en centros de datos “públicos”
(compartidos por usuarios).

La nube ofrece ventajas reales a problemas


existentes en TI:

• Pago por uso, no por propiedad.


• Reducción de costos al compartir la
infraestructura de TI con otros “inquilinos”.
• Escalabilidad inmediata para responder a
aumentos repentinos en carga de trabajo.
• Disminución del tiempo para habilitar nuevas
aplicaciones.
10
2
EL FUTURO DE LAS PLATAFORMAS DE SOFTWARE
Dando el salto a la nube

Si bien es claro que un primer paso es “virtualizar” aplicaciones existentes y


llevarlas de un equipo físico a una máquina virtual, o posiblemente a un centro
de datos externo, en este escenario continúa presente un punto único de falla,
y la escalabilidad se puede volver muy costosa, por lo que no es suficiente. Sin
duda, a lo largo del tiempo se considerará construir los nuevos sistemas bajo
las nuevas abstracciones, porque resuelven internamente los problemas de
escalabilidad a miles de procesadores, administración de sistemas
automatizada y privacidad, aun con múltiples empresas compartiendo
infraestructura.

Las empresas deben estar preparadas para soportar las dimensiones de


cómputo que les den ventajas tales como: uso del software existente en un
esquema de virtualización; explotación del software en el servidor, la PC y
dispositivo móvil; y aprovechamiento de las nuevas plataformas tecnológicas
en la nube, –las experiencias llegarán a múltiples dispositivos permitiendo el
acceso en cualquier lugar.
11
2
EL FUTURO DE LAS PLATAFORMAS DE SOFTWARE
Combinando software local y en la nube
La frase “cómputo en la nube” es muy amplia y casi nunca dice lo suficiente,
pero lo que es claro, es que cada día menos personas anticipan que 100% de
aplicaciones y datos se almacenen en Internet, es irreal pensar en ello.
La combinación de software local y en la nube, permite casos completamente
nuevos en la industria de software, por ejemplo: la empresa Iron Mountain
complementa su servicio de manejo de archivo muerto físico con el servicio de
almacenamiento de archivo muerto digital en la nube; ThoughtBridge, una
empresa de consultoría en desarrollo de software, crea y vende extensiones
para Sharepoint Online para la gestión de RH.

12
2
EL FUTURO DE LAS PLATAFORMAS DE SOFTWARE
Consideraciones
Una plataforma tecnológica para la nube, deberá soportar características
particulares de la misma. Por ejemplo: se requiere de servicios que conecten
una nube “privada” con la nube “pública” para escenarios de integración.
Para escenarios web orientados al consumidor, se requieren también nuevos
servicios como los de administración de datos y aplicaciones en el centro de
datos, sin importar que éste se encuentre ubicado internamente, en un hosting
dedicado o en la nube pública.
El resultado final: flexibilidad, agilidad, eficiencia y capacidad de enfoque
en valor y no en mantener la infraestructura.
El futuro de la plataforma de software es habilitar y hacer posible la nueva
visión con un alto enfoque de productividad. (Más rápido, mayor cobertura,
más eficacia y eficiencia).
Innovación…!!!

13
2
Un Intermedio

14
2
ADICIONANDO FIREBASE A TU PROYECTO
Ver documento del Material Adjunto.

https://youtu.be/e6aoUnLQBAw
COMO VER LOS ERRORES CON FIREBASE
Seguridad en Firebase:

Tradicionalmente, la seguridad ha sido una de las partes más complejas del


desarrollo de una app. En la mayoría de las aplicaciones, los programadores
tienen que construir y poner en funcionamiento un servidor que maneje la
autenticación (determinar la identidad del usuario) y la autorización (controlar
qué puede hacer cada usuario).

La autenticación y la autorización son difíciles de configurar y no es sencillo


hacerlo sin cometer errores, pero son aspectos absolutamente fundamentales
para el éxito de tu producto.

Así como Firebase Authentication te facilita la tarea de autenticar a tus


usuarios, las reglas de seguridad de Firebase para Cloud Storage te facilitan la
tarea de autorizarlos y validar sus solicitudes. Las reglas de seguridad de
Storage administran la complejidad por ti porque te permiten especificar
permisos basados en rutas. Con muy poco código, puedes escribir reglas de
autorización que restrinjan las solicitudes de Google Cloud Storage a un
usuario determinado o limiten el tamaño de las cargas.
17
2
Un Intermedio

18
2
Desarrollo de Aplicaciones Móviles
Martes 13.00-18:00

PRACTICA DE JAVA
Desarrollo en clase de programa con uso de firebase.

MA. Juan Carlos Reátegui Morales


19
jreategui@untels.edu.pe
MBA-ISO 27001-ISO 9001-ISO 22301 19
PROGRAMA PARA USO DE FIREBASE
Construyendo un CRUD Totalmente en la Nube
Avances de su proyecto
de fin de ciclo

21
21
Repaso:
¿Que ventaja significa poder almacenar imágenes en la nube?. Explique.

¿Que es Database Realtime?. Explique.

Explique tres (5) proyectos para trabajar con móviles con apoyo de la nube,
(utilizando recursos en la nube).
1) APP para viajeros (GPS, Mapas, rutas, etc)
2) Agenda personal.
3) Ventas por delivery
4) Tele Medicina remota
5) Cuadro de Mando Integral (La empresa Online)

¿Que es una plataforma de software?. Explique

22
22
Desarrollo de Aplicaciones Móviles

Objetivo: Acceder a los Clase 13 Almacenamiento de


servicios de Google
(Cloud Storage). Imágenes (Cloud Storage)

Uso de almacenamientos
de imágenes.

Martes 13:00-18:00

MA. Juan Carlos Reátegui Morales «Todo lo que escuchamos es una opinión, no un hecho.
23
Todo lo que vemos es una perspectiva, no es la verdad.»
jreategui@untels.edu.pe
MBA-ISO 27001-ISO 9001-ISO 22301 Marco Aurelio 23
Muchas gracias…

24

También podría gustarte