¿Qué son los fragments (fragmentos) en Android?

miércoles, 16 de enero de 2013

Descripción


Vamos a realizar un pequeño ejemplo para iniciarnos y perder el miedo en el desarrollo de aplicaciones Android para múltiples dispositivos: móviles y tablets, basadas en la nueva filosofía “Fragments API” - piezas de código que pueden trabajar de forma integra en un mismo Activity.

¿Qué es un fragment?


Un fragmento es una pieza de software en la que definimos un diseño visual y un comportamiento determinado, y que además, tiene la ventaja de que puede trabajar con otros fragments en un mismo Activity.

1 Activity – N Fragments


¿Por qué nacen los fragments?


Debido a la continua crecida en la venta de tablets, contamos con una gran variedad de modelos en el mercado y con diferentes tamaños. Esto genera dificultades a los desarrolladores para poder adaptar una misma aplicación a toda la gama de dispositivos existentes en el mercado.

Con la idea de los “Fragments”, se pueden realizar diseños más dinámicos y flexibles para pantallas grandes, como tablets.

Problema (Múltiples dispositivos) – Solución (Fragments API)


Ante esta situación, surge la necesidad de que aparezca una filosofía de desarrollo que facilite la adaptación de las aplicaciones ante la continua diversidad de dispositivos, diferentes tamaños, orientaciones de pantalla, ….

FRAGMENTS API (a partir de Android 3.0 - Honeycomb)

·  Nos permite combinar pequeñas piezas para adaptar el diseño de la aplicación y su comportamiento, en función de los diferentes tamaños de pantalla.
·   Tenemos libertad para realizar composiciones visuales y mejorar la experiencia de usuario en función del dispositivo en el que se ejecute.

Glosario de términos


Android

Android en un Sistema Operativo además de una plataforma de Software basada en el núcleo de Linux.
Diseñada en un principio para dispositivos móviles, Android permite controlar dispositivos por medio de bibliotecas desarrolladlas o adaptados por Google mediante el lenguaje de programación Java.
Android es una plataforma de código abierto.

Eclipse IDE for Java EE Developers

Entorno de desarrollo para implementar aplicaciones que se ejecutan en dispositivos Android.

Más información y descarga: http://www.eclipse.org/downloads/

Android SDK

Android SDK es el kit de desarrollo necesario para programar e implementar todo tipo de aplicaciones para Android, el sistema operativo para teléfonos móviles propuesto por Google.
Este paquete o kit de desarrollo incluye las APIs y herramientas necesarias para desarrollar aplicaciones utilizando JAVA como lenguaje de programación.

Más información y descarga: 

Android Support Package

Se necesita que los desarrolladores hagamos uso de las nuevas características y ventajas que vayan apareciendo en las nuevas versiones de Android, que facilitan mucho el trabajo, pero sin perder de vista nuestros clientes potenciales y la cuota de mercado en función del sistema operativo.

Si observamos la gráfica, la mayoría de los usuarios siguen utilizando versiones del Sistema Operativo Android: 2.1, 2.2, 2.3, 2.3.3.


De esto se encarga las librerías Android Support Package, que podamos utilizar las ventajas de las nuevas plataformas de Android sin perder la compatibilidad con versiones anteriores del Sistema Operativo.

Requisitos de Software


Eclipse IDE for Java EE Developers (ADT Eclipse)
SDK Android
Android Support Package


Creamos nuestro proyecto


Creamos un proyecto en Android con las siguientes características:
  • Nombre del proyecto:  MiPrimerFragmento
  • Target:  4.2 (puede ser otra, no pasa nada)
  •  Package: com.svalero.fragmentos_1


Importar el Android Support Package


Seleccionamos el proyecto con el botón derecho – Android Tools – Add Support Package.



Preparando nuestro fragment


Creamos un diseño visual para nuestro Fragment y su correspondiente clase Java (extends Fragment) que controle el comportamiento y permita interactuar con el usuario.

Para crear un fragmento, debemos heredar de la clase Fragment y sobrescribir el método onCreateView() que se encarga de inflar el Fragment con el diseño visual que se haya definido en XML.
Diseño visual en XML – mi_primer_fragmento.xml
<?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="vertical" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/app_name"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
 Diseño visual de la pantalla.

Diseño en Java – MiPrimerFragmento.java

Recuerda heredar el paquete android.support.v4.app.Fragment para no perder compatibilidad con dispositivos con versiones más antiguas de Android.
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class MiPrimerFragmento extends Fragment {

       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
             return inflater.inflate(R.layout.mi_primer_fragmento, null);
       }     
}

Ya tenemos nuestro Fragment y su clase Java extends Fragment que se encarga del comportamiento. Ahora tenemos que crear nuestro diseño visual basado en fragmentos y asociarlo a un FragmentActivity.
Diseño visual en XML – activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <fragment
        android:id="@+id/fragment1"
        android:name="com.svalero.fragmentos_1.MiPrimerFragmento"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

</RelativeLayout>

Diseño en Java – MainActivity.java
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }  
}

Ejecución

Si ejecutamos el proyecto, se tiene que mostrar el resultado que se observa en la imagen.


By Alberto Hernández Akkari

0 comentarios:

Publicar un comentario

fsvelectronicainformatica agradece tu comentario.

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP