miércoles, 4 de septiembre de 2013

Android acapara 9 de cada 10 'smartphones' vendidos en España

El lanzamiento del iPhone 5S y del iPhone 5C previsto para la semana próxima (10 de septiembre) viene a completar una estrategia aparentemente de transición de la firma de la manzana. Apple mantiene una imagen de marca impoluta, pero las cifras del mercado avalan al sistema Android como la apuesta segura de la telefonía móvil en estos momentos. El anuncio esta semana de la compra de Nokia por parte de Microsoft es una brizna de esperanza para la reactivación de un mercado dominado por el sistema operativo del robotijo. Según datos de Worldpanel ComTech, la cuota de ventas de Android en España fue de un apabullante 89,9% del mercado entre mayo y julio. Apple se conforma con un 6,1% de los nuevos móviles, Windows se queda con un 1,8% y BlackBerry (que llegó a ser objeto de moda-culto entre jóvenes hace pocos años) se queda en un alarmante 0,7% del mercado.

Google presenta Android 4.4 KitKat

Google ha anunciado la nueva versión de su sistema operativo móvil. Se trata de la versión Android 4.4, de nombre KitKat, como la chocolatina de Nestle. La compañía presentó esta nueva versión este martes en una web que también repasa el resto de versiones del SO móvil de los de Mountain View.
Después del sandwich de helado y de las judías de gominolas, el equipo de Android se ha decantado por una de las chocolatinas más famosos del mercado, KitKat. La compañía estadounidense ha llegado a un acuerdo con Nestle para que su nueva versión de Android lleve el nombre de KitKat.
El jefe de Android, Sundair Pichai, ha anunciado el nuevo nombre de la versión a través de su cuenta de Twitter, a la vez que ha recordado que las activaciones de dispositivos Android ya han superado los 1.000 millones.
El gigante Google y la compañía agroalimentaria Nestlé han explicado el motivo de su colaboración en la nueva versión del sistema operativo. Ambas compañías coinciden en que ninguna de las partes estaba recibiendo dinero por usar el nombre y que simplemente han querido hacer algo "divertido e inesperado".

¿A qué sabe la Lime Pie?

En un principio esta nueva versión de Android iba a denominarse Lime Pie (pastel de lima) pero la compañía decidió cambiar en el último momento. Ambas compañías han explicado a la BBC el porqué de este cambio. Según afirma Google la elección de la chocolatina KitKat para su nueva versión de Android no tiene que ver con un acuerdo monetario entre ambas empresas.
"Nos dimos cuenta de que muy pocas personas saben realmente a qué sabe un pastel de limón. Uno de los aperitivos que tenemos en nuestra cocina para las horas nocturnas son KitKats Y alguien dijo: 'Oye, ¿por qué no llamamos a la versión KitKat?. Ni siquiera sabíamos qué compañía controlaba el nombre y pensamos que la elección sería difícil. Pero entonces decidimos que por qué no hacerlo y contactamos con la gente de Nestlé", asegura Lagerling.
En el caso de Nestlé, según asegura el jefe de marketing de Nestlé, Patrice Bula, no se decidieron a darle el "sí" a Google hasta una hora antes de iniciar las conversaciones para el acuerdo. Bula reconoce que hay riesgos involucrados, como por ejemplo, si el nuevo sistema operativo resulta ser particularmente vulnerable al 'malware', ya que podría causar daños colaterales a la marca KitKat.
"Cuando tratas de llevar una nueva forma de comunicación y perfilar una marca siempre tienes un mayor riesgo que si haces algo mucho más tradicional", confirma Bula.
Nuevas noticias llegan desde la Google Play Store, aunque no del todo buenas. Uno de los dispositivos estrella de la tienda y del gigante Google, el Nexus 4, está mundialmente agotado en su versión de 8 GB, y lo peor de todo... las existencias no se volverán a reponer. El Nexus 4 de 8 GB ha desaparecido del mercado para siempre. 

