¿Un móvil con Windows Phone y Android?

Microsoft ha registrado, recientemente, una patente muy importante que podría cambiar la forma de la industria de teléfonos inteligentes. Leer más.

Las mejores aplicaciones de correo electrónico y e-mail en Android

Teniendo en cuenta que los teléfonos Android vienen con Gmail preinstalado, son pocos los que se lanzan a probar otras aplicaciones de correo. Leer más.

Android M: La nueva versión de Android podría presentarse el 28 de mayo

Google planea presentar su próxima versión de Android en el Google I/O, su evento anual de desarrolladores que tendrá lugar entre el 28 y el 29 de mayo. La información se ha dado a conocer a través de una filtración. Leer más.

Comienza la actualización a Android 5.1 Lollipop para el Moto X 2013 y Moto X 2014

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions. Leer más

Android para Principiantes

Si alguna vez has perdido una reunión o has olvidado un día importante por tener un buen lío entre calendarios y no quieres que pase más, has llegado al lugar indicado. Leer más.

13 junio 2015

Creando aplicación con Google Api y un mapa

Ahora vamos a intentar crear una aplicación android la cual tenga un mapa con alguna posición ya registrada, para esto necesitaremos dos cosas por un lado la librería de google maps que tiene android studio y por otro la API de Google Maps.

Una vez que creemos un nuevo proyecto e importemos la librería de google play services estaremos listos para empezar con la aplicación, en primer lugar necesitaremos crear la clave API de google ya que sino la tenemos no dejara usar el mapa.

Para ello tenemos que ir a google y buscar este link el cual nos llevara a una pantalla en la que nos pedirá crear un proyecto, aquí solo creamos el proyecto con el nombre de la aplicación y algunos datos, una vez hecho os saldrá esta pantalla (Imagen 1).



Aquí tendremos que ir a la parte izquierda y darle click al apartado APIs y autentificación, se abrirá la pestaña y daremos click a la pestaña credenciales y nos aparecerán una nueva pantalla (Imagen 2).



Le daremos click a la opción de la clave publica y nos saldrá una ventana con distintas opciones (Imagen 3), en ella se muestras las distintas claves que podemos crear aunque nosotros solo vamos a usar la clase para android así que le damos click.


Al darle click saldrá otra nueva ventana en la que nos pedirá la huella digital de la aplicación (Imagen 4), esta huella digital lo podemos encontrar en las propiedades de nuestra aplicación pero vamos a crear una clave genérica así que no la necesitamos. Le damos a crear y ya nos aparecerá todo correcto (Imagen 5).


Esta sera la clave que vamos a usar en la aplicacion y que posteriormente añadiremos. Ahora vamos a comenzar con la aplicación. Lo primero necesitaremos la clase main tanto xml como archivo java y una clase que se llame mapas, en la imagen veréis mas apartados aparte de estos pero es debido a que estoy usando una aplicación mas completa que veremos mas adelante en el blog en la que encontraremos todo lo dado (Imagen 6),

Empecemos con la clase java, en esta clase eliminaremos todo lo que no sea necesario y dejaremos únicamente la clase onCreate, ademas añadiremos la clase onCreateOptionsMenu y la clase onOptionsItemSelected que nos servirán para captar los objetos que vayamos a crear y pintar las distintas opciones (Imagen 7).

Primero modificaremos el onCreate, aquí crearemos distintas opciones la primera lo definimos como un fragmento ya que lo usaremos posteriormente ademas crearemos un nuevo Market llamado marcador. Este marcador le daremos una posición una descripción y un titulo, aparte le diremos a la aplicación que nada mas entrar al mapa vaya a dicha posición y la cargue (Imagen 8).

Ahora vamos con el onCreateOptionsMenu el cual usaremos para según que posición del menú (datos que le pasamos) nos lleve a los distintos punteros, esta clase no la necesitamos ahora mismo ya que seria solamente un mapa pero la añado ahora a pesar de que la explicare después (Imagen 9).


Por ultimo modificamos el onOptionsItemSelected, al igual que la función anterior no la necesitaríamos ahora pero prefiero explicarla ahora ya que ya la tengo creada. Esta se encargara de decir que item de una lista es la que tiene implementada cada posición en el mapa (Imagen 10).

Ahora solo nos faltaría el fragmento en la aplicación para ello nos vamos al apartado layout y abrimos el diseño de la pantalla de mapa, en el tendremos que crear un  fragmento derivado de mapa, como ya vimos tenemos que ir a la ultima opción dar clcik en fragment y elegir la opción deseada (Imagen 11).



una vez hecho esto iremos al código de la aplicación y modificaremos el fragment (Imagen 12) con esto le decimos el tamaño que tendrá su id para identificarlo y la clase a la que queremos que vaya. Una vez terminemos ya tendría que estar funcionando nuestro mapa con la posición.



21 mayo 2015

Patron Singleton

En esta ocasión vamos a ver un apartado importante que usaremos casi siempre en la programación android, vamos a ver el patrón Singleton. Este patrón tiene la finalidad de limitar a una clase para que no pueda crear mas objetos en la misma, ¿que quiero decir con esto?, que la clase tendrá una única instancia para toda la aplicaron que estemos creando. Además crear esta única instancia nos permitirá tener directamente un punto por el cual tendremos un acceso total al objeto.



Aparte tendremos que tener en cuenta varias cosas que necesitaremos para crearlo:
  • La clase que vayamos a convertir en Singleton deberá tener un constructor privado, este constructor no puede ser accedido por nadie que sea la misma clase.
  • Crear una instancia privada para la clase que vamos a tener.
  • tener un método estático, este método tendrá que dejarnos acceder a la instancia privada anteriormente creada.
 

07 mayo 2015

Tipos de fragments - Para que sirven y en que se diferencian

Ya vimos que es un fragment en programación android y como crearlo en lineas generales. Ahora vamos a indagar un poco mas y ver que tipos de fragment podemos crear, en este apartado veremos los fragment estáticos y los dinámicos.

Fragment Estatico: Los static fragment son aquellos que utilizaremos cuando no sea necesario que varié el contenido que vayamos a mostrar en la aplicación, normalmente son listas en las que mostrar diferentes opciones (ver imagen con lista de los planetas).


Esto puede que no se entienda del todo así que vamos a realizar un ejemplo en el que podamos ver como crearlo y usarlo. Lo primero creamos una nueva aplicación vacía, yo la llamare ejemploconfragment parar que resulte sencillo identificarla.



Una vez creada vamos a crear el fragmentlist de la aplicación, como vimos en el apartado 1.1 de este blog,lo primero modificaremos el código del fragmento para condicionarlo a lo que queremos que realice. En este caso solo haremos que se vea el fragmento y añadiremos unos datos para hacer la prueba, aunque lo usaremos mas adelante.


Quitamos la implementación de la función AbsListView.OnItemClickListener por ahora no la necesitamos, aparte eliminamos también las variables mParam1 y ARG_param no las usamos. Os saltaran unos cuantos errores pero no os preocupeis ahora vamos a solucionarlos.


Vamos a modificar la función public static listFragment ya que ahora tal como esta no nos sirve. Eliminamos todo aquello referente a las funciones y variable que hemos eliminado anteriormente,en esta función vamos a ver que ya no necesitamos que cree dentro un bundle debido a que vamos a traerlo cuando nos comuniquemos con ella (ver foto ejemplo) y modificamos toda la estructura de la función. Esta función sera el  Patron Singleton.



Una vez hecho encontramos un constructor vació, en este caso NO LO TOCAMOS, tras esto vamos a empezar con el ciclo de vida, como vimos el ciclo de vida son las funciones que va a seguir la aplicación paso a paso (ver apartado 2.0). El ciclo de vida estará desorganizado pero solo tenemos que organizarlo tal como explicamos. dejo la imagen más abajo para que resulte más sencillo.



Una vez que tengamos todo organizado vamos a tener que eliminar alguna función ya que no vamos a usarla ahora mismo.Estas funciones son onItemClick y setEmptyText.Por otro lado vamos a empezar a modificar las funciones del ciclo del ciclo de vida para que estas nos sirvan para nuestro ejemplo.

