jueves, 27 de febrero de 2014

Comenzando con Phonegap/Cordova

Comenzar con PhoneGap


Introducción.

PhoneGap en pocas palabras es un framework para el desarrollo de aplicaciones móviles que posibilita a los desarrolladores a que implementen sus proyectos utilizando las tecnologías estándar de web: HTML5, CSS3 y Javascript, y este las convierte a aplicaciones híbridas, es decir, aplicaciones nativas de las diferentes plataformas móviles existentes que tienen acceso a gran parte del API nativo.
Esto lo logra empaquetando la aplicación web original con un navegador basado en webkit para desplegarla como si fuera una aplicación verdaderamente nativa.
Actualmente este framework soporta seis de las principales plataformas móviles del mercado: iOS, Android, Blackberry, PalmOS, Windows Mobile y Symbian.  Para mas información acerca del estado actual del soporte en cada una de estas plataformas consultar las características soportadas.
Existen otros frameworks similares a este entre los que se destacan Appcelerator TitaniumMobl y Sencha Touch de los cuales espero estar escribiendo mas adelante.
Ahora, veremos el proceso de instalación de PhoneGap, la creación de un proyecto base para el desarrollo con este framework y la elaboración de un ejemplo simple.

Instalar PhoneGap.

Descargar la última versión disponible del framework desde la siguiente ubicación.
Acá se utilizará la versión 0.9.5.1 que corresponde con la primera que yo usè, para esta fecha, año 2014 ya tenemos la version 2.9.1 super estable. 
$ wget http://phonegap.googlecode.com/files/phonegap-0.9.5.1.zip
Se descomprime el paquete recién descargado y se mueve a su ubicación final.
$ unzip phonegap-0.9.5.1.zip
$ mkdir ~/phonegap
$ mv phonegap-0.9.5.1 ~/phonegap/0.9.5.1

Crear un proyecto Android

A continuación se relacionan los pasos que se deben realizar para crear un proyecto PhoneGap para Android utilizando Eclipse y el plugin ADT instalados anteriormente.
Iniciar Eclipse y crear un nuevo proyecto a través del menú File > New > Android Project.
Crear un nuevo proyecto Android
Crear un nuevo proyecto Android
En el diálogo de información del proyecto a crearse especificar al menos los siguientes campos y presione el botónFinish para continuar.
  1. Nombre del proyecto (project name).
  2. API de Android a utilizarse (build target).  En este caso se utilizará el API 2.2. Podes usar API 17 tranquilamente.
  3. Nombre de la aplicación (application name).
  4. Crear una actividad (create activity).
