miércoles, 31 de diciembre de 2014

Android Lollipop: Material Design y màs!

Material Design

Vision simplificada

¿Qué es “Material Design”? Material Design es un concepto y normas enfocadas al diseño en Android, pero también en la web y en cualquier plataforma.


Material Design agrega múltiples capas y sombras en la interfaz de Android para que el usuario pueda experimentar una mejor transición en las diferentes áreas, al igual que animaciones más fluidas, que podrán funcionar a 60 cuadros por segundo. En general, es una nueva interfaz mucho más minimalista de lo que habíamos visto en KitKat y en las anteriores versiones de Android. Hasta Android KitKat teníamos diseño Holo, a partir de ahora el nuevo estilo y la tendencia en Android es Material Design.


material_desing_example.png


También, se incluyen las transiciones entre actividades, que llevan al usuario de un estado a otro, utilizando un movimiento animado. Estas transiciones entre actividades, incluyen la capacidad de utilizar elementos visuales compartidos a través de las actividades.

Vision Tecnica


Material Design está basado en objetos materiales, es decir el concepto está pensado en "piezas colocadas en un espacio (lugar) y con un tiempo (movimiento) determinado".
Ahora es importante la profundidad, las superficies, los bordes, las sombras y los colores en los diseños, buscando mediante el uso objetos una mejor aproximación a la realidad, algo que en un mundo donde todo es táctil y virtual es difícil. Material Design intenta manejarse por las leyes de la física, donde las animaciones sean lógicas y por ejemplo los objetos se superpongan pero no puedan atravesarse el uno al otro.


Se busca un orden de los elementos y el uso de tipografías e imágenes claras,con colores llamativos para no perder el foco y un sentido del orden de la jerarquía muy marcada. Estas ideas ya se aplican en muchos diseños, pero en Material Design se han creado unas normas muy claras de cómo llevarlo a la práctica.


Para definir las jerarquías se tiene que trabajar sobre la luz y las sombras, ya que usando una iluminación realista tenemos indicios de cómo se comportará un elemento y en qué nivel se encuentra.
Es clave el manejo de luz y las sombras. Prestemos atención a la siguiente imagen, en donde el menú de la derecha además de tener un fondo más claro proyecta su sombra sobre el panel principal, dando la sensación de estar adelante.
menu_material_design.png

Las animaciones y movimiento son otros elemento claves, por ejemplo un objeto que parpadea significa que está llamando la atención, un elemento que se expande es que se acaba de abrir.
Todos estos movimientos se crean en una dirección determinada, que está explicado en la guía de Material Design. Al leer la guia oficial de desarrollo utilizando Material Design, es importante fijarse en el tiempo en que aparecen las cosas, primero imágenes y luego botones flotante.
También en la velocidad, ya que los elementos no aparecen de repente. Finalmente está la dirección desde la que aparecen ya que con ese movimiento se está indicando al usuario de donde proviene la información. Sin duda las animaciones son uno de los aspectos más llamativos de Material Design.


Para finalizar, dejamos un vídeo donde se muestran esas formas, esos colores y esos elementos tan característicos de Material Design. https://www.youtube.com/watch?v=Q8TXgCzxEnw


Mas informacion:




Notifications

Las notificaciones se siguen manejando de la misma forma que antes, el layout de las notificaciones al menos tiene que tener los siguientes elementos como mínimo: notification icon,  título, mensaje, timestamp(hora de recibida la notificación).
Se puede elegir el tamaño de la notificación de acuerdo a cuánta información quieras mostrar, y si la notificación ha sido marcado con el: flag  High, Max, o full-screen, aparecerá durante un tiempo en el margen superior del telefono.
Visibilidad privada:  Muestra información básica, como el icono de la notificación, pero oculta el contenido completo de la notificación.
Visibilidad pública: Muestra el contenido completo de la notificación.
Visibilidad secreta: No muestra más que el icono de la notificación en la barra de estado.
Cambios en las notificaciones para la nueva versión:
  • Las notificaciones han sufrido cambios consistentes con la nueva UI(material design).
  • Las notificaciones se encuentran disponibles en la pantalla del dispositivo cuando se encuentra bloqueado, mientras que el contenido sensible puede estar detrás.
  • Notificaciones de alta prioridad mientras el dispositivo está en uso con un nuevo formato llamado heads-up notifications. http://developer.android.com/design/patterns/notifications.html#correctly_set_and_manage_notification_priority
  • Cloud-synced notifications: Cerrar una notificación en uno de tus dispositivos Android la cierra en todos los demás también, es decir, si ves la notificación de mail en tu celular cuando vayas a tu tablet esta notificación ya no va estar y va estar marcada como leida.


Entonces, si tiene ya una aplicación en Google Play Store, para migrar,asegúrese de que sus notificaciones toman estos cambios que a continuación se presentan,en cuenta.
  • Material design style: Las Notificaciones se dibujan con texto oscuro encima de fondo blanco (o muy clarito) para que coincida con los nuevos widgets. Deben asegurarse de que todas las notificaciones se ven bien con el nuevo esquema de color. Si las notificaciones se ven mal, a corregirlas.

  • Sound and vibration: Si actualmente está agregando sonidos y vibraciones a las notificaciones mediante el uso de las clases de Ringtone, MediaPlayer o Vibrator, se debe eliminar este código de modo que el sistema puede presentar notificaciones correctamente. En su lugar, usar los métodos de la clase Notification.Builder para agregar sonidos y vibraciones. Algo importante, es que en Android 5.0, el flujo de volumen principal, tanto para teléfonos y como para tablet es ahora unificado, y es controlado por STREAM_RING or STREAM_NOTIFICATION.
  • Visibilidad en Lock screen: Por omisión, ahora las notificaciones aparecen en la “lock Screen”. Pero también, el usuario puede proteger información sensible, para que no sea expuesta. Esto es configurable.



Pueden buscar mas informacion en la web oficial:
http://developer.android.com/design/patterns/notifications.html

Battery

Dentro de los cambios para la nueva versión, el cálculo sobre el uso de la batería se ha mejorado para ser más preciso en cuanto a la carga de batería disponible. También se ha mejorado el uso de recursos del sistema en modo inactivo.

Mayor duración de la batería
  • Nuevo modo del telefono (battery saver) que te permite aumentar la duración de la batería hasta 90 minutos más.  Reduce la performance del procesador y deshabilita procesamiento de datos en background;  las apps de email y messaging se actualizan al abrirse, pero puede que también lo hagan si es que estan en memoria. Esta función puede ser habilitada manualmente o automáticamente cuando la batería alcanza el 15% remanente.
  • Muestra el tiempo que resta para alcanzar la carga máxima en el dispositivo
  • Tiempo estimado de la duración de la batería, este feature se encuentra en las settings de la batería.


Mas informacion:
Un nuevo comando dumpsys batterystats genera estadísticas de uso de la batería que se puede utilizar para comprender el uso de energía en todo el sistema y entender el impacto de su aplicación en la batería del dispositivo

Security

El nuevo android trae consigo nuevas formas de encriptar las contraseñas y patrones de seguridad, las nuevas formas de encriptar son más seguras y rápidas. Los nuevos dispositivos que vengan con Android 5 como base la encriptación será mandatoria para los dispositivos que se actualizaron esto sera una decision del usuario. Si el proceso de encriptación se llegara a ver interrumpido el dispositivo necesitará probablemente un restablecimiento de los datos de fábrica.

Vision Tecnica
  • Crea un método de encriptación mucho más rápido, el cual solo encripta usando bloques sobre la partición de datos para evitar que la primera vez que se carguen en memoria no tarde mucho tiempo. Solamente ext4 y f2fs actualmente soportan encriptación rápida.
  • Agrega un forceencrypt flag para encriptar en la primera vez que se carga.
  • Agrega soporte para patrones y encriptación sin password.
  • Agrega un módulo físico de almacenamiento de llaves de encriptación, es decir, que asigna recursos . https://source.android.com/devices/tech/encryption/#storing_the_encrypted_key

Advertencia: Dispositivos que fueron actualizados a Android 5.0 y encriptados,  pueden ser vueltos a su estado original a través restableciendo los datos de fábrica. Nuevos dispositivos encriptados Android 5.0 de fábrica no pueden ser retornados al estado no encriptado.