Hace solo unos días Google lanzaba unas importantísimas rebajas en su smartphone Nexus 4. Las Google Play Store del mundo comenzaban a vender el smartphone a 100 euros menos de su precio normal. Ahora, parece que este descuento ha hecho que la gente se lance a comprar el terminal co fabricado por LG y Google hasta agotar las existencias. 
Según afirma The Verge, aunque el modelo de 16 GB sigue estando disponible, la variante con menos memoria (8 GB) ha desaparecido completamente del mapa comercial pues no se volverán a fabricar. 
Este producto, que costaba 199 euros desde hace unos días, parecía uno de los predilectos por el público debido a sus especificaciones y su competitivo precio. 
Los que sigan pensando en el Nexus 4 como su opción, siempre podrán adquirir la variante con 16 GB de memoria interna, aunque es un poco más cara. Actualmente cuesta unos 249 euros en Google Play Store.


nexus4 agotado
En la Play Store americana, a la hora de intentar comprar un Nexus 4 de 8 GB sale un mensaje que dice: "Estamos fuera de existencias. Por favor inténtelo más tarde". / © Google Play Store. 


Las razones de Google

Incluso habiendo aumentado las ventas de la versión con menos memoria, Google ha liquidado este smartphone de su producción y de su tienda antes de lanzarse a la promoción y comercialización de la próxima generación de Nexus, el Nexus 5. 
Esta no es la primera vez que un producto tan demandado se queda fuera de stock, pero parece que ahora es para siempre. Particularmente en España, el Nexus 4 (8 GB) está agotado completamente, pero todavía quedan unidades en algunos mercados, aunque no por mucho tiempo. ¿Te has quedado sin un Nexus 4 de 8 GB?

Samsung Galaxy Note 10.1 (2014 Edition), toda la información del nuevo tablet Android de Samsung

Samsung ha provechado el IFA 2013 para renovar su tablet Galaxy Note 10.1, lanzando una nueva versión con nuevo diseño con botones físicos, mejor resolución de pantalla y mayor potencia respecto al modelo lanzado el pasado año.

Samsung Galaxy Note 10.1 (2014 Edition), especificaciones técnicas

El Samsung Galaxy Note 10.1 (2014 Edition) cuenta con una pantalla SLCD de 10,1 pulgadas con una resolución de 2560 × 1600 píxeles. Su versión WiFi y 3G lleva un procesador Exynos 5 Octa a 1,9 GHz y su versión LTE un procesador de cuatro núcleos a 2,3 GHz. Lleva 3GB RAM y 16, 32 o 64 GB de memoria interna dependiendo del modelo ampliables mediante tarjetas microSD de hasta 64 GB.
Tiene una cámara trasera de 8 megapíxeles con sensor BSI, con autoenfoque, flash de LED y disparo rápido, y una cámara frontal de 2 megapíxeles, también con sensor BSI.
El nuevo Samsung Galaxy Note 10.1 cuenta con WiFi N, AllShareCast, Bluetooth 4.0, GPS + GLONASS, acelerómetro, giroscopio y brújula. Sus dimensiones son de 243,1 × 171,4 × 7,9 mm, con un peso de 535 gramos en la versión WiFi y una batería de 8.220 mAh. Cuenta con Android 4.3 (Jelly Bean) con la personalización TouchWiz.
Samsung Galaxy Note 10.1

miércoles, 22 de mayo de 2013

Como crear una pantalla de preferencias (PrefenrenceActivity)

Es bastante común tener que crear en nuestra aplicación una pantalla de preferencias para que el usuario pueda configurar ciertos parámetros de la aplicación. Lo primero que se nos puede venir a la mente es crear un layout desde cero para poder cargar y guardar las configuraciones que deseemos, pero Google ha ideado un sistema bastante sencillo con el que poder crear una pantalla de configuración básica en pocos minutos.

Si nos fijamos en una pantalla cualquiera de configuración de Android nos puede venir a la mente algo parecido a lo siguiente:



En estas pantallas normalmente suelen aparecer checkbox, listas de selección, un texto editable...crear una pantalla de este tipo es bastante sencillo.