En el onAttach no modificaremos nada pero fijaros si se implementa la función OnFragmentInteractionListener ya que en ocasiones android studio no la crea por defecto, en caso de
existir no modifiquéis nada.
Ahora vamos a ver la funcion onCreate, no necesitaremos las variables mParam1 y mParam2 ya que se usan en referente a dos que ya no tenemos. Aparte llamaremos al "super" constructor.


La funcion siguiente, onCreateView, es la encargada de construir y formar el layaout donde reside nuestro fragmento. En el creamos la vista a la que le pasamos los datos necesarios para visualizarla con el inflater y la devolvemos para pintarla.


Una vez creada la vista tendremos que ajustar la informacion a la pantalla ya que nos es necesario para entenderlo. Esto lo haremos con la funcion onAticityCreated, en ella pasaremos los datos por parte de la lista creada llamada listaDatosPersona, esta lista aun no la hemos creado pero una vez terminado el ciclo de vida lo veremos.

Por ultimo tenemos la funcion onDetach en la que se finaliza la creacion del fragmento cerrando la llamada al mismo.

Ya tenemos el ciclo de vida completo aunque seguiran apareciendo diversos fallos como el de la lista de datos, para ello vamos a crear en la propia aplicacion un registro con la información que va a tener nuestra aplicación. Hay que decir que esto normalmente se hace comunicandose con una base de datos externa pero esto lo explicaremos mas adelante ya que es mas complejo.

bien lo primero que necesitamos es crear la clase Persona, en esta clase recogeremos el tipo de informacion que va a recibir el fragmento. Lo crearemos en una nueva carpeta llamada beans en el apartado de java.


En esta nueva clase necesitaremos crear las variable que vayamos a usar en la lista, en el ejemplo ponemos un Nombre, apellido y descripcion aunque podria ser cualquier cosa que necesitemos.

Ademas creamos un constructor que incorpore dichas variables creadas y sus respectivos getters and setters que recogeran la informacion cada vez que llamemos a la clase Persona.

Cuando ya la tengamos creada y completa volveremos al codigo del fragmento, en el deberemos crear un array de persona. En este array en donde guardaremos todos los datos que necesitemos para el fragmento siguiendo la estructura que creamos en Persona.


Con esto ya tendriamoscasi todo terminado en el codigo, solo nos faltaria decirle al fragmento donde va indicada cada informacion, despues de todo no queremos que se repita el mismo dato varias veces. Para esto necesitaremos la clase AdaptadorLista.

Esta clase sera una extension de un Array compuestos por la clase persona, es decir, dentro de este Array encontraremos posiciones en la que se encuentre un registro completo (recordar que Persona se compone de nombre, Apellido y descripcion).

Basicamente lo que hacemos es rellenar dicho array con la informacion creada anteriormente y este la incorpora en la vista creada segun su id. Contar que esto necesitara el diseño XML que aun no hemos tocado.

Con esto ya tenemos la parte Java terminada ahora vayamos al diseño xml que tendra nuestra aplicacion. Para ello vamos a la carpeta res de app y en ella buscamos la carpeta layaout en la que encontraremos el XML que necesitamos.

Entramos en el XML del fragmento llamado fragment_lista, nos lo encontraremos vacio por ahora, asi que tendremos que añadir nuestro fragmento ya creado. Para ello vayan a la parte izquierda y busquen el apartado custom, una vez encontrado denle click a fragment y arrastrenlo a la pantalla de diseño.



Una vez hecho esto nos vamos al codigo del XML, solo tenemos que darle a la pestañita text que enconteremos en la parte inferior del diseñador.En ella se encontraran los elementos que se encuentran en el diseño XML.


Tendremos que cambiar varias cosas, lo primero cambiar el Framelayout por un LinearLayout ya que nos servira mejor en la distribucion, cambiaremos un poco el fondo y lo pondremos segun nuestro gusto.