saludos y serà hasta la proxima entrada del blog.

martes, 30 de diciembre de 2014

Android Lollipop para Programadores


Se ha presentado el nuevo Android 5.0 Lollipop, y juntamente con las imágenes del sistema se ha liberado la versión 5.0 del SDK. Este nuevo SDK viene cargado de novedades y actualizaciones. Vamos a intentar hacer un rápido resumen de estos cambios y qué nuevas herramientas existen para los desarrolladores para empezar a trabajar con Lollipop.
El nuevo SDK incluye ART como runtime por defecto, deberemos testear las aplicaciones que desarrollemos para que funcionen con el nuevo runtime y en el caso de ser necesario adaptarlas.
Hay que tener en consideración que las APIs han variado desde la última preview siendo necesario revisar que nuestras apps funcionen correctamente, y en caso de que las apps hagan uso de notificaciones también será necesario adaptarlas al nuevo estilo y comportamiento del sistema.
El objetivo de estos post es presentarles a todos las novedades de esta última versión, con un speech informal y otro más tecnico, acompañado de los links para que puedan profundizar.

Cambios importantes de comportamiento

Si han publicado previamente una aplicación para Android, tenga en cuenta que su aplicación podría verse afectada por los cambios en Android 5.0.

Android Runtime (ART)
Android 4.4 introdujo un runtime experimental, ART. En 4.4 ART era opcional, y el runtime por defecto se mantuvo Dalvik. Con Android 5.0, ART es ahora runtime predeterminado.
Algunos de los nuevos features son:
  • Compilacion Ahead-of-time (AOT)
  • Mejoras en garbage collection (GC)
  • Mejoras en debugging support

La mayoría de las aplicaciones Android deben trabajar sin ningún tipo de cambios en el nuevo runtime ART. Sin embargo, algunas de las técnicas que trabajan en Dalvik no funcionan en ART. Para obtener información acerca de los temas más importantes, consulten en la web oficial de android developers sobre "Verificación de Comportamiento App en el Android Runtime (ART)".

Presten especial atención si desarrollaron con:
-Java Native Interface (JNI) para ejecutar C/C++ code.
-Usaron herramientas de desarrollo que generan código no estándar (por ejemplo, algunos ofuscadores).
-Usaron técnicas que son incompatibles con la compactación de la recolección de basura. (ART no implementa actualmente compactación GC, pero compactación GC está en desarrollo en el proyecto de código abierto Android).

¿Por qué este cambio? Básicamente querían mejorar el rendimiento de Android, y se llegó a la conclusión de que para mejorar el rendimiento, también debían pensar en cambiar la máquina virtual Dalvik que se venía utilizando.
Pero, ¿tanto cambio hay en el rendimiento? Si comparamos ART con su antecesora Dalvik, es más que notable la diferencia, evitandose pausas innecesarias.
Por ejemplo, podemos ver pruebas hechas en un Nexus 5:
Captura de pantalla 2014-06-25 a la(s) 18.45.27
Para mantener la compatibilidad con versiones anteriores, ART usa el mismo byte code de entrada que Dalvik, en los archivos .dex estándars como parte de los archivos APK, mientras que los archivos .odex se reemplazan con ejecutables de "Formato Ejecutable y Enlazable (ELF)".
Una vez que una aplicación se compila utilizando la tool dex2oat, es dirigido exclusivamente a partir del ejecutable ELF compilado.

Este enfoque elimina diversos gastos involucrados con compilación JIT, pero requiere tiempo adicional para la compilación cuando se instala una aplicación, y las aplicaciones ocupan más espacio de almacenamiento para almacenar el byte code compilado.