Una pantalla de preferencias está compuesta principalmente de dos componentes:
  • xml que contendrá la definición de la pantalla de configuración 
  • Actividad que herede de PreferenceActivity
En primer lugar vamos a crear un nuevo xml llamado preferencias.xml y lo situaremos dentro de /res/xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="preferencias_principal" >
   <PreferenceCategory android:title="Categoría 1">
     <CheckBoxPreference
          android:key="activo"
          android:summary="Subtitulo de la propiedad"
          android:title="Título de la propiedad" />
   </PreferenceCategory>
    <ListPreference
        android:defaultValue="1"
        android:entries="@arrays/descripciones"
        android:entryValues="@arrays/valores"
        android:key="lista"
        android:summary="Título de la propiedad"
        android:title="Subtitulo de la propiedad" />
 
    <EditTextPreference
        android:defaultValue="texto por defecto"
        android:key="texto"
        android:summary="Título de la propiedad"
        android:title="Subtitulo de la propiedad" />
</PreferenceScreen>

Vamos a analizar el xml para explicar los distintos tipos de propiedades que hemos añadido.

A nivel de estructura general podemos ver que todas las etiquetas deben estar dentro de una etiqueta <PreferenceScreen>

La siguiente etiqueta que nos encontramos es <PreferenceCategory> la cual nos permitirá agrupar una o varias propiedades poniendo un título a esta. En la imagen de ejemplo del principio del post podemos ver una (Personalización)

Vamos ya con las etiquetas de propiedades, la primera de ellas es <CheckBoxPreference> la cual nos mostrará un CheckBox el cual podremos marcar o desmarcar. Esta etiqueta tiene varios atributos que son comunes para todas las etiquetas, como son key (clave con la que se guardará el valor), title (texto principal de la propiedad) y summary (texto secundario, aparece debajo del título y con menor tamaño)

La segunda de las etiquetas que vamos a analizar es <ListPreference>. Esta etiqueta nos mostrará al pulsarla una lista de elementos para que podamos seleccionar uno de ellos.
Aparte de los atributos comunes antes explicados esta etiqueta añade dos propiedades muy importantes, que son "entries" y "entryValues". En la primera deberemos indicar un array con la lista de los literales de los elementos que componen el listado, mientras que en el segundo, debemos añadir la lista de valores asociados a estos.

El array debemos crearlo en un fichero xml que podemos situarlo en /res/values/arrays.xml
Dicho xml podría ser algo así:

<resources>
    <string-array name="descripciones">
      <item>Elemento A</item>
      <item>Elemento B</item>
      <item>Elemento C</item>
    </string-array>
    <string-array name="valores">
      <item>0</item>
      <item>1</item>
      <item>2</item>
    </string-array>
</resources>

Lo último que deberemos hacer es crear una actividad que controle la pantalla de preferencias. Esta actividad deberá extender de PreferenceActivity y añadir el xml que contiene la definición de la pantalla de propiedades.

public class Preferencias extends PreferenceActivity {

    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.preferencias);
    }
}

Ya solo quedaría dar de alta la actividad como normalmente hacemos en el fichero AndroidManifest.xml.

Espero que os haya servido de ayuda.

sábado, 18 de mayo de 2013

Como enviar parámetros de una Actividad a otra

Hace unos días veíamos como invocar a una actividad desde otra, en este tutorial vamos a ver como pasar parámetros desde la actividad origen a la destino, para por ejemplo indicar el identificador de una lista para enviárselo a una pantalla de detalle.

Por un lado cuando se invoque a la nueva actividad deberemos realizarlo de la siguiente manera:

       Intent intent = new Intent(this, MI_CLASE.class);
       intent.putExtra("nombre", "Droide Code");
       intent.putExtra("id", 10);
       intent.putExtra("activo", true); 

Como podemos ver lo único que tenemos que hacer es usar el método putExtra del intent para añadir la información que deseemos. El método está sobrecargado para poder añadir todo tipo de información (String, byte, int, long, boolean, etc)

