Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Introducción a Android L y Material Design

No description
by

Leonardo Salmaso

on 10 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Introducción a Android L y Material Design

INTRODUCCION A
ANDROID L
y
MATERIAL DESIGN
MATERIAL DESIGN
FILOSOFIA
NUEVOS WIDGETS
SOMBRAS
ANIMACIONES
TINTADO DE DRAWABLES
LIBRERIA PALETTE
FILOSOFIA
El material está basado en la realidad táctil, inspirado en el estudio del papel y la tinta, aún tecnológicamente avanzado y abierto a la imaginación y la magia.
New Android Runtime (ART)
NUEVOS WIDGETS
RecyclerView
:
Versión mejorada del ListView que trae mejoras de rendimiento para vistas dinámicas y es más sencillo de usar.
CardView:
Lista al estilo Google Now con tarjetas que permiten mostrar información importante manteniendo una apariencia homogénea.

RECYCLER VIEW
NUEVAS CARACTERÍSTICAS
VERIFICAR APLICACIÓN
PERFORMANCE
NUEVAS
CARACTERÍSTICAS
VERIFICAR
APLICACION
Llamados a Garbage Collection (GC)

Prevenir errores de Stack Size:
Dalvik tenia dos stacks separados, uno de 32KB para JAVA, y otro de 1MB para codigo nativo.

De esta manera se implementa un recycler view, el cual necesita una LayoutManager que se encarga de reciclar las vistas y de un adapter que lo alimente.

En el archivo XML:

Prevenir problemas JNI:
Al realizarse un cambio en el GC, se debe tener especial atencion en aplicaciones que ejecuten instrucciones de C/C++

Cambios en el modelo de Objetos

VERIFICAR
APLICACION
RECYCLER VIEW
En el Activity:

Ahead-of-Time (AOT) compilation
Improved garbage collection (GC)
Improved debugging support

PERFORMANCE
CARD VIEW
Menor uso de CPU:
Debido a que el código es pre-compilado durante la instalación y se realiza una ejecución nativa.

Menor Consumo de Bateria:
Optimizacion del consumo de recursos genera una mayor estabilidad en el uso de la bateria



CardView permite entre otras cosas setear el radius de las esquinas para hacerlas más o menos redondeadas utilizando el atributo
card_view:cardCornerRadius

en el XML y el metodo
CardView.setRadius
programaticamentey la sombra de la tarjeta a través del atributo
android:elevation


En el XML:

PERFORMANCE
Tiempos de instalación mas altos:
Al utilizar AOT, la instalación de las aplicaciones lleva mayor tiempo, causando ciertas demoras en el proceso de deploys sucesivos.
Compatibilidad:
Se debe tener en cuenta que la aplicación a migrar a ART este optimizada para la misma correctamente y efectuar comparaciones
SOMBRAS
ANIMACIONES
Android L trae nuevas APIs que permiten crear animaciones personalizadas para las respuestas táctiles sobre controles de UI, cambios de estado de una view y transiciones entre activities.

Reveal Effect:
Está animacion permite revelar u ocultar vistas con un efecto de una máscara circula creciente



ANIMACIONES
Para aplicar el efecto se necesita establecer el centro de la vista y su ancho para establecer el radio de la máscara final (circulo que revela por completo la vista). Luego creamos un objeto de
ValueAnimator
y utilizando el método
createCricularReveal
, de la clase
ViewAnimationUtils
, le pasamos como parámetros la vista, las datos para determinar el centro de la misma, el radio de inicio (que debería ser 0 para revelar) y el radio final que obtuvimos del ancho de la vista y para finalizar, simplemente llamamos a
start()
.
ANIMACIONES
Activity Transitions
Ahora se pueden establecer transiciones de entrada y salida para los activities, las cuales establecen el modo en que los elementos de un activity entran en la pantalla o la dejan.
Hay 3 tipos de transiciones:
De entrada.
De Salida.
De elementos compartidos.

Para las transiciones de entrada y salida Android L provee 3 animaciones por defecto:
Explode
Slide
Fade

Y para los elementos compartidos:
changeBounds:
anima los cambios en los contornos de la vista.
changeClipBounds:
anima los cambios en los contornos.
changeTransform:
anima los cambios en el escalado y rotación de la vista.
moveImage:
anima los cambios en el tamaño y el tipo de escalado.

Las animaciones hay que activarlas desde el theme de nuestra app con una simple línea.
ANIMACIONES
Las animaciones hay que activarlas desde el theme de nuestra app con una simple línea.
TINTADO DE DRAWABLES
Ahora es posible definir bitmaps como máscaras y luego cambiar su color usando el atributo
android:tint
. Esto se hace aún más fácil con la introducción de la propiedad “theme” para los elementos de un XML, permitiendo ajustar un elemento específico a un theme diferente que tengamos creado.

NOTIFICACIONES
PRIORIDADES
CATEGORIAS
LAYOUT
PRIORIDADES
Gestión de Prioridad:
Dependiendo de la prioridad asignada, varia la forma de presentar la notificación



LIBRERIA PALETTE
La librera palette nos permite crear una paleta de colores a partir de un bitmap para luego utilizar en nuestra aplicacion. Android nos ofrece luego 6 colores de la paleta que selecciona utilizando el siguiente cirterio:


Vibrant: palette.getVibrantColor()
Vibrant dark: palette.getDarkVibrantColor()
Vibrant light: palette.getLightVibrantColor()
Muted: palette.getMutedColor()
Muted dark: palette.getDarkMutedColor()
Muted light: palette.getLightMutedColor()