Soporte de 64-Bit en Android NDK
Android 5.0 introduce el soporte para sistemas de 64-bit. La mejora de 64 bits aumenta el espacio de direcciones y mejora el rendimiento, mientras que todavía de soporte a las aplicaciones de 32 bits existentes completamente.
El soporte de 64 bits también mejora el rendimiento de OpenSSL para la criptografía. Además, esta versión introduce nuevas API NDK media nativo, así como el soporte nativo de OpenGL ES (GLES) 3,1.
Binding to a Service
El método Context.bindService() ahora requiente un Intent explícito, y lanzará una excepción si usamos un Intent implícito. Para asegurarse que su aplicación es segura, utilice una Intent explícito al iniciar o vincular su Service, y no declaren Intent Filters para el servicio.
Chromium WebView
El release de Android 5.0 incluye la versión  de Chromium para los WebView basados en Chromium M37 release, agregando soporte para WebRTC, WebAudio, y WebGL. Entonces Android 5.0 cambia el comportamiento por defecto así:
Si el target es API level 21 superior:
-El sistema bloquea el contenido mixto y cookies de terceros de forma predeterminada. Para permitir contenido mixto y cookies de terceros, utilice el método  setMixedContentMode() y setAcceptThirdPartyCookies() respectivamente.
-Ahora, el sistema elige inteligentemente partes del documento HTML para dibujar. Este nuevo comportamiento predeterminado ayuda a reducir la huella de la memoria y aumentar el rendimiento. Si usted quiere hacer todo el documento a la vez, debe desactivar esta optimización llamando enableSlowWholeDocumentDraw().
Si el target es API level menor que 21:

-El sistema permite contenido mixto y cookies de terceros, y siempre renderiza el documento completo.

Luego continuaremos charlando sobre Material Design y un monton de otras mejoras en este gran sistema operativo mobile.

sábado, 9 de agosto de 2014

Play Store - Mejoras para el Developer

Google-Developers
Play Store apunta a mejorar la experiencia de usuario para los desarrolladores de Android, ahora en su blog oficial para Devs anuncian la Publishing API, ya disponible para todos los desarrolladores.
El sistema de alertas de la consola de desarrolladores, que ya se vio potenciado con avisos ante cambios importantes en las estadísticas (como instalaciones, puntuaciones, etc.), ahora agregaron también notificaciones por email, para que siempre estés al tanto de lo que ocurre con tus creaciones.
image03
Con el fin de que nunca dejes de mejorar tus Apps, ahora también aparecerán Optimization Tips, consejos que automáticamente irán mostrándose para mejorar tu aplicación cuando el sistema detecte que hay nuevas versiones de la API’s disponibles (como las de Maps o nuevas funciones para juegos a través de Play Games). En el caso de las estadísticas de ingresos, mejoran ofreciendo más información por usuario, pudiendo analizar los datos de los que han comprado tu producto.
revenue-stats
Si tu App o juego es muy exitosa, recibirás también muchas puntuaciones y comentarios en Play, tanto buenos como malos, así como otras sugerencias de los usuarios. En la consola de Google Play tendrás una nueva opción para exportar todos esos datos en masa, tienes más información aquí. Si estás probando versiones prematuras de la aplicación con algunos usuario, las estadísticas referentes a ellas también mejoran, pudiendo filtrar entre lanzamientos.
Los informes de errores internos de Apps mejoran, reuniendo los crasheos por condiciones similares y resumiendo la información relevante. Por último, una de las grandes novedades anunciadas era la integración de las aplicaciones instaladas en los resultados de búsqueda, esto hacía que, por ejemplo, si buscábamos una película y nos salía un resultado de IMDb, podíamos acceder directamente a la App (si ésta está instalada en el dispositvo.)
Por ello, finalmente han agregado la verificación de páginas webs en la Consola de Desarrolladores de Google Play, permitiendo que se pueda activar esa función de“deep-linking” en aplicaciones que hayan implementado el app indexing (info aquí). Con todo, son muchas las mejoras para desarrolladores, tienes toda la información en el blog oficial y en tu Consola.

jueves, 7 de agosto de 2014

Resumen de Google I/O 2014

A continuación voy a copiar el resumen de la Google IO 2014, que a realizado la gente de la web "El Android Libre".

Sundar Pichai hablando de números y la bomba L

La charla ha empezado fuerte, tras anunciar que ya habían 1000 millones de dispositivos Android activos, después ha anunciado Android One, un proyecto para mejorar el soporte de smartphones low-cost y acto seguido han mostrado en menos de cinco minutos una cantidad increíble de información, en forma de preview sobre Android L, la futura versión de Android que lo cambia todo.

Android L, un cambio radical

