SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
http://www.nabbel.es




         Taller Práctico de Android
                       Javier Muñoz
                        (jmunoz@nabbel.es)

                              @jmunozf
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
¿Quién soy?



           Formación Académica                      Exp. Profesional
                ●   2003 Ing. Informática       ●   2010 Nabbel
                      Universitat Jaume I             Director

                ●   2008 PhD Ing. Software      ●   2008 Prodevelop
                      Universidad Politécnica         Jefe de Proyectos, I+D+i
                      de Valencia                     MOSKitt
@jmunozf                                              http://www.moskitt.org

                                                ●   2007 Integranova
                                                      Jefe de Proyectos
           Experiencia con Android
            ● https://play.google.com/store/apps/developer?id=Nabbel
            ● Profesor Curso Introducción Android en Universidad de


            Verano de la Universidad CEU Cardenal Herrera
¿Qué vamos a hacer hoy?



           Lector del tiempo
             Datos de http://www.aemet.es/


           Aprenderemos
               Uso básico del SDK
               Estructura proyecto Android
               Implementar pantallas
               Parseo XML datos remotos
               ContentProviders
               Tareas en background


    https://bitbucket.org/jmunoz/android-example-eltiempo
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Necesidad de Información




                             ¿Quién participa?
 ¿Cuándo empieza?



                                 ¿Cómo llegar?
¿Dónde es?



      ¿Qué ocurre ahora?

                           ¿Hay más parecidos?
Escenarios de Aplicación

                      Festivales Musicales




  Museos                                      Competiciones Deportivas




Congresos
                                                        Ferias


                              Eventos de Empresa


  Fiestas Populares              Parques Temáticos
Algunas Aplicaciones Nabbel




                Eventosfera
                                             INNOVALENCIA




                                                            Follow Us
San Silvestre                 Romeria 2011
   2010
Algunas Aplicaciones Nabbel
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Android: Arquitectura
Android: SDK



SDK + AVD
 Plataforma + Emuladores
 Documentación + Ejemplos
 Librerías de 3as partes
   Google Maps
   GalaxyTab


Eclipse Plugin
 Proyecto Eclipse tipo Android
 Herramientas Empaquetado
 Debugging
 Gestión del Emulador (copiar archivos, pantallazos, etc.)
Android: Arquitectura Aplicaciones



Activities                     Content Providers
 Pantallas... independientes    Acceso a datos entre
 entre sí                       aplicaciones
 Concepto principal             Independientes de su
                                persistencia (XML, SQLite,
                                remoto...)
Services
 Funcionalidad de larga
                               Broadcast Receivers
 duración sin UI
                                Escucha mensajes de difusión
 Services vs Threads →
 Services funcionan con app     Ejemplos: pantalla apagada,
 cerrada                        archivo descargados, batería
                                baja...
Android: Arquitectura Aplicaciones


Intents                                      Acciones estándar:
                                              ACTION_MAIN
  Mensajes asíncronos entre                   ACTION_VIEW

  componentes                                 ACTION_ATTACH_DATA
                                              ACTION_EDIT
  Enlazan componentes en                      ACTION_PICK

  tiempo de ejecución                         ACTION_CHOOSER
                                              ACTION_GET_CONTENT
  Contienen:                                  ACTION_DIAL


      Action                                  ACTION_CALL
                                              ACTION_SEND

      URI                                     ACTION_SENDTO
                                              ACTION_ANSWER
      Extras                                  ACTION_INSERT
                                              ACTION_DELETE
  ¿Qué acciones hay?                          ACTION_RUN

    Definidas en SDK                          ACTION_SYNC
                                              ACTION_PICK_ACTIVITY

    OpenIntents:                              ACTION_SEARCH
                                              ACTION_WEB_SEARCH
http://www.openintents.org/en/intentstable    ACTION_FACTORY_TEST
Android: Arquitectura Aplicaciones



Ejemplos de Acción/URI en Intents
 ACTION_VIEW content://contacts/people/1
 ACTION_DIAL content://contacts/people/1
 ACTION_DIAL tel:123
 ACTION_EDIT content://contacts/people/1


