Sie sind auf Seite 1von 12

PARTE 7

ASPECTOS AVANZADOS
7.1 Aspectos avanzados /
BACKEND DE VERDAD

Para poder hacer aplicaciones reales en muchas ocasiones Firebase Cloud Messaging1
necesitaremos realizar procesos que no se pueden realizar en
el mvil y necesitaremos apoyarnos en un backend remoto para Nos permite mandar mensajes push a
poder hacerlas. Tradicionalmente estos servicios teniamos que nuestros dispositivos, es decir, sin que
programarlos nosotros, pero en la actualidad cada vez tenemos ellos nos lo soliciten y de forma asncrona,
estos servicios disponibles programados por terceras personas sin el servidor puede mandar informacin a
necesidad de mantenerlas nosotros mismos. los dispositivos. Estos sistemas se pueden
usar en aplicaciones de notificacin de
Vamos a ver tres ejemplos de las funcionalidades que nos chats, mails, etc.
ofrece uno de los proveedores de servicios que hemos utilizado
anteriormente, Firebase. Nos permite mandar mensajes que puedan ver nuestros usuarios
o de control del dispositivo. A un grupo de usuarios, a los que
estn suscritos a un tema o a un usuario completo. Casi cualquier
aplicacin puede beneficiarse de este tipo de servicio.

(1) https://firebase.google.com/docs/cloud-messaging/
7.1 Aspectos avanzados / BACKEND DE VERDAD

Firebase Authentication2 Firebase Realtime Database3

La seguridad en las aplicaciones mviles es Este servicio nos permite sincronizar


cada vez ms importante. Para ayudarnos los datos de un dispositivo de manera
con la identificacin de usuarios podemos automtica, ya que cada vez que existe
utilizar esta librera que nos permitir algn cambio en los datos, este servicio
de manera sencilla proveer a nuestras se lo notifica a todos los dispositivos
aplicaciones de un mtodo de identificar conectados. No solo eso, en caso de que
a nuestros usuarios. Esta librera ofrece algn dispositivo est offline, se encargar
muchas formas de uso aunque hay dos de ellas que son los de actualizarlos en cuanto vuelva a estar disponible. Internamente
mtodos ms frecuentes, autenticacin por email y password o guarda los datos en formato JSON, por lo que estamos capacitados
usar un proveedor de identidad federado tipo google o facebook. para poder utilizar este servicio cuando queramos.

(2) https://firebase.google.com/docs/auth/ (3) https://firebase.google.com/docs/database/


7.1 Aspectos avanzados / BACKEND DE VERDAD

Back-End parte de la aplicacin que recoge las


interacciones con el usuario. Se ejecuta en el
dispositivo
Front-End (Almacenamiento) - se refiere al lugar fsico de
persistencia, memoria del telfono o servicio
en la nube
Nube (Cloud Computing) - servicios ofertados por
terceros que se pueden usar sin que el usuario
tenga que conocer aspectos avanzados de
cmo gestionarlos
Notificaciones mensajes emitidos por el backend sin
push necesidad que el frontend los solicite
Autenticacin comprobacin de que el usuario es quien dice
ser
Proveedor de servicios que permiten identificarnos de
identificacin manera externa (google, twitter, etc)
federado
7.2 Aspectos avanzados /
PATRONES DE USO

Como hemos visto en el curso, desarrollando aplicaciones hbridas 2. En android los terminales tienen un botn back (atrs) fsico,
podemos crear una app que funciona tanto en plataformas android que los terminales iOS no tienen. Por tanto, las apps que
como iOS. Pero, debemos usar exactamente la misma aplicacin desarrollemos deben tener esto en cuenta, por ejemplo,
en ambos entornos? Hay alguna diferencia en desarrollar una mostrando un botn atrs slo para terminales iOS.
aplicacin para android y iOS? Podemos hacer aplicaciones
personalizadas para cada plataforma en el mismo proyecto de 3. Las listas, mens y cabeceras tienen un diseo especfico en
PhoneGap? Vamos a responder a estas preguntas. cada plataforma, y los usuarios de cada una esperan que sean
de esa forma.
Diferencias de diseo
Por suerte ambas plataformas cuentan con guas de estilo que
En primer lugar, existen algunas diferencias que deberan reflejarse debemos usar, el gua de interfaces de iOS4 y la de Material Design
en el propio diseo de la aplicacin. Vamos a ver 3 de ellas. de Android5.

