Programación Android, Cómo usar SwipeRefreshLayout

Pull to Refresh
Pull to Refresh

En entradas anteriores hemos explicado cómo utilizar ListViews, optimizarlos e incluso hacerlos customizados. En esta ocasión vamos a explicar cómo facilitar la tarea de actualización de los datos que contiene el ListView deslizando el listado hacia abajo utilizando SwipeRefreshLayout.

Lo primero que debemos tener en cuenta es que esta opción no está presente en todas las API, por lo que tendremos que utilizar la librería support-v4 que nos ofrece Google para facilitar la compatibilidad con versiones anteriores de Android para las nuevas herramientas que ofrecen a los desarrolladores. Esta funcionalidad la tendremos presente a partir de la versión 19.0.0 de la librería suport-v4, sin embargo es recomendable utilizar siempre la versión más actualizada que Google nos ofrece, ya que cada versión puede hacer que varíe la interfaz, y al mantener esta librería actualizada siempre estaremos en la última tendencia de Android (en el momento de escribir esta entrada Material Design).

Para el desarrollo de este ejemplo, como venimos haciendo desde hace tiempo, vamos a utilizar Android Studio, por lo que explicaremos cómo importar la librería necesaria a nuestro proyecto a través del Gradle, para utilizar otros IDEs el proceso para importar la librería puede ser diferente, sin embargo la utilización de la misma será exactamente igual.
Leer más…

Cómo crear listas en iOS

En este tutorial vamos a aprender como mostrar nuestros datos en una lista.

Crearemos un proyecto nuevo. En el ViewController que viene por defecto insertaremos un componente llamado “Table View“, el cual lo referenciaremos como “lvContactos“. Una vez insertado y referenciado, meteremos dentro de este “Table View” otro componente llamado “Table View Cell“.

Os explico un poco para que sirve cada componente. El “Table View” es el control que se encarga de que los datos que le pasemos a él los muestre en forma de lista, mientras que el “Table View Cell” es el aspecto que va a tener cada una de las celdas de esa lista. En nuestro ejemplo vamos ha simular una agenda de contactos, por tanto, vamos a utilizar 2 “Label“: una para mostrar el nombre y la otra para mostrar el número.

Diseño celda
Diseño celda

También indicaremos un “id” en nuestro “Table View Cell” para posteriormente hacer referencia a él. En nuestro caso nuestro identificador se llamará “celda“.

Identificador celda
Identificador celda

Leer más…

Programación Android, Gson – Librería para parsear documentos JSON

En nuestras aplicaciones que conecten con servicios web será muy común realizar la comunicación a través de documentos JSON, y hace tiempo explicamos cómo parsear nosotros esos documentos a datos que pudiéramos utilizar en nuestra aplicación. Sin embargo esta tarea es bastante tediosa si tenemos que realizarla para cada una de nuestras conexiones, ya que podemos llegar a necesitar un sinfín de conexiones distintas, y cada una con su propio código para parsear los datos, y para evitar eso tenemos, entre otras, Gson (de código abierto y desarrollada por Google), una librería para parsear documentos JSON. Además, la potencia de este tipo de librerías es que no sólo nos permite pasar de un documento JSON a objetos Java, sino también a la inversa, convertir uno de nuestros objetos en un documento JSON.

En este tutorial vamos a aprender a utilizar Gson, para parsear en ambas direcciones (documento>java / java>documento) y de paso aprovecharemos para aprender a importar librerías que existen en el repositorio Maven a nuestro proyecto en Android Studio.

Qué es Maven?

En primer lugar vamos a entender qué es Maven, y por qué vamos a utilizarlo para obtener nuestra librería Gson. Según Wikipedia Maven es una herramienta de software para la gestión y construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en funcionalidad a Apache Ant (y en menor medida a PEAR de PHP y CPAN de Perl), pero tiene un modelo de configuración de construcción más simple, basado en un formato XML. Estuvo integrado inicialmente dentro del proyecto Jakarta pero ahora ya es un proyecto de nivel superior de la Apache Software Foundation.

Ahora que sabemos qué es Maven, el motivo por el que vamos a utilizar este repositorio en nuestra aplicación es porque Android Studio, a través del uso de Gradle, nos ofrece la posibilidad de descargar estas librerías directamente desde nuestro proyecto, sin necesidad de buscar archivos por internet para después importarlos al proyecto.

Y qué es Gradle?

Leer más…

Navegación entre vistas

En este tutorial vamos a ver como realizar la navegación entre vistas, para este ejemplo vamos a crear una segunda vista, navegar hacia ella y pasarle información procedente de la primera vista.