En Google han hecho bien. Y es que un cambio así disponible mañana mismo para todos sería una locura, un cambio tan radical que pocos usuarios podrían asimilar de un día para otro. Precisamente por eso muestran esta preview para que se hable durante un tiempo. Eso sí, ni 5.0 ni Lollipop. Tendremos que esperar a que a alguien se le escape. De momento sabemos que ART de base, un bonito diseño, Volta, modo ahorro batería y 64 bits.
android-l

Android Wear, TV y Auto

Con un Android no es suficiente. Móviles y tablets tampoco. Precisamente por eso lanzan Android TV, Android Wear y Android Auto, todos ellos totalmente conectados con los servicios de Google y una pinta impresionante. Sobre gadgets; Gear Live y LG G Watch disponibles hoy, Moto 360 tendrá que esperar.

Google Services, mejorando el ecosistema

Finalmente la conferencia ha llegado al punto más centrado en los desarrolladores, con las novedades sobre Google Play y demás servicios asociados. Unas novedades que en realidad serán lo más interesante en el día a día.
Fuente y más información Google I/O 2014 EAL

domingo, 3 de agosto de 2014

Android Wear Devices


Android Wear es el sistema operativo para Dispositivos Corporales (Wearables) basado en Android que Google presentó a la sociedad el 18 de marzo de 2014. El sistema en sí, está pensado para ser utilizado en Relojes Inteligentes (SmartWatches), Pulseras Inteligentes (WristBand), Anillos Inteligentes (SmartRings)

En el siguiente link podran ver un lindo resumen de la plataforma: https://www.youtube.com/watch?v=3SwggEDNvPQ
y aca podran observar un resumen de la plataforma con la opinion: https://www.youtube.com/watch?v=qdwSugXb0po

Android Wear, es el sistema operativo para dispositivos portables , es decir se trata de una versión de sistema operativo Android diseñada de
forma exclusiva para pulseras, relojes inteligentes y ese tipo de dispositivos.
¿Son programables esos dispositivos? ¡si! podemos descargarnos el Kit de desarrollo y mediante un emulador comenzar a desarrollar aplicaciones.
¿Ya existen dispositivos de este estilo? ¡si! ya hay varios fabricantes de dispositivos y de procesadores que están trabajando
en esto como Asus, Samsung, LG, Motorola, HTC, MIPS, Qualcomm, MediaTek, Broadcom, Intel, y Fossil.
Entonces, nos enfocamos en realizar aplicaciones para pequeños pero potentes dispositivos que se pueden llevar encima.
La tecnología vestible nos permite obtener información de utilidad cuando más la necesitamos, incluso antes de que la necesitemos.
Relojes, pulseras, lentes, camisetas... casi cualquier elemento de nuestra vida diaria puede incorporar tecnología.


Ventajas de tener aplicaciones para Wearable Devices
  1. Formar parte de la tecnología más puntera
  2. Creación de software que permita la interación en "primera persona" con el usuario
  3. Recoger de forma automática información acerca del usuario
  4. Permitir detectar posibles problemas de salud antes incluso de que la persona se de cuenta
  5. Mostrar todo tipo de información contextual al usuario

developer.android.com/wear es donde pueden comenzar a registrarse como Developers y bajarse el SDK para comenzar a programar.

•Los smartwatch  son accesorios que se sincronizan con nuestro smartphone Android y nos permiten recibir en su pequeña pantalla información relacionada con notificaciones (mensajes, correos,…), información sobre aplicaciones (nuestra sesión de entrenamiento si hablamos de una app deportiva) o incluso hacer fotografías o contestar a llamadas de forma inalámbrica si el smartwatch cuenta con el hardware necesario para ello.

•Equipados con Bluetooth y múltiples sensores, los smartwatch son un dispositivo que nos acompañarán en la muñeca para evitar tener que sacar el Smartphone si queremos consultar cosas básicas.


Conclusiónes
  A la larga cada uno debería sacar sus propias conclusiones, las que mejor se adapten a su equipo y metodología de trabajo y a la tipología de sus proyectos, pero siempre hay que tener un punto de partida sobre el que trabajar y evolucionar, espero que estas entradas del blog los ayuden a cimentar su punto de partida.

saludos,
Lic. Mariano Salvetti

salvetti.mariano@gmail.com