1. La plataforma iOS slo funciona en terminales Apple. En


cambio android funciona en terminales de muchos fabricantes
diferentes, que realizan personalizaciones sobre la plataforma. (4) Gua de estilo iOS
As, debemos tener en cuenta cules son nuestros terminales https://developer.apple.com/ios/human-interface-guidelines/
objetivo en android para hacer un diseo adaptado al terminal y
(5) Gua de estilo de Material Design

su personalizacin. https://material.google.com/material-design/environment.html
7.2 Aspectos avanzados / PATRONES DE USO

El plugin device6

En Apache Cordova contamos con un plugin que nos permite


detectar el dispositivo sobre el que se est ejecutando nuestra
aplicacin. De esta forma, podemos personalizar desde nuestro Back atrs en ingls, usado para describir el botn
cdigo JavaScript si queremos por ejemplo mostrar un botn slo atrs fsico de los dispositivos android
para iOS o cambiar el estilo de un men para android.
Tabs del ingls pestaas, referido a un men que
El plugin share7 usa pestaas
Material gua de estilo para el diseo de aplicaciones
Otra caracterstica que puede requerir nuestra aplicacin es poder
Design android
compartir un recurso (documento, imagen, video) con otras apps.
Esta accin se realiza de forma distinta en funcin del sistema, Device del ingls dispositivo, es un plugin de Cordova
y la implementa una llamada nativa. Para ello existe un plugin,
share, que permite compartir un recursos con otras aplicaciones y Share del ingls compartir, es otro plugin de Cordova
que funciona en varias plataformas. Este plugin no viene incluido
de serie en PhoneGap y no puede usarse con aplicaciones de
la PhoneGap Developer App sino que tendramos que construir
directamente la aplicacin para probarla en nuestro dispositivo. (6) Apache Cordova device plugin
https://github.com/apache/cordova-plugin-device/
(7) Apache Cordova share plugin
https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin
7.3 Aspectos avanzados /
RENDIMIENTO

Las aplicaciones mviles se ejecutan en un entorno, el terminal 1. Evita los accesos innecesarios a la red. Muchas veces nuestra
mvil, que tiene capacidad limitada de recursos: memoria, CPU, aplicacin necesita varios recursos que se descargan de la red.
almacenamiento en disco, acceso a la red, batera, etc. Por En lugar de descargarlos de uno en uno, podemos descargar
ejemplo, si nuestra aplicacin est accediendo a la red tenemos todos en una nica peticin. Tambin haciendo uso de cache
que tener en cuenta que puede tener tiempos de respuesta largos, y almacenamiento local evitamos estos accesos. Otro caso es
desconexiones, etc. O si queremos pintar una imagen con millones que si vamos a mostrar un listado de recursos muy grandes, en
de pxeles, el sistema tienen que cargarla en memoria y tomar lugar de descargarnos todos lo vayamos haciendo poco a poco,
un tiempo hacerlo, incluso podemos consumir toda la memoria segn los vamos mostrando al usuario. Como regla general slo
disponible y la aplicacin pasa a un estado de error (crash). Por debemos descargar la informacin que vamos a mostrarle al
eso, es importante hacer un uso eficiente de los recursos para que usuario, ni ms ni menos.
nuestra aplicacin se ejecute de forma fluida y el usuario tenga
una buena experiencia de uso. 2. No esperar a los datos para empezar a pintar la interfaz. Hay
interfaces que para pintarse depende de datos de la red. Pero
Vamos a dar una serie de tips para que el rendimiento de nuestras podemos ir pintando la interfaz en el navegador vaca y cuando
apps no decaiga. tengamos datos la actualizamos. Tambin podemos usar splash
screens para que el usuario no pierda la paciencia.
7.3 Aspectos avanzados / RENDIMIENTO