Cuando tengamos nuestro proyecto creado, nos dirigimos a nuestro Storyboard y arrastramos un nuevo “View Controller“.Recordad que cada vista tiene que tener una clase que la gestione, por tanto, vayamos a crear la clase.

Pulsamos botón derecho sobre la carpeta de nuestro proyecto y seleccionamos “New File

New File
New File

Y seleccionamos en el apartado “iOS” dentro de la categoría  “Source” la opción “Cocoa Touch Class“.

Captura de pantalla 2015-02-07 a las 19.39.40

Pulsamos “Next” y nos pedirá un nombre para ese archivo, nosotros lo llamaremos “ViewController2“. Esta clase deberá  heredar de un “UIViewController

Captura de pantalla 2015-02-07 a las 19.39.54

Leer más…

Mi primera aplicación iOS (Hola Mundo)

Requisitos antes de empezar

  • Xcode ( nosotros utilizaremos la versión actual que es la 6.1.1).
  • Tener nociones sobre programación orientada a objetos y MVC.

Los lenguajes de programación que podemos usar para crear nuestras aplicaciones iOS serán Swift y Objective-C. Nosotros utilizaremos Swift.

Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y Mac OS X. Fue presentado en WWDC 20142 y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier librería programada en Objective-C y llamar a funciones de C. También es posible desarrollar código en Swift compatible con Objective-C bajo ciertas condiciones. Swift tiene la intención ser un lenguaje seguro, de desarrollo rápido y conciso. Usa el compilador LLVM incluido en Xcode 6.

Mi primera aplicación iOS

Comenzamos!! Lo primero que haremos será descargar Xcode desde el App Store y una vez descargado lo abrimos. Una vez abierto pulsaremos en File -> New -> Project y  veremos una pantalla similar a esta.

crear aplicacion
Crear aplicación #1

Leer más…

Programación Android, Cómo usar múltiples Fragments II

Cómo usar múltiples Fragments
Cómo usar múltiples Fragments

En el primer post de cómo usar múltiples fragments en Android hicimos que, cada vez que se creaba una nueva transacción para mostrar diferentes fragments a la pantalla, se realizaran los cambios necesarios en el mapa que contenía la colección de commits. Pero hay una forma de realizar estas comprobaciones de una forma centralizada (para que todos los cambios para eliminar commits en este mapa esté en un mismo punto), y utilizaremos esta misma opción para controlar qué debe mostrarse en pantalla.

Un ejemplo para aclarar esto, sobre el ejemplo de 3 columnas que estamos trabajando, imaginemos que queremos mostrar la primera columna cuando no haya ningún fragment en la columna central, la columna central cuando tenga un fragment visible, pero no haya ninguno en la tercera columna y la tercera columna cuando contenga un fragment visible. En este caso cada vez que vayamos a mostrar un nuevo fragment tendremos que comprobar cuál está presente y mostrar la columna que queramos mostrar, y podremos hacerlo en cuanto añadimos el fragment, pero ¿qué pasa si le damos al botón atrás del dispositivo? El fragment ya no está visible, pero no tenemos control sobre esto y por lo tanto se sigue viendo la columna que ahora ya está vacía.

Leer más…

Programación Android, Cómo usar múltiples Fragments

Cómo usar múltiples fragments
Cómo usar múltiples fragments

Aprovechando que volvemos a tener tiempo libre en esta ocasión vamos a escribir un tutorial que hacía tiempo que queríamos hacer para explicar cómo usar múltiples fragments en una misma pantalla. En su día ya explicamos cómo usar los fragments, pero utilizando tabs, o pestañas, para mostrarlos, en esta ocasión explicaremos cómo tener el control del estado de estos para poder mostrar los datos en pantalla de forma correcta. Es decir, imaginemos que tenemos la pantalla dividida en 3 columnas diferentes, cada una de estas columnas es un área para mostrar fragments, y la última columna la dividimos en 2 filas, de manera que tendríamos un total de 4 áreas para fragments. Estando en landscape (dispositivo en horizontal) tenemos espacio de sobra para mostrar toda la información, sin embargo si giramos a portrait (vertical) estas áreas serán demasiado pequeñas como para mostrar todo lo que queremos, por lo que deberíamos mostrar el último detalle añadido, es decir, la última de las columnas que contengan datos. Sin embargo, al volver a landscape tendríamos que volver a mostrar todas las áreas de nuevo.