Ejecución de Intents
 Intent i = new Intent(this, IntentA.class);
 startActivity(i);


 Uri uri = Uri.parse( "http://iparty.aditel.org" );
 startActivity( new Intent( Intent.ACTION_VIEW, uri ) );
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Presentación
Autobombo
Conceptos Básicos
Desarrollo Aplicación
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Paso 1: Crear proyecto



New > Android Projet
Select Build Target:
 Usaremos 2.1 (level 7)
Android: Arquitectura Aplicaciones


Activity básica

 package com.example.helloandroid;


 import android.app.Activity;
 import android.os.Bundle;


 public class HelloAndroid extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
     }
 }
Ciclo de Vida
Activities: Ciclo de Vida
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
SDK y AVD Manager
                  Paso 2: Crear Emulador


●   AVD Manager
    ●   Gestionar emuladores
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Paso 3: Lanzar App en el Emulador
                          Herramientas
●   Emulator
    ●   Basado en QEMU
    ●   Diferentes instancias
        –   Tamaños de pantalla y densidad
        –   Skins
    ●   Soporta:
        –   Ubicaciones
        –   SD Cards
    ●   NO soporta
        –   Cámara
        –   Multi-touch
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Paso 4: Editar Interfaz de Usuario


Definición declarativa (XML) de la Interfaz
  Layouts → Posicionamiento
  Views → Interacción
Android: Interfaz de Usuario
Android: Interfaz de Usuario

<?xml version="1.0" encoding="utf-8"?>
<!-- Main Layout of Status Activity -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent">
      <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:gravity="center"
        android:textSize="30sp"
        android:layout_margin="10dp" android:text="@string/titleStatus"/>


      <EditText android:layout_width="fill_parent"
         android:layout_height="fill_parent" android:layout_weight="1"
        android:hint="@string/hintText" android:id="@+id/editText"
        android:gravity="top|center_horizontal"></EditText>


      <Button android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/buttonUpdate"
        android:textSize="20sp" android:id="@+id/buttonUpdate"></Button>
</LinearLayout>
Android: Interfaz de Usuario
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Definición UI
                    Paso 5: Actualizar Interfaz de Usuario



                                   Definición UI
             Procedural                              Declarativa

TextView tv= new TextView(this)          <TextView

tv.setWidth(100);                         android:id="@+id/nameLabel"

tv.setHeight(60);                         android:text="phone:"

tv.setText("phone");                      android:layout_width="100"

setContentView(tv);                       android:layout_height="60"

                                         />
Identificación Componentes UI
                     Android UI XML

●   El atributo id identifica la vista dentro de la jerarquía

●   El símbolo (@) indica que viene un identificador

●   El símbolo (+) indica que es un nombre nuevo (no una
    referencia)

●   Todas las vistas deben definir:     <TextView
                                          android:id="@+id/nameLabel"
    ●   android:layout_width              android:text="phone:"
                                          android:layout_width="100"
    ●   android:layout_height             android:layout_height="60" />
Referenciar Componentes UI
                             Android UI XML
●   Clase Java con los identificadores de recursos:
    ●   Generada automáticamente al compilar (no tocar!!)
    ●   Se llamará: nuestro.paquete.R
    ●   Contiene identificadores de:
         –   Widgets de los Layouts
         –   Los archivos contenidos en “res/” (layouts, drawables, strings,
             colors, etc.)
    ●   Widgets accesibles desde el código Java

        Button btn = (Button) findViewById(R.id.acceptButton);
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Tratamiento de XML
                    Paso 6: Leer datos del servidor


●   Opciones para manejar el XML
    ●   SAX
        –   Basado en eventos
        –   Compatible con handlers Java pre-existente
        –   El más “estándar”
    ●   SAX Simplificado
        –   Se asocian eventos a etiquetas
        –   Evita gestión en el handler de situación actual
    ●   DOM
        –   Estructura tipo árbol
        –   Mayor consumo de memoria
    ●   XMLPull
        –   Lectura del XML guiada
        –   Pedimos elementos