3. Usar funciones que usen aceleracin por hardware, por ejemplo, El debugger de Phonegap
las animaciones CSS estn optimizadas por encima de las que
hacemos con JavaScript. Phonegap cuenta con una aplicacin para hacer debugging, weinre8
(inspector web remoto), que permite usar las devtools de Chrome
4. Usar fastclick para evitar el retardo de 300ms para escuchar para revisar nuestra aplicacin. Usando esta herramienta podemos
eventos mviles. detectar problemas de rendimiento al ver cmo se cargan los
recursos de nuestra app y ver si hay, por ejemplo, alguno muy
5. Optimiza las imgenes al tamao de la pantalla, para evitar pesado o algn proceso consume mucha memoria.
descargar imgenes de megas cuando van a pintarse en un
espacio pequeo de la pantalla. Para utilizar weinre debemos primero instalarlo usando npm, y
luego lanzarlo desde nuestro terminal. A continuacin incluimos
6. No usar frameworks pesados (en tamao) de JavaScript, como un script en nuestra app de PhoneGap para que se conecte al
jQuery, a no ser que de verdad estemos haciendo uso de sus servidor a travs de la red local. Cuando ya tenemos nuestra app
caractersticas. funcionando en la PhoneGap Developer App, usamos una URL que
nos da la aplicacin para abrir una web en nuestro navegador. En
esta web aparecen las devtools que inspeccionan directamente
nuestra app en el mvil. Podemos usar el inspector, la consola
JavaScript y en general todas las funcionalidades de las devtools.

(8) Debugging PhoneGap with weinre


http://coenraets.org/keypoint/phonegap-performance/#0 http://docs.phonegap.com/references/developer-app/debugging/
7.3 Aspectos avanzados / RENDIMIENTO

Performance del ingls rendimiento


Reflow clculo que hace el navegador para pintar un
elemento en pantalla que ha cambiado
jQuery librera JavaScript de propsito general
Debugger aplicacin que usamos para encontrar bugs
(errores) en un programa
Devtools herramientas del navegador web que facilitan
el desarrollo de aplicaciones web
Inspector herramientas que permite usar las devtools
Web Remoto sobre una aplicacin mvil hecha con
(weinre) PhoneGap ejecutndose en un terminal mvil
7.4 Aspectos avanzados /
DISTRIBUCIN DE APLICACIONES MVILES

Tradicionalmente la distribucin de aplicaciones mviles ha sido


bastante tediosa, lenta y requera de mquinas potente. Ahora
con PhoneGap Build9 tenemos la opcin de realizarla de manera
sencilla. Lo nico que necesitamos es saber la url del repositorio
git de la aplicacin que queremos empaquetar y una aplicacin
de escaneo de cdigos qr instalada en el dispositivo en el que
queremos instalarla.

Una vez hemos indicado el repositorio y tras unos breves instantes


tenemos el cdigo qr. Lo escaneamos y comienza la descarga de la
aplicacin. Tras esto ya tenemos nuestra aplicacin corriendo en
nuestro dispositivo!

Cdigo QR sistema de almacenamiento de informacin.


Es similar al cdigo de barras pero en dos
dimensiones
(9) PhoneGap build https://build.phonegap.com/
7.5 Aspectos avanzados /
APIs HTML5

En el curso hemos usado los plugins de Cordova para acceder a


las capacidades del dispositivo: la cmara, el acelermetro, etc.
Pero en el futuro podremos acceder a todas estas capacidades
directamente desde el navegador mediante las APIs HTML510.
Con estas APIs vamos a poder acceder directamente (a travs del
navegador) a las capacidades del dispositivo, como la cmara, el
acelermetro, la geolocalizacin, etc.

(10) WebAPI en Mozilla Developer Network


https://developer.mozilla.org/es/docs/WebAPI

Das könnte Ihnen auch gefallen