Por otra parte, si estamos mostrando información en la última columna, y decidimos cargar otra información distinta posteriormente, tendríamos que mantener la lógica de la cola de fragments que vayamos creando, para que al darle al botón atrás mantengamos una navegación lógica para el usuario, por lo tanto tenemos que crear una lógica que nos permita controlar distintos niveles, para añadir y eliminar fragments donde lo necesitemos.

Leer más…

Programación Android, Creación de un control personalizado

Control personalizado
creación de un control personalizado

En Android existe una gran cantidad de controles que podemos utilizar para conseguir realizar las interfaces que necesitemos, pero una de las posibilidades que nos ofrece es la de crear nuestros propios controles personalizados, de manera que en un único control, creado por nosotros mismos, podamos crear múltiples controles. El clásico ejemplo es el de la gestión de una ventana de login, en la que existen dos campos en los que escribir texto (usuario y contraseña), y un botón para aceptar el login.

En Internet pueden encontrarse muchos tutoriales sobre la creación de un control personalizado, y muchos de ellos utilizando el propio ejemplo del login para explicarlo. Sin embargo siempre hemos echado en falta un elemento que nos gustaría explicar en este tutorial. Esto es la posibilidad de configurar los eventos onClick de los elementos internos de nuestro control personalizado utilizando atributos en xml. Como sabéis, desde xml podemos configurar el atributo android:onClick=””, dándole como valor el nombre del método que debe lanzarse, y que posteriormente tenemos que codificar en nuestra Activity en Java. Sin embargo este evento, si lo escribimos tal cual sobre nuestro control, se lanzará cuando se pulse sobre cualquier zona del control, y no tendríamos la capacidad de lanzarlo únicamente cuando se pulsara, por ejemplo, el botón para aceptar el login antes citado.

Creación de un control personalizado

Como el ejemplo del login está muy utilizado, nosotros vamos a crear un control diferente, en el que pondremos un botón a cada lado, y entre ambos botones posicionaremos un texto, que irá cambiando a medida que se pulse uno u otro botón. En primer lugar crearemos el xml con el layout que dará forma a nuestro control personalizado:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="horizontal">

    <Button
        android:id="@+id/btPREV_SLIDER_CUSTOMER_DETAILS"
        android:background="@android:color/transparent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="<"/>

    <TextView
        android:id="@+id/tvSliderText_SLIDER_CUSTOMER_DETAILS"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:maxLines="1"
        android:gravity="center"/>

    <Button
        android:id="@+id/btNext_SLIDER_CUSTOMER_DETAILS"
        android:background="@android:color/transparent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=">"/>

</LinearLayout>

Como hemos dicho, tenemos un botón en cada lado, a los que hemos dado un fondo transparente, y entre ambos botones hemos colocado un TextView que contendrá el texto que queramos mostrar.
Leer más…

Programación Android, Creación de Widgets II

Creación de widgets
Después de un tiempo excesivo de inactividad (lo lamentamos, pero entre cursos, viajes y trabajo ha sido imposible sentarse a escribir una nueva entrada), volvemos a la carga para terminar el tutorial que dejamos a medias sobre cómo crear widgets.

En la anterior entrada comenzamos con la creación de widgets, para que el sistema lo detectara como tal y pudieramos agregarlo a la pantalla principal del dispositivo. En esta ocasión vamos a retomar este ejemplo, y vamos a añadirle la posibilidad de interactuar con él. Lo que vamos a crear es un sencillo widget que nos va a permitir cambiar el estado del sonido del dispositivo, intercambiando entre el volumen que haya dejado el usuario en el dispositivo y ponerlo en silencio con vibración.

Creación de widget

En primer lugar, para poder hacer esto, vamos a modificar el xml del widget, cambiando el TextView que contiene por un ImageView que nos permitirá configurar un recurso que indique al usuario si el dispositivo está en silencio o no, y cambiarlo cada vez que el usuario pulse sobre nuestro widget, además le eliminaremos el shape que inicialmente configuramos:
Leer más…

Funciones en php

PHP

Funciones en php

Existen 2 tipos de funciones en php:

  1. Las definidas por el usuario
  2. Las propias de PHP

Definidas por el usuario:

Las funciones definidas por el usuario son muy útiles para poder “separar” nuestro código de modo que este quede separado y mucho mas ordenado.

Las funciones propias

Son funciones que dispone php para que podamos utilizarlas. A medida que php fue evolucionando, va agregando o actualizando parte de su núcleo, en las cuales también cambia estas funcionas o mejor aún, agrega nuevas.

Hoy en día existen muchísimas de sus funcionas, las cuales permiten cortar string, hacer búsquedas, etc, entre las cuales están:

str_replace(), die(), var_dump() , print_r() , usort()

Leer más…