SAX Simplificado
                                                   SAX Simplificado


public List<Noticia> parse(){                               item.getChild("link").setEndTextElementListener(
 final List<Noticia> noticias = new ArrayList<Noticia>();      new EndTextElementListener(){
                                                                    public void end(String body) {
 RootElement root = new RootElement("rss");                            noticiaActual.setLink(body);
 Element channel = root.getChild("channel");                        }
 Element item = channel.getChild("item");                       });

 item.setStartElementListener(new StartElementListener(){   item.getChild("description").setEndTextElementListener(
      public void start(Attributes attrs) {                     new EndTextElementListener(){
         noticiaActual = new Noticia();                           public void end(String body) {
      }                                                              noticiaActual.setDescripcion(body);
  });                                                             }
                                                                });
  item.setEndElementListener(new EndElementListener(){
       public void end() {                                  ...
          noticias.add(noticiaActual);
       }
   });
                                                                Xml.parse(this.getInputStream(),
 item.getChild("title").setEndTextElementListener(                   Xml.Encoding.UTF_8,
        new EndTextElementListener(){                                 root.getContentHandler());
          public void end(String body) {
            noticiaActual.setTitulo(body);
          }                                                 return noticias;
    });
                                                            }
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Paso 7: Cargar Imagen enno sepas (3)
                Android: Cosas que quizá Background


 Tareas en background: AsyncTask

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    ProgressDialog dialog = new ProgressDialog(context);
    protected void onPreExecute() {
         this.dialog.setMessage("Progress start");
         this.dialog.show();
    }
     protected Bitmap doInBackground(String... urls) {
          return loadImageFromNetwork(urls[0]);
     }


     protected void onPostExecute(Bitmap result) {
          mImageView.setImageBitmap(result);
         dialog.dismiss();
     }
}          new DownloadImageTask().execute(“http://urlimage”);
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Android: Cosas que quizáSpinner (3)
              Paso 8: Configurar no sepas
                   Adapters
                   Spinner
●   Desplegable de Selección
●   Adapter para las opciones
Android: Cosas que quizáSpinner (3)
                     Paso 8: Configurar no sepas
                                 Adapters
●   Adaptar datos para una necesidad
●   LisAdapters (Interface)→ Datos para ser mostrados en ListView
    ●   (abstract) android.widget.BaseAdapter
         –   Clase base para todos los Adapter


    ●   android.widget.ArrayAdapter<T>
         –   Mostrar contenido de un Array o List


             public ArrayAdapter (Context context,
                         int resource,
                         int textViewResourceId,
                         List<T> objects)
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Desarrollo Aplicación
 1.- Crear Proyecto
 2.- Crear Emulador
 3.- Lanzar App en el Emulador
 4.- Editar Interfaz Usuario
 5.- Actualizar Interfaz de Usuario
 6.- Leer Datos del Servidor
 7.- Cargar Imagen en Background
 8.- Configurar Spinner
 9.- Empaquetar para Distribución
Android:Empaquetar para no sepas (3)
                Paso 9: Cosas que quizá Distribución
                      Compilar y Firmar
●   Utilizando Eclipse
    ●   Opción del menú contextual:
        –   Android Tools > Export Signed Application Package
    ●   Asistente para seleccionar:
        –   Archivo destino
        –   Almacén de clave
        –   Clave
    ●   Zipalign
        –   Ejecutado por el asistente
        –   Los datos descomprimidos empiezan en
              una cierta posición
        –   Mejora de rendimiento en dispositivos
Android: Cosas que quizá no sepas (3)
                     Crear clave privada
                      Creación Clave Privada



●   Condiciones
    ●   Contiene los datos tuyos o de tu organización
    ●   Validez después de 22 Octubre 2033
    ●   NO utilices la de debug
●   Creación

$ keytool -genkey -v -keystore my-release-key.keystore
  -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


    ●   Pedirá:
         –   Definir los datos de la organización
         –   Crear el password del almacén de claves
         –   Crear el password de la clave
http://www.nabbel.es




         Taller Práctico de Android
                       Javier Muñoz
                        (jmunoz@nabbel.es)

                              @jmunozf

Contenu connexe

Tendances

Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosDesarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosGabriel Huecas
 
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...José Ignacio Álvarez Ruiz
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1newimagenio
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2Frank Jorge
 
Guia generalandroidstudioseccion3.docx
Guia generalandroidstudioseccion3.docxGuia generalandroidstudioseccion3.docx
Guia generalandroidstudioseccion3.docxSergio Bahamon
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4Android UNAM
 
002 Comohacerun J Clic
002 Comohacerun J Clic002 Comohacerun J Clic
002 Comohacerun J ClicMaruja
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2Android UNAM
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3Android UNAM
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Androidandresuarezz26
 

Tendances (18)

Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosDesarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
 
Cetis 109(2)
Cetis 109(2)Cetis 109(2)
Cetis 109(2)
 
Walkthrough
WalkthroughWalkthrough
Walkthrough
 
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
 
Material rap1
Material rap1Material rap1
Material rap1
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1
 
Curso Android 2021
Curso Android  2021Curso Android  2021
Curso Android 2021
 
Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
Android Basics v2.0
Android Basics v2.0Android Basics v2.0
Android Basics v2.0
 
Curso desarrollo en android
Curso desarrollo en androidCurso desarrollo en android
Curso desarrollo en android
 
Guia generalandroidstudioseccion3.docx
Guia generalandroidstudioseccion3.docxGuia generalandroidstudioseccion3.docx
Guia generalandroidstudioseccion3.docx
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4
 
002 Comohacerun J Clic
002 Comohacerun J Clic002 Comohacerun J Clic
002 Comohacerun J Clic
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3
 
Android
AndroidAndroid
Android
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Android
 

En vedette

Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles MultiplataformaBases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles MultiplataformaUniversidad Autonoma de Chihuahua
 
Conexion a servidor desde android
Conexion a servidor desde androidConexion a servidor desde android
Conexion a servidor desde androidJose Pablo Ovalle
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareMoises Medina
 
Manual programación android
Manual programación android Manual programación android
Manual programación android dcastacun
 
8 servidores web android
8 servidores web android8 servidores web android
8 servidores web androidJose Perez
 
RECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOS
RECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOSRECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOS
RECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOSJose Luis Luyo
 

En vedette (10)

Android web services - Spring Android
Android web services - Spring AndroidAndroid web services - Spring Android
Android web services - Spring Android
 
Presentacion Android Cliente/Servidor
Presentacion Android Cliente/ServidorPresentacion Android Cliente/Servidor
Presentacion Android Cliente/Servidor
 
31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL
 
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles MultiplataformaBases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
 
Conexion a servidor desde android
Conexion a servidor desde androidConexion a servidor desde android
Conexion a servidor desde android
 
El gran libro de android
El gran libro de androidEl gran libro de android
El gran libro de android
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de software
 
Manual programación android
Manual programación android Manual programación android
Manual programación android
 
8 servidores web android
8 servidores web android8 servidores web android
8 servidores web android
 
RECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOS
RECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOSRECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOS
RECURSOS DE LA EMPRESA: HUMANOS, MATERIALES, FINANCIEROS Y TECNOLOGICOS
 

Similaire à Taller Práctico de Android

Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweetsJorge Soro
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-androidNilson Gongora
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3Leo31146695
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-androidCarlitos Sosa
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3ERWIN AGUILAR
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderjezabelink
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Motorola Mobility - MOTODEV
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdfDianaSullcav
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de androidwiliam lliulli herrera
 

Similaire à Taller Práctico de Android (20)

Android Pres3
Android Pres3Android Pres3
Android Pres3
 
Android
AndroidAndroid
Android
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 
Cetis 109
Cetis 109Cetis 109
Cetis 109
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Mdw guia-android
Mdw guia-androidMdw guia-android
Mdw guia-android
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Guía Android
Guía AndroidGuía Android
Guía Android
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entender
 
Gadget review
Gadget reviewGadget review
Gadget review
 
Gadget review
Gadget reviewGadget review
Gadget review
 
Taller de Android
Taller de AndroidTaller de Android
Taller de Android
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdf
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de android
 
Meetup app-moviles
Meetup app-movilesMeetup app-moviles
Meetup app-moviles
 
Tripticoandroid
TripticoandroidTripticoandroid
Tripticoandroid
 

Plus de Javier Muñoz

Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidJavier Muñoz
 
MOSKitt UIM (short description)
MOSKitt UIM (short description)MOSKitt UIM (short description)
MOSKitt UIM (short description)Javier Muñoz
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareJavier Muñoz
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittJavier Muñoz
 
MOSKitt Extensibility. Mutatis mutandis
MOSKitt Extensibility. Mutatis mutandisMOSKitt Extensibility. Mutatis mutandis
MOSKitt Extensibility. Mutatis mutandisJavier Muñoz
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityJavier Muñoz
 

Plus de Javier Muñoz (6)

Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
MOSKitt UIM (short description)
MOSKitt UIM (short description)MOSKitt UIM (short description)
MOSKitt UIM (short description)
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
MOSKitt Extensibility. Mutatis mutandis
MOSKitt Extensibility. Mutatis mutandisMOSKitt Extensibility. Mutatis mutandis
MOSKitt Extensibility. Mutatis mutandis
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And Traceability
 

Dernier

David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Dernier (20)

David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

Taller Práctico de Android

  • 1. http://www.nabbel.es Taller Práctico de Android Javier Muñoz (jmunoz@nabbel.es) @jmunozf
  • 4. ¿Quién soy? Formación Académica Exp. Profesional ● 2003 Ing. Informática ● 2010 Nabbel Universitat Jaume I Director ● 2008 PhD Ing. Software ● 2008 Prodevelop Universidad Politécnica Jefe de Proyectos, I+D+i de Valencia MOSKitt @jmunozf http://www.moskitt.org ● 2007 Integranova Jefe de Proyectos Experiencia con Android ● https://play.google.com/store/apps/developer?id=Nabbel ● Profesor Curso Introducción Android en Universidad de Verano de la Universidad CEU Cardenal Herrera
  • 5. ¿Qué vamos a hacer hoy? Lector del tiempo Datos de http://www.aemet.es/ Aprenderemos Uso básico del SDK Estructura proyecto Android Implementar pantallas Parseo XML datos remotos ContentProviders Tareas en background https://bitbucket.org/jmunoz/android-example-eltiempo
  • 8. Necesidad de Información ¿Quién participa? ¿Cuándo empieza? ¿Cómo llegar? ¿Dónde es? ¿Qué ocurre ahora? ¿Hay más parecidos?
  • 9. Escenarios de Aplicación Festivales Musicales Museos Competiciones Deportivas Congresos Ferias Eventos de Empresa Fiestas Populares Parques Temáticos
  • 10. Algunas Aplicaciones Nabbel Eventosfera INNOVALENCIA Follow Us San Silvestre Romeria 2011 2010
  • 15. Android: SDK SDK + AVD Plataforma + Emuladores Documentación + Ejemplos Librerías de 3as partes Google Maps GalaxyTab Eclipse Plugin Proyecto Eclipse tipo Android Herramientas Empaquetado Debugging Gestión del Emulador (copiar archivos, pantallazos, etc.)
  • 16. Android: Arquitectura Aplicaciones Activities Content Providers Pantallas... independientes Acceso a datos entre entre sí aplicaciones Concepto principal Independientes de su persistencia (XML, SQLite, remoto...) Services Funcionalidad de larga Broadcast Receivers duración sin UI Escucha mensajes de difusión Services vs Threads → Services funcionan con app Ejemplos: pantalla apagada, cerrada archivo descargados, batería baja...
  • 17. Android: Arquitectura Aplicaciones Intents Acciones estándar: ACTION_MAIN Mensajes asíncronos entre ACTION_VIEW componentes ACTION_ATTACH_DATA ACTION_EDIT Enlazan componentes en ACTION_PICK tiempo de ejecución ACTION_CHOOSER ACTION_GET_CONTENT Contienen: ACTION_DIAL Action ACTION_CALL ACTION_SEND URI ACTION_SENDTO ACTION_ANSWER Extras ACTION_INSERT ACTION_DELETE ¿Qué acciones hay? ACTION_RUN Definidas en SDK ACTION_SYNC ACTION_PICK_ACTIVITY OpenIntents: ACTION_SEARCH ACTION_WEB_SEARCH http://www.openintents.org/en/intentstable ACTION_FACTORY_TEST
  • 18. Android: Arquitectura Aplicaciones Ejemplos de Acción/URI en Intents ACTION_VIEW content://contacts/people/1 ACTION_DIAL content://contacts/people/1 ACTION_DIAL tel:123 ACTION_EDIT content://contacts/people/1 Ejecución de Intents Intent i = new Intent(this, IntentA.class); startActivity(i); Uri uri = Uri.parse( "http://iparty.aditel.org" ); startActivity( new Intent( Intent.ACTION_VIEW, uri ) );
  • 21. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 22. Paso 1: Crear proyecto New > Android Projet Select Build Target: Usaremos 2.1 (level 7)
  • 23. Android: Arquitectura Aplicaciones Activity básica package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
  • 24. Ciclo de Vida Activities: Ciclo de Vida
  • 25. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 26. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 27. SDK y AVD Manager Paso 2: Crear Emulador ● AVD Manager ● Gestionar emuladores
  • 28. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 29. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 30. Paso 3: Lanzar App en el Emulador Herramientas ● Emulator ● Basado en QEMU ● Diferentes instancias – Tamaños de pantalla y densidad – Skins ● Soporta: – Ubicaciones – SD Cards ● NO soporta – Cámara – Multi-touch
  • 31. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 32. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 33. Paso 4: Editar Interfaz de Usuario Definición declarativa (XML) de la Interfaz Layouts → Posicionamiento Views → Interacción
  • 35. Android: Interfaz de Usuario <?xml version="1.0" encoding="utf-8"?> <!-- Main Layout of Status Activity --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="30sp" android:layout_margin="10dp" android:text="@string/titleStatus"/> <EditText android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:hint="@string/hintText" android:id="@+id/editText" android:gravity="top|center_horizontal"></EditText> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/buttonUpdate" android:textSize="20sp" android:id="@+id/buttonUpdate"></Button> </LinearLayout>
  • 37. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 38. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 39. Definición UI Paso 5: Actualizar Interfaz de Usuario Definición UI Procedural Declarativa TextView tv= new TextView(this) <TextView tv.setWidth(100); android:id="@+id/nameLabel" tv.setHeight(60); android:text="phone:" tv.setText("phone"); android:layout_width="100" setContentView(tv); android:layout_height="60" />
  • 40. Identificación Componentes UI Android UI XML ● El atributo id identifica la vista dentro de la jerarquía ● El símbolo (@) indica que viene un identificador ● El símbolo (+) indica que es un nombre nuevo (no una referencia) ● Todas las vistas deben definir: <TextView android:id="@+id/nameLabel" ● android:layout_width android:text="phone:" android:layout_width="100" ● android:layout_height android:layout_height="60" />
  • 41. Referenciar Componentes UI Android UI XML ● Clase Java con los identificadores de recursos: ● Generada automáticamente al compilar (no tocar!!) ● Se llamará: nuestro.paquete.R ● Contiene identificadores de: – Widgets de los Layouts – Los archivos contenidos en “res/” (layouts, drawables, strings, colors, etc.) ● Widgets accesibles desde el código Java Button btn = (Button) findViewById(R.id.acceptButton);
  • 42. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 43. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 44. Tratamiento de XML Paso 6: Leer datos del servidor ● Opciones para manejar el XML ● SAX – Basado en eventos – Compatible con handlers Java pre-existente – El más “estándar” ● SAX Simplificado – Se asocian eventos a etiquetas – Evita gestión en el handler de situación actual ● DOM – Estructura tipo árbol – Mayor consumo de memoria ● XMLPull – Lectura del XML guiada – Pedimos elementos
  • 45. SAX Simplificado SAX Simplificado public List<Noticia> parse(){ item.getChild("link").setEndTextElementListener( final List<Noticia> noticias = new ArrayList<Noticia>(); new EndTextElementListener(){ public void end(String body) { RootElement root = new RootElement("rss"); noticiaActual.setLink(body); Element channel = root.getChild("channel"); } Element item = channel.getChild("item"); }); item.setStartElementListener(new StartElementListener(){ item.getChild("description").setEndTextElementListener( public void start(Attributes attrs) { new EndTextElementListener(){ noticiaActual = new Noticia(); public void end(String body) { } noticiaActual.setDescripcion(body); }); } }); item.setEndElementListener(new EndElementListener(){ public void end() { ... noticias.add(noticiaActual); } }); Xml.parse(this.getInputStream(), item.getChild("title").setEndTextElementListener( Xml.Encoding.UTF_8, new EndTextElementListener(){ root.getContentHandler()); public void end(String body) { noticiaActual.setTitulo(body); } return noticias; }); }
  • 46. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 47. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 48. Paso 7: Cargar Imagen enno sepas (3) Android: Cosas que quizá Background Tareas en background: AsyncTask private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { ProgressDialog dialog = new ProgressDialog(context); protected void onPreExecute() { this.dialog.setMessage("Progress start"); this.dialog.show(); } protected Bitmap doInBackground(String... urls) { return loadImageFromNetwork(urls[0]); } protected void onPostExecute(Bitmap result) { mImageView.setImageBitmap(result); dialog.dismiss(); } } new DownloadImageTask().execute(“http://urlimage”);
  • 49. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 50. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 51. Android: Cosas que quizáSpinner (3) Paso 8: Configurar no sepas Adapters Spinner ● Desplegable de Selección ● Adapter para las opciones
  • 52. Android: Cosas que quizáSpinner (3) Paso 8: Configurar no sepas Adapters ● Adaptar datos para una necesidad ● LisAdapters (Interface)→ Datos para ser mostrados en ListView ● (abstract) android.widget.BaseAdapter – Clase base para todos los Adapter ● android.widget.ArrayAdapter<T> – Mostrar contenido de un Array o List public ArrayAdapter (Context context, int resource, int textViewResourceId, List<T> objects)
  • 53. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 54. Desarrollo Aplicación 1.- Crear Proyecto 2.- Crear Emulador 3.- Lanzar App en el Emulador 4.- Editar Interfaz Usuario 5.- Actualizar Interfaz de Usuario 6.- Leer Datos del Servidor 7.- Cargar Imagen en Background 8.- Configurar Spinner 9.- Empaquetar para Distribución
  • 55. Android:Empaquetar para no sepas (3) Paso 9: Cosas que quizá Distribución Compilar y Firmar ● Utilizando Eclipse ● Opción del menú contextual: – Android Tools > Export Signed Application Package ● Asistente para seleccionar: – Archivo destino – Almacén de clave – Clave ● Zipalign – Ejecutado por el asistente – Los datos descomprimidos empiezan en una cierta posición – Mejora de rendimiento en dispositivos
  • 56. Android: Cosas que quizá no sepas (3) Crear clave privada Creación Clave Privada ● Condiciones ● Contiene los datos tuyos o de tu organización ● Validez después de 22 Octubre 2033 ● NO utilices la de debug ● Creación $ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 ● Pedirá: – Definir los datos de la organización – Crear el password del almacén de claves – Crear el password de la clave
  • 57. http://www.nabbel.es Taller Práctico de Android Javier Muñoz (jmunoz@nabbel.es) @jmunozf