En la Actividad destino podremos recuperar la información de la siguiente manera:

       Bundle extras = getIntent().getExtras();
       String s = extras.getString("nombre");
       int i = extras.getInt("id");
       boolean b = extras.getBoolean("activo");

Simplemente deberemos acceder al Intent con el método getIntent() y posteriormente al objeto Bundle que contiene los extras.


Devolver datos a la actividad origen

Otra posibilidad es devolver información desde la segunda actividad a la de origen cuando esta termine.

Para ello la invocación desde la actividad original deberemos hacerlo de la siguiente manera:

       startActivityForResult(intent, 1);
El segundo parámetro es opcional, e indica el requestCode o código de petición. Podremos enviar un código u otro para que la actividad destino se comporte de una manera determinada.

En la actividad origen tambien deberemos sobreescribir el método onActivityResult:


       @Override  
       protected void onActivityResult(int requestCode, int resultCode, Intent data){
             if (requestCode==1 && resultCode==RESULT_OK) {
                    //código a ejecutar...
             }
       }

Este método se ejecutará cuando la actividad destino finalice y recibirá el requestCode con el que se llamó y el resultado. De esta forma podremos realizar una u otra acción dependiendo del resultado obtenido.

Por último debemos incluir el siguiente código en la actividad destino para devolver el resultado que deseemos y finalizar la actividad:

       Intent intent = new Intent();
       setResult(RESULT_OK, intent);
       finish();

Deberemos instanciar un nuevo Intent y enviarlo junto con el resultado usando el método setResult(). Por último finalizaremos la actividad con finish()

Nota: en la intención que viaja desde la segunda actividad a la primera igualmente puede enviarse la información que deseemos usando el método putExtra.

viernes, 17 de mayo de 2013

Instalación Android Studio


En la anterior entrada de Droide Code hacíamos una breve descripción de Android Studio, el nuevo entorno de desarrollo de Google para Android. En el analizábamos las novedades que anunciaba Google sobre este nuevo IDE.

Hoy mismo lo he instalado no sin algún que otro problema que paso a describir:

  • Descargar el ejecutable del sitio oficial de Android developer. El instalador está disponible para Windows, Linux y Mac
  • Una vez tengamos el instalador y dependiendo de nuestro sistema operativo deberemos instalarlo al igual que cualquier otra aplicación.
  • Una vez instalado tuve un pequeño problema a intentar ejecutarlo, ya que pulsaba sobre el ejecutable y no ocurría nada. Esto se debía a que en el pc en el que instalé la aplicación no tenía configurada la variable de entorno JAVA_HOME y no mostraba ningún mensaje que describiera dicho error.
Para aseguraros de que es esto lo que os está ocurriendo podéis intentar iniciarlo a través del fichero  studio.bat (o studio.sh si estáis en Linux) de la carpeta “bin” que está situada en la ruta de instalación que hayáis seleccionado. Desde este ejecutable si se nos mostrará un mensaje indicando que puede que no tengamos configurado la variable JAVA_HOME.
Para configurar dicha variable deberemos dirigirnos a Panel del control -> Sistema -> Configuración avanzada del sistema. Y en la pestaña opciones avazadas -> variables de entorno. En esta pantalla deberemos añadir una nueva variable cuyo campo clave sea JAVA_HOME y cuyo valor sea la ruta donde tenéis instalado el JDK en mi caso: C:\Program Files\Java\jdk1.7.0_15
Nota: Es importante que sea un jdk y no un jre, y que este sea igual o superior a la 1.5

Una vez tengamos arrancada la aplicación nos aparecerá una pantalla de bienvenida en la que podremos seleccionar entre los proyectos más recientes, crear, importar o abrir nuevos proyectos, así como descargar proyectos de repositorios de Git, Mercurio o SVN. También podremos acceder a la configuración y la documentación de la aplicación.


Espero que os haya servido de ayuda, y estaré encantado de ayudar a todo aquél que lo necesite.