Información básica del proyecto Android
Información básica del proyecto Android
En el Explorador de Paquetes (package explorer)  de Eclipse crear bajo el proyecto una carpeta /assets/www y otra/libs.
Copiar en la carpeta /assets/www el archivo phonegap.0.9.5.1.js y copiar en /libs el archivophonegap.0.9.5.1.jar.  Ambos archivos se encuentran bajo el directorio ~/phonegap/0.9.5.1/Android creado durante el paso de instalación anterior.
Estructura del proyecto Android
Estructura del proyecto Android
Hacer clic derecho sobre el directorio /libs y seleccionar el menú Build Path > Configure Build Path… Allí en la pestaña Libraries agregue la referencia a /libs/phonegap.0.9.5.1.jar presionando el botón Add JARs…
Agregar al proyecto la referencia al JAR de PhoneGap.
Agregar al proyecto la referencia al JAR de PhoneGap.
Realizar las siguientes modificaciones al código fuente de la actividad.  Este archivo se ubica bajo la carpeta /src del proyecto (/src/com.jimezam.phonegap.demo/App.java en este caso).
  1. Reemplazar la línea 3 (import android.app.Activity;) con la siguiente: import com.phonegap.*;
  2. En la línea 6 cambiar la superclase de App de Activity a DroidGap.
  3. Reemplazar la línea 11 (setContentView(R.layout.main);) con la siguiente:super.loadUrl(“file:///android_asset/www/index.html”);
Modificaciones a la actividad inicial.
Modificaciones a la actividad inicial.
Hacer clic derecho sobre el archivo AndroidManifest.xml y seleccionar el menú Open With… > Text Editor.  A este documento realizar las siguientes modificaciones.
1. Agregar el siguiente texto entre la apertura de la etiqueta <manifest> y la apertura de la etiqueta <application>.
<supports-screens
android:largeScreens=”true”
android:normalScreens=”true”
android:smallScreens=”true”
android:resizeable=”true”
android:anyDensity=”true”
/>
<uses-permission android:name=”android.permission.CAMERA” />
<uses-permission android:name=”android.permission.VIBRATE” />
<uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION” />
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” />
<uses-permission android:name=”android.permission.ACCESS_LOCATION_EXTRA_COMMANDS” />
<uses-permission android:name=”android.permission.READ_PHONE_STATE” />
<uses-permission android:name=”android.permission.INTERNET” />
<uses-permission android:name=”android.permission.RECEIVE_SMS” />
<uses-permission android:name=”android.permission.RECORD_AUDIO” />
<uses-permission android:name=”android.permission.MODIFY_AUDIO_SETTINGS” />
<uses-permission android:name=”android.permission.READ_CONTACTS” />
<uses-permission android:name=”android.permission.WRITE_CONTACTS” />
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />
2. Agregar el siguiente atributo a la etiqueta <activity>.
android:configChanges=”orientation|keyboardHidden”
Modificaciones al documento AndroidManifest.xml.
Modificaciones al documento AndroidManifest.xml.
Finalmente crear el archivo /assets/www/index.html con el código fuente para la demostración.
<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap demostration with Android</title>
<script type=”text/javascript” charset=”utf-8″ src=”phonegap.js”></script>
</head>
<body>
<h1>Hello Android’s World with PhoneGap</h1>
</body>
</html>

Ejecutar el proyecto en el emulador.

Seleccionar el menú Run > Run As > Android Application.
Ejecutar como aplicación Android.
Ejecutar como aplicación Android.
Estos son un par de ejemplos de aplicaciones web simples ejecutándose con PhoneGap en el emulador de Android.
Hola Mundo web con Android
Hola Mundo web con Android
The Simple List 0.1
The Simple List 0.1

miércoles, 26 de febrero de 2014

Android ¿NATIVO, WEB o HÍBRIDO?

APLICACIONES MÓVILES: 

El desarrollo de aplicaciones android crece cada día: al más personas contar con un dispositivo móvil y descubrir las bondades de tener tecnología al alcance de sus dedos, más personas vuelcan sus miradas a desarrollar nuevas aplicaciones que puedan utilizarse dentro de estos dispositivos, para así llegar a más consumidores.
Nosotros, como desarrolladores, debemos orientar a nuestros clientes a seleccionar de manera adecuada que rumbo tomar en su siguiente aplicación, dentro de las tres opciones disponibles:
  • Aplicaciones web optimizadas para móviles
  • Aplicaciones móviles nativas
  • Aplicaciones híbridas

Facebook Movil vs. Facebook Web
En este artículo, explicaremos un poco la diferencia entre cada una de estas variantes de desarrollo móvil y orientaremos un poco a cómo seleccionar cual te beneficia para ese proyecto que tienes en mente.

DESARROLLO MÓVIL WEB Y DESARROLLO MÓVIL NATIVO

Para tratar de comparar ambos, debemos definir primero cada uno de ellos:

DESARROLLO MÓVIL WEB

El desarrollo móvil web es el desarrollo de aplicaciones web regulares, pero optimizadas para ser visualizadas desde un dispositivo móvil o tablet. Por definición, estas aplicaciones serán accedidas utilizando el navegador que viene por defecto dentro de los dispositivos: ya sea Safari (o algún otro) en iPhone o iPad y digamos Dolphin o Chrome (entre otros) para Android.

Características de aplicaciones móviles web

  1. Serán accedidas desde un navegador desde el teléfono.
  2. Para todos los dispositivos se desplegará casi que de la misma forma.
  3. Es prácticamente lo mismo que desarrollar cualquier aplicación o sitio web: utilizas HTML, CSS y JavaScript.
Ejemplos de aplicaciones móviles web: Facebook Móvil, Linked In Touch, Panagamers — Visto desde un móvil, entre otros.

DESARROLLO MÓVIL NATIVO

Por otra parte, el desarrollo móvil nativo es el desarrollo de aplicaciones que serán instaladas en el sistema de archivos de cada dispositivo y serán distribuídas por los mercados de aplicaciones móviles, como el AppStore (iOS) o el Play Market (Android).

Características de las aplicaciones móviles nativas

  1. Serán descargadas desde el mercado de aplicaciones para el sistema operativo: Play Market o el AppStore.
  2. Es una aplicación distinta por sistema operativo: una para Android y otra para iOS (y en muchos casos una para iPhone y otra para iPad).
  3. Se desarrollan con lenguajes como Java (Android) u Objective-C (iOS), pero hay alternativas como Appcelerator que permiten desarrollarlas utilizando JavaScript puro, para ambas plataformas.
Ejemplos de aplicaciones nativas: Foursquare, Camera+, Instagram, CarteleraPanama.

DESARROLLO MÓVIL WEB VS. DESARROLLO MÓVIL NATIVO

DESARROLLO WEB MÓVIL

Ventajas

  1. Compatibilidad: Se reutiliza casi en un 100% el mismo código fuente para todos los sistemas operativos orientados a móviles, así se tiene que dar mantenimiento sólo a una versión.
  2. Rango de usuarios: Se puede llegar a más tipos de dispositivos: no sólo a Android y iOS, sino que puede llegarse hasta el menos común, como Bada (Samsung).
  3. Fácil uso: No hace falta descargar nada, sólo con acceder a una URL los usuarios podrán utilizar tu aplicación.
  4. Actualizado siempre: Las actualizaciones llegan de inmediato, no debes esperar una semana para que el AppStore apruebe tu nueva actualización.
  5. Más sencillo y rápido de llevar a cabo en muchas veces: muchas veces, es mucho más fácil desarrollar y diseñar dentro de un browser utilizando HTML, CSS y JavaScript que hacer lo mismo en Java, Objective-C o JavaScript (Appcelerator, Sencha). Posicionar elementos, estilizarlos y ciertas flexibilidades son posibles en minutos con tecnologías móviles.

Desventajas

  1. Olvídate de utilizar la cámara y otros componentes nativos (al menos por ahora): Con aplicaciones web nativas, al ser accedidas desde el navegador, no tienes disponibilidad de ciertos componentes y funcionalidades nativas del teléfono, entre ellos la cámara.
  2. Cross-Browser Support versión 2.0: Antes te preocupaba Internet Explorer 6, ahora te preocupan otros tantos, como el pésimo soporte a los estándares en BlackBerry 4 y 5 (la mayoría en Panamá), lo que trae mayores costos de desarrollo en muchos casos.
  3. Posibilidad de usarla offline (en algunos): Tienes esta aplicación en mente que necesitas que se puedan utilizar en cualquier momento. Olvídate del "offline mode" cuando estés desarrollando con web. Esto no aplica para iOS y otros, ya que Safari implementa Web Storage de HTML5 y Offline Application Cache.

DESARROLLO MÓVIL NATIVO

Ventajas

  1. Posibilidad de utilizar funcionalidades nativas: siempre puedes utilizar funcionalidades nativas, como la cámara, el acelerómetro, etc.
  2. Nuevas alternativas para desarrollar multiplataforma: Aún cuando lo regular es desarrollar estas aplicaciones utilizando las herramientas oficiales (como el Android SDK y Java en Android), han surgido varias nuevas tecnologías para llegar a varios dispositivos con casi el mismo código fuente, como Titanium Appcelerator.
  3. Performance: Típicamente llegan a desempeñarse mejor que las aplicaciones web.
  4. Hay un "market" para estas aplicaciones: Las personas pueden encontrar tu aplicación utilizando el AppStore o el Play Market. n cualquiera de los casos, estas aplicaciones pueden ser puestas a la venta.
  5. Modo offline: Tu aplicación puede utilizarse sin necesidad de una conexión a internet.

Desventajas

  1. Típicamente son más costosas de llevar a cabo: Por lo general, son más costosas de llevar a cabo, ya que se necesita invetir mucho más tiempo.
  2. Mayores costos de mantenimiento: De igual forma, mantener varias versiones de la aplicación es costoso.
  3. Actualizaciones y aprobaciones: Poner una aplicación en el AppStore es tedioso, puede llevar hasta más de una semana. De igual forma, si tienes una nueva funcionalidad o descubriste un bug que quieres arreglar, debes esperar otra semana para que los chicos de Apple aprueben tus cambios.
  4. Aún cuando hay opciones como Appcelerator, no llegas a todos: Appcelerator, por ejemplo, permite desarrollar para Android, iPhone, iPad y móvil-web (nuevo). ¿Qué pasa con tus usuarios de Blackberry, Symbian o Bada (si es que hay alguno)? Segúramente tendrás que hacer una versión alternativa web para ellos.

APLICACIONES HÍBRIDAS: LO MEJOR DE LOS DOS MUNDOS.

Luego de leer el artículo, pensarás: y ¿por qué no hacer una mezcla de ambas?. Esto es lo que conocemos como aplicaciones móviles híbridas, que se han hecho famosas gracias a Phonegap.
La idea es fácil: utilizar el desarrollo nativo cuando es mejor o es necesario (para utilizar la cámara, por ejemplo), pero utilizar tecnologías web y el desarrollo web cuando es más práctico (por ejemplo en interfaces más complejas).
Un maestro haciendo esto es Linkedin, quien en la última versión de su aplicación móvil decidió hacerla híbrida para iOS, pero nativa en Android:
  • Todas las listas infinitas en la aplicación son nativas.
  • Todas las ventanas son nativas, estas funcionan como contenedores de vistas web.
  • Todas las páginas que son detalles con información son JavaScript y HTML, por su fácil desarrollo.
Cuando las vistas son vistas web, se utiliza una ventana (un Web View) para mostrar el contenido o la página web. Así, nativo sólo es el contenedor o wrapper de la aplicación.
Este es un enfoque muy interesante que hemos estado llevando a cabo en varios nuevos proyectos. Para todas las vistas que representen gran complejidad y necesiten mayor flexibilidad utilizamos directamente HTML rodeada de una ventana nativa (para poner el botón de back, por ejemplo). También lo utilizamos para aquellas ventanas cuyo contenido seguramente cambiará muy a menudo, por ejemplo si es un contenido que cambia cada mes, no queremos sacar una nueva versión cada mes sólo para actualizar dicho contenido.
Por el otro lado, todas las ventanas que necesiten funcionalidad nativa del teléfono, como la cámara o detalles que queremos guardar en la aplicación, utilizamos componentes nativos.
Otro caso interesante de aplicaciones híbrida es Instagram. En Instagram utilizan nativo para tomar y publicar la fotografía, pero web para desplegar las fotografías y tu perfil. Esto permite que la aplicación pueda ser accedida fácilmente sin conexión a internet para editar y tomar una fotografía, pero hace fácil a los desarrolladores mejorar la lista de fotografías sin sacar una nueva versión (ya que tendrían solamente que trabajar en su servidor.
Si no tienes conexión la fotografía queda en un queue para ser subidas cuando vuelva tu conexión.

Instagram
Algunas de las herramientas más utilizadas hoy en día para crear aplicaciones híbridas son:
  • Phonegap: Quien permite realizar aplicaciones con HTML5, CSS3 y JavaScript, pero que serán empaquetadas como aplicaciones nativas. Seguramente si vas a utilizar Phonegap necesitarás ojearSencha Touch o jQuery Mobile para la interfaz.
  • Trigger.io: Básicamente, casi igual que Phonegap. Ellos se adjudican ser 5 veces más rápidos que Phonegap.
  • Titanium Appcelerator: Utilizando Web Views para embeber un navegador web dentro de alguna ventana nativa.
  • O hasta Java (+ Android SDK) u Objective-C (+ Xcode), utilizando vistas web embebidas en la aplicación.

CONCLUSIÓN Y CUAL USAR EN MI PRÓXIMO PROYECTO

Llegado este punto surge una pregunta: ¿entonces cuál usar?. La respuesta es simple: depende de tus necesidades:
  • Escoge móvil web si: quieres llegar a muchos dispositivos (Blackberry, Symbian, Android, iPhone) rápidamente, no quieres gastar mucho, tu aplicación necesita siempre conectividad a internet, no necesitas más que consumir recursos y no crearlos, eres un blog o un sitio web sencillo, entre otros.Ejemplo: Pixmat Studios tiene una versión optimizada para móvil, sin necesidad de una aplicación nativa.
  • Escoge nativo móvil (o híbrido) si: tu aplicación interactúa con funcionalidad nativa (el acelerómetro o la cámara, por ejemplo), vas a llegar a pocos dispositivos (por ejemplo Android y iPhone solamente), necesitas que tu aplicación pueda utilizarse normalmente sin conexión, quieres monetizar tu aplicación vendiéndola, entre otras. Ejemplo: Instagram, quienes necesitan funcionalidad nativa (la cámara y posición).
  • Desarrolla ambas si: necesitas todas las anteriores y el dinero no es un problema. Ejemplo:Facebook mantiene tanto una versión móvil como una versión nativa para Android, Windows Phone, Blackberry, iPhone y iPad. Idealmente es la opción a seguir, pero muchas veces no contamos ni con el equipo necesario de desarrolladores ni el dinero.
Tomando en cuenta estos puntos podrías fácilmente tomar una decisión para tu próxima aplicación. Mi recomendación es que bajes más aplicaciones parecidas a las que tienes en mente y las analices (puedes hasta utilizar un Proxy para ver que renderizan si no estás seguro).
Es un excelente resumen ese, gracias a la gente de http://www.pixmatstudios.com/

martes, 25 de febrero de 2014

Se acabó la fiesta .com.ar

La Dirección Nacional del Registro de Dominios de Internet o NIC.ar (por Network Information Center) está renovando su sistema de gestión y asignación. Según adelantó Gabriel Brenta, director de esta cartera que depende de la Secretaría Legal y Técnica, a partir del 5 de marzo, para obtener una dirección Internet habrá que pagar un costo “menor a los 200 pesos anuales”. La finalidad de esta medida es lograr un control de las páginas web que se registran, para reducir el accionar de los “ciberocupas”, aquellos que especulan inscribiendo nombres de marcas o famosos.
Hasta ahora, tramitar y tener un dominio de Internet que terminara en .com.ar no tenía costo. Pero en 10 días más dejará de ser gratuito.
Argentina era uno de los pocos países del mundo que no arancelaba el servicio. El pago afectará, en principio, a quienes soliciten registrar un nuevo dominio, pero también comenzará a regir para los 3 millones de usuarios que ya poseen uno y deben renovar sus inscripciones anualmente.
La implementación del cobro de una tarifa para este tipo de registro comenzará a funcionar en l a primera semana de marzo, una vez que la dependencia oficial termine de pulir los detalles de la resolución correspondiente y su publicación en el Boletín Oficial.
“La razón por la que salimos de la gratuidad es por la ciberocupación. Se trató también de un pedido de toda la comunidad de diseñadores y emprendedores quienes estaban necesitando que los ayudemos de esta manera, para no estar atados a que sus próximos clientes no puedan utilizar un dominio porque lo tenía otro”, explicó Brenta.
La proliferación de estos ocupantes virtuales es, según el organismo, resultado de que el registro de dominios en Argentina era gratuito y las únicas limitaciones eran que el nombre estuviera disponible, con un tope máximo de 200 dominios por usuario. Los dominios de Argentina son los segundos más usados en la región de Latinoamérica y el Caribe.
Dispuesto a avanzar hasta el límite de lo posible, Brenta sostuvo que Nic.ar toma reclamos originados en este tipo de conflictos e inicia un proceso administrativo que puede derivar en el otorgamiento del sitio a quien, por cuestiones de identidad o índole comercial, demuestre su legitimidad. También, se verifica la identidad de aquellos que inicia el trámite de solicitud.
La Dirección también impulsa el emplazamiento de otras herramientas de seguridad, como la actualización permanente de la base de datos, la tramitación de denuncias por datos falsos y acciones inmediatas ante denuncias de pornografía infantil o phishing .
Originalmente, el Nic se encontraba en la órbita del Ministerio de Relaciones Exteriores, hasta que la dependencia pasó a ocupar su actual lugar en el organigrama de la Secretaría Legal y Técnica conducida por Carlos Zannini. Allí, según Brenta, la Dirección tomó un lugar más estratégico.
Para acceder una mayor cantidad de público, la Dirección Nacional del Registro inauguró nuevos canales de comunicación en varias redes sociales como es el caso de Facebook, Twitter, Google+, LinkedIn, sin pasar por alto a YouTube. Históricamente, Nic.ar atendía las solicitudes exclusivamente por teléfono o e-mail.

10 Caracteristicas de KitKat 4.4 , desde "El Android Libre".

Gente, a continuacion les copio un lindo resumen de la gente de la web "El Android Libre". Espero que disfruten el articulo.
Fuente: http://www.elandroidelibre.com/2013/11/las-10-caracteristicas-de-android-4-4-kitkat-que-han-pasado-desapercibidas.html

******************************************************************
Android 4.4 ha venido cargado de funciones nuevas. Se nota que Google ha estado trabajando en convertir Android en un sistema compatible con todos los protocolos y tecnologías usadas hoy en día. Muchas de estas mejoras que vamos a hablar ahora suelen estar dedicadas a facilitar la vida de los programadores, pero al final del dia es el usuario el que ve como todo se hace más fácil.
Tenemos de todo, desde frameworks hasta soporte para varios sistemas que hasta ahora no funcionaban. Ninguna de estas características supone una revolución, pero algunos puede que las echaran de menos y por fin las tenemos.

SELinux en modo estricto

En Android 4.2 se introdujo una funcionalidad que dotaba de seguridad extra a nuestro androide. Básicamente un kernel que obligaba a las aplicaciones funcionar con el mínimo de privilegios necesarios para funcionar correctamente, minimizando el daño que pudiera hacer cualquier malware.  El cambio viene a que este kernel se encontraba en modo “permisivo” y ahora ha cambiado a “restringido“, por lo que aunque el malware entre en nuestro sistema no podrá cambiar sus privilegios aunque hubiera conseguido derechos de administración y por lo tanto su capacidad de afectar y corromper el sistema se encontrará más limitado.
Google también ha mejorado la criptografía de Android, implementando mejoras en la firma digital y en el cifrado de contraseñas. Kitkat aplica un VPN distinto por cada usuario del dispositivo, en el momento en que cambiemos de sesión tendremos un VPN propio, ligando la privacidad de la red a la sesión y no solo al dispositivo.

Acceso al almacenamiento mejorado

Con KitKat se proporciona otro framework que mejora el acceso al almacenamiento. Las aplicaciones podrán abrir su propio menú de archivos recientemente abiertos, ya sean archivos que se encuentran dentro de la memoria interna o de aquellos guardados en alguna nube como Drive o Dropbox.
box-storage-kitkat
El menú es mucho más atractivo que el navegador de archivos que hay en la actualidad. Los usuarios ya no tendremos que abrir una aplicación aparte para encontrar el archivo seleccionado, la propia aplicación nos aconsejará el archivo, parecido por ejemplo a lo que Adobe Reader ya nos ofrecía con los pdfs guardados.

Soporte para Bluetooth MAC

La tecnología del Bluetooth no ha sido muy utilizada hasta ahora, pero fijemonos en una cosa. Casi todos los dispositivos son compatibles con este estandard. En concreto Ford y BMW son compatibles con Bluetooth MAP, un protocolo básicamente pensado para comandar los paneles de dentro del coche. Hasta ahora las posibilidades eran bastante limitadas, pero con KitKat se amplían, comandos de voz, y mejoras en la intercompatibilidad con los servicios propietarios de las marcas de coches y los smartphones con Android. Sabemos que Google ha pensado en muchos dispositivos en el momento de crear la versión 4.4, este es un ejemplo de ello.

Dispositivos Buetooth podrán cambiar el volumen

El Bluetooth y la mayoría de sensores han recibido muchas mejoras, y una particularmente interesante es respecto a los auriculares o altavoces por bluetooth. Es un tema muy particular, pero que sin duda para aquellos que tengan uno de estos dispositivos será una funcionalidad que apreciarán enormemente. Se ha solucionado el tema del sonido independiente, ahora desde el auricular tendremos acceso al volumen del smartphone, y podremos sincronizarlo a través del bluetooth.
Los dispositivos con Google’s Bluedroid Bluetooth, muchos tienen una versión modificada, lo recibirán en cuanto actualicen a Android 4.4, por lo que los Nexus tendrán pronto una mejora en el apartado multimedia.

Wi-Fi TDLS

Son las siglas de Tunneled Direct Link Setup. Se trata de un protocolo de comunicación para transmitir datos y media entre dispositivos dentro de la misma red a través de un simple link. Ofreciendo el máximo rendimiento, sin reducir el de los otros, y seguridad. TVs, smartphones, camaras, impresoras, PCs, proyectores, y dispositivos para juegos por ejemplo, pueden conectarse para transmitir aplicaciones entre ellas.
wifi-tdls
Estará por ver si los desarrolladores aprovechan esto, pero parece ser una opción mucho mejor que lo típico de autoenviarse un archivo para leerlo desde otro dispositivo. Si la Wi-fi Alliance abraza esta tecnología podríamos empezar a finiquitar los problemas que solemos tener para compartir información dentro de la misma red.

WebView se pasa a Chromium

¿Sabéis esas aplicaciones que en realidad no lo son tal, sino que son en realidad un simple visor de su página web? Esas aplicaciones creadas por algunas empresas que lo único que hacen es crear una falsa sensación de aplicación cuando no son otra cosa que un seminavegador que lo único que hace es redirigirte a su web.
Ese shell estaba basado en el antiguo navegador stock de Android, pero ahora se basará en Chromium, que con el motor Javascript V8 mejorado conseguirá que esas aplicaciones funcionen mucho mejor pero, y aquí viene la cosa, les obligará a cumplir los estándares de HTML y CSS actuales. Esperemos que provoque que losdesarrolladores se pongan un poco las pilas en ese aspecto y aprovechen esto para renovar su app.

Framework para transiciones

Orientado completamente a mejorar el estilo de Kitkat se ha creado este framework para ayudar a los desarrolladores a conseguir transiciones más rápidas y dinámicas. Mientras que una pantalla fija es relativamente fácil de animar, los cambios entre una pantalla y otra son más complejas, más ahora que se han creado nuevos gestos para cambiar de menús. Con ello conseguiremos que nuestros smartphones se muestren fluidos a pesar de que algunos puedan tener dificultades para manejarse entre tantas ventanas.
El nuevo framework hace fácil invocar las transiciones, porque a través del TransitionManager tendremos una librería dedicada exclusivamente a ellas. Os dejamos un vídeo de Android Developers para verlo mejor.

Soporte para Infrarrojos

Varios fabricantes querían que Android soportara la transmisión de datos por infrarrojos, y poder crear un competir al bluetooth. Con Kitkat se ha añadido, pero únicamente para un único propósito; enviar una señal para ser utilizado como mando a distancia. Una lástima que no podamos también recibirla, por lo que no podremos tener una “conversación” entre dos dispositivos. El motivo de esto suponemos que será por cuestiones técnicas, es algo complejo, y las pocas personas que se dedicarán a esta parte del código no habrán logrado resultados lo suficientemente satisfactorios como para lanzarlo a los demás desarrolladores. El soporte de infrarrojos, por limitado que sea, es una buena noticia.

Impresión

Si queremos imprimir algo, una imagen, un texto o lo que sea, es muy posible que no estemos delante de nuestro ordenador. La movilidad que nos da el smartphone es crucial, y ahora que la gran mayoría de las impresoras funcionan por wifi es clave que la compatibilidad sea total.
impresion-kitkat
En Kitkat se introduce la capacidad para impresión de forma nativa, ya sea a través de Wifi o del Google Cloud Print. Podremos modificar los parámetros típicos, como el tipo de papel, la calidad, la cantidad de copias… cada vez la experiencia se parece más a la de un ordenador completo. Se proporcionarán APIS para que los desarrolladores hagan compatibles sus apps con el mínimo código nuevo posible.
El archivo será modificado y convertido a PDF y luego impreso, para garantizar que la impresión no salga distinta dependiendo del programa con el que se abra.

Optimizado el consumo de la señal digital

Cuando utilizamos nuestro Android para escuchar música de alta calidad, un podcast o alguna señal de audio durante un tiempo prologando notaremos que la batería disminuye alarmantemente. Esto es debido a que la decodificación del audio consume una gran cantidad de recursos. Para esto, Google ha creado un DSP (digital signal procesor) mejorado, capaz de aprovechar mejor la CPU y obteniendo un resultado de más de un 50% de duración.
audio-kitkat-dsp
El problema es que de momento la única CPU compatible es el Snapdragon 800 que monta el Nexus5, y suponemos que en alguna actualización via OTA los demás dispositivos basados en el chip de Qualcomm también reciban esta mejora. Todo lo que sea mejorar la batería es una buena noticia.
Son diez características distintas, cada una enfocada a un punto muy concreto. ¿Qué os parecen las herramientas que presenta Google? ¿Pensáis como nosotros que KitKat es una actualización con muchas posibilidades?
A veces no se da la importancia que merecen el gran trabajo que realizan esos desarrolladores que dedican horas y horas de sus vidas a conseguir que todo sea compatible, optimizado y funcional.

lunes, 24 de febrero de 2014

GeniMotion: Que gran emulador!


Quien no se cansò y renegò con el emulador que nos trae el SDK de Android? sì.... muchas veces fue util, para probar versiones nuevas del S.O. sin que tengamos que comprar un Android Device (Nexus 7, por ejemplo) .
Pero por ahi, nos dejaba a patas...por ahi, era muy lento....no?
Bueno, a continuacion, vamos a mostrar un Emulador que se ejecuta gracias a VirtualBox, más completo que el que nos trae el SDK de Android, y con muchas más opciones y características que lo hacen excelente para desarrolladores y usuarios convencionales.

Este emulador es multiplataforma y dispone de varias preconfiguraciones que emulan los dispositivos Nexus del mercado. También emula todo tipo de sensores para que los desarrolladores podamos trabajar sin mucha dificultad.
Rotar el device? es facil,desde un boton. 
Emular una posicion del GPS? tambien facil, desde otro boton.
Simular "baja bateria"? Puf....facilicimo desde un pop-up.
Necesitas trabajar sobre un Galaxy Note 3, Moto X, Nexus 4, 5, 7 o Nexus 10? no hay problema, tenes la opcion de crearte un emulador para cada uno de esos, y ya el GeniMotion te los da configurados. Un golazo!
Genimotion se puede descargar y utilizar de forma totalmente gratuita desde su página web. Dispone también de versiones de pago que agregan nuevas funciones al emulador, útiles para los usuarios que necesiten más características o utilicen Genimotion dentro de un entorno empresarial.

Debemos tener en cuenta que todos los aspectos del emulador son “emulados”, es decir, no se obtienen los mismos resultados al ejecutar un juego o una aplicación del que se obtendrían al ejecutarlo sobre un dispositivo real. Por ejemplo, los gráficos de los juegos 3D suelen ir muy lentos y se hace imposible jugar a ellos.
Pueden descargar Genymotion o comprar una licencia desde su página web principal. En RedesZone tienen un tutorial donde se explica el funcionamiento del emulador.
A usarlo! que lo disfruten!