CATEGORIAS
Categorias:
Al definir y testear notificaciones se debe tener en cuenta si cae en los tipos predefinidos, ya que eso nos delimita su rankeo y filtrado de decisiones
Agrupamiento:
En vez de generar una nueva notificacion, se debe contemplar agruparlas por tipos y mostrarlas de manera tal que el usuario distinga rapidamente el numero y tipo.
LIBRERIA PALETTE
Creación de una palette
LAYOUT

DON'T DO



BARRA DE NOTIFICACIONES
Las notificaciones deben ser transparentes respetando el material design, a modo de iconos en blanco focalizando el minimalismo y la fácil interpretación
LOCKSCREEN
A TENER EN CUENTA
VISIBILITY_PRIVATE.
Muestra informacion basica, como el icono de la aplicacion, pero oculta detalles.
VISIBILITY_PUBLIC.
Muestra todo el contenido de la notificacion.
VISIBILITY_SECRET.
No se muestra nada en lockscreen

Ringtone
,
MediaPlayer
, or
Vibrator
deben reemplazarse por
Notification.Builder


Verificar el comportamiento de las heads-up notifications.

Cuando el usuario tiene una Activity full Screen
Si las notificaciones tienen prioridad alta y utilizan Sonidos o Vibraciones.
View Shadows:
Los Views ahora tienen una propiedad Z, que no solo permite establecer el tamaño de la sombra sino que a la vez funciona de índice para establecer qué View se muestra por encima de los demás. Mientras mayor sea el valor de Z más grande será la sombra y más arriba aparecerá el elemento.




Las sombras se establecen seteando la elevación de las mismas, usando la propiedad
android:elevation
en el XML o
View.setElevation.
Hay que tener en cuenta que la sombra se aplica sobre el background de la vista.

AUTOMATIZACION Y ACESSIBILIDAD
REDIMENSION
Posibilidad de redimensionar las aplicaciones desde un 50% hasta un 75% de la pantalla dependiendo de la necesidad en un momento dado presentan posibilidades de analizar la reacción de la aplicación a testear ante este cambio







NUEVOS METODOS PARA CAPTURA DE ESTADISTICAS
POSIBILIDAD DE EJECUTAR COMANDOS SHELL SIN ADB
MEJORA DE APIs DE ACCESIBILIDAD
REEMPLAZO DE API PARA ACCIONES
MISC
POWER EFFIENCY
MULTIMEDIA
CAMERA API
MEDIA PLAYBACK CONTROL
Crear propias
media controller
para reemplazar
RemoteControlClient.

Crear
Rich Notifications
para controlar reproduccion de medios.
METODOS PARA CAPTURA DE ESTADISTICAS
android.app.UiAutomation.getWindowAnimationFrameStats() y android.app.UiAutomation.getWindowContentFrameStats() nos permiten capturar estadísticas para las animaciones de las ventanas y el contenido.
EJECUCION DE COMANDOS SHELL
Posibilidad de ejecutar comandos de shell utilizando un método agregado. Este comando es similar a correr ADB desde una PC conectada a un dispositivo.
MULTIPLE NETWORK
CONNECTIONS
BLUETOOTH BROADCASTING
MEJORAS EN NFC
WIRELESS &
CONNECTIVITY
android.app.UiAutomation.executeShellCommand() permite ejecutar comandos utiles para comunicarse con el dispositivo o emulador sin necesidad de montar un ADB
SCHEDULING JOBS
DEVELOPER TOOLS
MEJORA DE APIs DE ACCESIBILIDAD
Permite ejecutar tareas programadas mas tarde o bajo ciertas condiciones.

Se puede tener las condiciones de:
El dispositivo esta cargando
El dispositivo esta en una red wifi
El sistema considera que el dispositivo esta en reposo
Finalizar dentro de un periodo de tiempo

Los servicios de accesibilidad y testeo que utilizan las APIs de accesibilidad (como uiautomator) ofrecen mas información acerca de la interacción
REEMPLAZO DE API PARA ACCIONES
Se puede utilizar el nuevo método android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction para definir acciones standard o personalizadas a efectuar en un AccessibilityNodeInfo. La nueva clase AccessibilityAction reemplaza a las acciones relacionadas a APIs previamente encontradas en AccessibilityNodeInfo
El comando dumpsys batterystats permite obtener datos estadisticos de la app y generales del consumo de bateria.

Battery Historian
Se encuentra dentro de los tools del sdk y permite un informe en HTML del consumo de bateria por recurso.
Permite mayor flexibilidad sobre las caracteristicas del hardware.
Principales Cambios:
Captura full resolution a la velocidad que el hardware permite.
Burst mode, Digital Negative Format, HDR+
Modo DNG

MULTIPLE NETWORK
Permite a la aplicacion escanear en busca de nuevas redes con caracteristicas especiales, y solicitar conexion a ellas.
BLUETOOTH BROADCASTING
En Android 4.4. se introdujo
Bluetooth Low Energy (BLE).
Permite buscar e intereactuar con dispositivos BLE cercanos.
Permite actuar como dispositivo BLE.
MEJORAS EN NFC
Android Bean disponible en share menu.
Permite la creaccion de etiquetas NFC a traves de
android.nfc.NdefRecord.createTextRecord()
Se puede registrar la aplicacion como NFC, por ejemplo para emular un medio de pago
MEJORAS EN NFC
Full transcript