Una vez hecho deberia quedarnos una cosa similar al de la imagen inferior no saldran los datos asi que nos e asusten cuando pueben la aplicacion veran bien su funcionamiento.

Por ultimo iremos al diseño XML principal e insertaremos este fragment a la pantalla como vimos anteriormente. Debido a que voy a suar este ejemplo para incorporar el fragmento dinamico tendra un aspecto raro en la pantalla.

Importante porner en cada fragmento el apartado (tools:layout="@layout/fragment_fragmento_lista") con el dispondremos de una visualizacion de como va a quedar el fragmento en la pantalla principal.

Ahora veremos que es el fragmento dinamico y programaremos un ejemplo que nos guiara en la explicacion.




Fragment Dinamico: El dinamic fragment, a diferencia del static fragment, lo usaremos cuando el contenido a mostrar vaya a variar en la pantalla, es decir, si por ejemplo queremos mostrar una serie de planetas o lugares de interés el fragmento dinámico nos permitirá ir cambiado la imagen del planeta o monumento usando el mismo código(ver imagen con el Taj Mahal).


Ciclo de Vida de un Fragmento

Ya vimos en el apartado anterior como crear un Fragment, ahora explicaremos como se compone y como funciona, para ello veremos el cilo de vida.El ciclo de vida de un Fragmento son los pasos que sigue el Fragment a la hora de crearse y ejecutarse en la aplicacion.


Cuando creamos un Fragment Tendremos que tener como minimo estas funciones las cuales son imprescindibles para su funcionamiento:
  • onCreate() - El sistema llama a este método a la hora de crear el fragmento, normalmente iniciaremos los componentes esenciales del fragmento.
  • onCreateView() - El sistema llamara al método cuando sea la hora de crear la interface de usuario o vista, normalmente se devuelve la view del fragmento.
  • onPause() - El sistema llamara a este método en el momento que el usuario abandone el fragmento, por lo tanto es un buen momento para guardar información.
Aparte podeis ver en la imagen una breve explicacion de cada una de las funciones que nos encontramos en el codigo interno del Fragment.

30 abril 2015

¿Como se crea un Fragment?

Al usar Android Studio como programa principal tenemos una ventaja, nos permite crear directamente un fragment sin tener que hacerlo a mano, no obstante explicare paso a paso las parte que tiene dicho Fragment en caso de no poder hacerlo o no useis Android Studio.

Lo primero creamos un nuevo proyecto android vacio o usar una ya existente, una vez tengais el proyecto solamente teneis que dar click derecho en la carpeta java en la que se encuentre el Main Activity de la aplicación.
 Nos saldra una ventana en la cual ponemos el nombre que queramos al fragment, yo elegi el nombre thecakeisalie para que veamos mas claramente donde encontrarlo.
Una vez que hagamos esto veremos que se ahn cerados dos nuevos elementos en la apliacion, un archivo java y otro xml.
Como comprobareis si abris dichos elementos ya los encontrareis con el codigo creado por defecto solo tendreis que modificarlo segun la ultilidad que queramos tener en el Fragment.


En caso de no usar android estudio tendremos que crear a mano dichos archivos, en el proximo apartado del ciclo de vida podreis verlo con mas detalle en caso de que no se entienda bien.

16 abril 2015

¿Que es un Fragment?



Podríamos definir a un Fragment como una porción de interface de usuario o vista, de una aplicación, que es introducida dentro de un Activy. Estos "fragmentos" tienen como finalidad de incluir en la navegación entre distintas pantallas de la aplicación un mayor código interno que nos sirva posteriormente, es decir, que podamos reutilizarlo cuando lo necesitemos.

Su finalidad es la de ampliar parte de la lógica utilizada para la navegación entre pantallas o Activities, pudiendo definir varios Fragments dentro de una misma Activity, interaccionando entre ellos.

Dicho de otro modo, utilizaremos fragments cuando necesitemos que nuestra aplicación muestre una serie de elementos, los cuales puedan variar o no. En la imagen podemos ver dos fragment en la aplicación, posteriormente explicaremos de que tipo son y su finalidad.