SlideShare una empresa de Scribd logo
1 de 47
Mecanismos de desarrollo en
                  Android




                     www.solusoft.es
avanzandoenandroid
                              Indice


Tipos de Aplicaciones
Controles elementales
Controles avanzados
Preferencias
Trabajando en segundo plano
Logs
Demo Google Play
Referencia




                       www.solusoft.es
tiposdeapps
 ¿Dónde se desarrollan?




 Web




     Nativas




Híbridas




           www.solusoft.es
tiposdeapps
                   ¿Dónde se desarrollan?


Aplicaciones Nativas

•Pensadas para ejecutarse en una
plataforma específica.
•En Android se desarrollan en Java.
•Se ejecutan de forma eficiente.
•Pueden acceder a todos los
servicios y sensores del dispositivo.
•La aplicación se compila y
distribuye (son muy visibles).
•No requiere conexión a internet.




                         www.solusoft.es
tiposdeapps
                  ¿Dónde se desarrollan?


Aplicaciones Web Móviles

•Se ejecutan dentro del navegador.
•Son Multiplataforma y reutilizables.
•HTML(5), CSS y Javascript.
•No requieren aprobación.
•El mantenimiento es responsabilidad
nuestra.
•No son eficientes.
•El acceso a recursos del teléfono es
limitado.
•No se distribuyen en el market.




                           www.solusoft.es
tiposdeapps
                   ¿Dónde se desarrollan?


Aplicaciones Híbridas

•Una parte de la aplicación es
específica de la plataforma, otra es
multiplataforma y reutilizable.
•El desarrollo es algo más
complicado.
•La comunicación con los recursos
del teléfono se realiza mediante
comunicadores.
•No son especialmente eficientes.
•Se distribuyen en el market.




                         www.solusoft.es
tiposdeapps
   ¿Dónde están los datos?




  Aisladas




      Conectadas




Sincronizadas




             www.solusoft.es
tiposdeapps
                  ¿Dónde están los datos?


Aplicaciones Aisladas

•Los datos y el procesamiento se
encuentran en el dispositivo.
•No requiere conexión a internet.
•El mantenimiento se centraliza.
•Es más fácil de distribuir.
•La comunicación entre dispositivos
no es posible.
•Padece un alto grado de
fragmentación.
•Es muy difícil migrar a otras
plataformas.




                         www.solusoft.es
tiposdeapps
                 ¿Dónde están los datos?


Aplicaciones Conectadas

•Los datos y el procesamiento se
alojan en un servicio web.
•Requiere conexión a internet
constante.
•El mantenimiento no es centralizado.
•Su distribución es más compleja.
•Permite comunicación entre
dispositivos.
•Padece un grado medio de
fragmentación.
•Se facilita migrar a otras
plataformas.



                          www.solusoft.es
tiposdeapps
                  ¿Dónde están los datos?


Aplicaciones Sincronizadas

•Los datos y el procesamiento se
alojan en la web y parte en el
dispositivo.
•Permite su uso sin conexión a
internet.
•Su implementación es más
complicada.
•Los datos no están siempre
actualizados.
•Ventajas y desventajas de ambos
tipos.




                             www.solusoft.es
controlesbasicos
     usados con frecuencia




          www.solusoft.es
controlesbasicos
                            usados con frecuencia


Controles de Entrada

Métodos frecuentes:
•getText /getValue
•setText / setValue
•setEnabled
•setVisibility
Eventos relevantes:
•onClick()
•onLongClick()
•onFocusChange()
•onKey()
•onTouch()




                                 www.solusoft.es
controlesbasicos
                                      usados con frecuencia


Ejemplo de uso

El botón estará deshabilitado
hasta que la caja de texto
tenga algo escrito.
                                    onKey()
                                    setEnabled



                                    onClick()
                                    getText




                                            www.solusoft.es
controlesavanzados
        usados con frecuencia




             www.solusoft.es
controlesavanzados
                         ListView


    ListView

    •Muestra una lista
    desplazable de
    elementos.
    •Por defecto serán titulo
    y descripción.
    •Se rellenan utilizando
    un Adapter que inyecta
    contenidos.
    •Admiten mucha
    personalización.




                  www.solusoft.es
controlesavanzados
                ListView




          www.solusoft.es
controlesavanzados
                         ListView


    Elementos personalizados

    •Es frecuente definir el
    layout de los
    elementos individuales
    que se muestran en la
    lista.
    •Basta con generar un
    layout para el elemento y
    especificar como se
    rellena en el Adapter
    correspondiente.




                 www.solusoft.es
controlesavanzados
                ListView




          www.solusoft.es
controlesavanzados
                            ListView


    Actividad y Adaptador

    •La actividad que
    controla la lista debería
    extender la clase
    ListActivity

    •Para representar items
    con layouts complejos
    hay que implementar un
    CustomAdaptater que
    controlará como se
    muestra cada elemento




                  www.solusoft.es
controlesavanzados
                                                                     ListView Adapter


public class ControladorLista extends ListActivity {


   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

        setContentView(R.layout.lista);

        // Obtenemos la lista de Libros
        ArrayList<Libro> Libros = getItems();
        // Entregamos la lista de Libros al adaptador de la lista
        setListAdapter(new LibroAdapter(this, R.layout.lista_item, Libros));
   }




                                                                      www.solusoft.es
controlesavanzados
                                                                     ListView Adapter


private class LibroAdapter extends ArrayAdapter<Libro> {

    private ArrayList<Libro> items;

    public LibroAdapter(Context context, int textViewResourceId, ArrayList<Libro> items) {
        super(context, textViewResourceId, items);
        this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater)
                                       getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.lista_item, null);
        }
        Libro libro = items.get(position);
        if (libro != null) {
            TextView ttitulo = (TextView) v.findViewById(R.id.titulo);
            TextView tautor = (TextView) v.findViewById(R.id.autor);
            if (ttitulo != null) {
                ttitulo.setText(libro.getTitulo());
            }
            if (tautor != null) {
                tautor.setText(libro.getAutor());
            }
        }
        return v;
    }
}

                                                                      www.solusoft.es
controlesavanzados
                                                               ListView Adapter



Para ver este ejemplo en detalle…
http://blog.findemor.es/2011/02/como-programar-en-android-guia-3/
http://blog.findemor.es/2011/02/como-programar-en-android-guia-4/




                                                                    www.solusoft.es
controlesavanzados
                         Menu


    Menú de aplicación

    •Aparecen en la zona
    inferior al pulsar el
    botón de menú
    •Pueden definirse por
    XML o Runtime
    •Es posible agrupar
    opciones, establecer
    iconos, etc.
    •Recomendado para
    opciones secundarias




                  www.solusoft.es
controlesavanzados
                 Menu




          www.solusoft.es
controlesavanzados
                     Preferencias


    Preferencias

    •Permiten almacenar
    datos
    personales, opciones, et
    c, de tipo clave-valor.
    •No debe sustituir el uso
    de SQLite, ficheros, etc.
    •Pueden definirse por
    XML (DefaultShared) o
    Runtime (Shared)




                   www.solusoft.es
controlesavanzados
                       Preferencias


    Implementar la Activity…




    Y para leerlas…




                   www.solusoft.es
controlesavanzados
                     WebViews


    WebView

    •Permiten navegar
    •Permiten implementar
    aplicaciones Web o
    Híbridas
    •Pueden manejarse
    redirecciones, etc.
    •Admite mucha
    configuración
    •Es muy costoso en
    rendimiento




                www.solusoft.es
controlesavanzados
              WebViews




          www.solusoft.es
segundoplano
Trabajando en segundo plano




            www.solusoft.es
segundoplano
            Trabajando en segundo plano




UI

Thread

Alarm

Broadcast

Service




                        www.solusoft.es
segundoplano
                                    UI


UI thread – Main thread

•Es el hilo principal de la app.
•Lo crea el sistema cuando se
ejecuta la aplicación.
•Ejecuta la parte gráfica.
•Nunca debe bloquearse con
operaciones no instantáneas.
•Accede a Android UI toolkit




                          www.solusoft.es
segundoplano
               UI




     www.solusoft.es
segundoplano
                                Threads


Worker threads - AsyncTasks

•Hilos secundarios y tareas
asíncronas.
•Lo crea el hilo principal cuando
necesita realizar tareas no
instantáneas.
•Ningún hilo secundario debe
acceder a la Android UI toolkit.
•Podemos bloquear la interfaz
usando un




                        www.solusoft.es
segundoplano
           Threads




     www.solusoft.es
segundoplano
                                 Alarms


AlarmManager

•Es un hilo secundario.
•La aplicación configura y registra
su disparador en el
AlarmManager.
•Permite programar tareas en el
futuro o ejecutar aplicaciones.
•Se mantiene si el sistema entra
en reposo.
•Se eliminan si el sistema se
apaga o reinicia.
•¡Es más eficiente que un Worker
Thread!.



                        www.solusoft.es
segundoplano
            Alarms




     www.solusoft.es
segundoplano
                            Broadcast


BroadcastReceiver

•Es un hilo secundario.
•El sistema los ejecuta cuando se
genera un mensaje Broadcast.
•Permite detectar eventos del
sistema y desencadenar tareas.
•La aplicación también puede
emitir mensajes Broadcast.
•LocalBroadcastManager es más
eficiente y seguro, pero es de
ámbito local.




                      www.solusoft.es
segundoplano
                                  Broadcast




Declaración y permiso necesario




                           www.solusoft.es
segundoplano
                            Services


Services

•Es una aplicación en sí mismo,
sin interfaz de usuario.
•Los ejecuta algún componente
(como una actividad) llamando a
startService().
•Se ejecuta indefinidamente.
•Admite Bound de otros
componentes para ofrecer una
interfaz cliente-servidor.
•Puede generar hilos a su vez.
•Al tratarse de un componente:
deben declararse en el Manifest.



                      www.solusoft.es
segundoplano
                          Services




Permiso necesario




                    www.solusoft.es
dudaspendientes
     Preguntas sin resolver




          www.solusoft.es
dudaspendientes
                                    LOGs para depurar


Logcat       Almacenamiento




             Permiso necesario
          <uses-permission
          android:name="android.permission.WRITE_EXTERNAL_STORAGE" />




                                         www.solusoft.es
demogoogleplay
    Llegando a los usuarios




           www.solusoft.es
codetime
Es hora de probar




 www.solusoft.es
algunasreferencias
                                            En caso de duda…


Estas diapositivas
http://bit.ly/soluAndroid2
Guías de uso del API
http://developer.android.com/guide
Entrenamiento y ejemplos
http://developer.android.com/training
Referencias API
http://developer.android.com/reference
Instalar el SDK
http://developer.android.com/tools/index.html
Repositorio DEMO
https://github.com/findemor/FormacionAndroidEjemplos
Guías en mi blog 
http://blog.findemor.es/category/android/



                                                www.solusoft.es
playtime
                             Es hora de jugar


Tag V1   Ejercicio propuesto
         Servicio en segundo plano que
         almacena posiciones, que serán
         mostradas en una lista y se verán en un
         mapa al seleccionar una.
         Fecha corrección: 30/11/2012




                             www.solusoft.es
contactme
En caso de duda consulte a su farmacéutico




                   Manuel J. García
            Técnico de Innovación
                       en solusoft

               mgarcia@solusoft.es
                       @findemor


               Foro de Imagineware
       http://foro.imagineware.info



                          www.solusoft.es

Más contenido relacionado

Similar a Mecanismos de desarrollo en Android

Introducción al desarrollo Android, Sesión 1
Introducción al desarrollo Android, Sesión 1Introducción al desarrollo Android, Sesión 1
Introducción al desarrollo Android, Sesión 1findemor
 
Android UC3M Sesión 1
Android UC3M Sesión 1Android UC3M Sesión 1
Android UC3M Sesión 1topoos
 
Core Services
Core ServicesCore Services
Core ServicesAthento
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversionEudris Cabrera
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de arieslmrv
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)Ander Martinez
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0Ander Martinez
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Airespeterpunk
 
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...leofishman
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?Adrian Diaz Cervera
 

Similar a Mecanismos de desarrollo en Android (20)

Introducción al desarrollo Android, Sesión 1
Introducción al desarrollo Android, Sesión 1Introducción al desarrollo Android, Sesión 1
Introducción al desarrollo Android, Sesión 1
 
Android UC3M Sesión 1
Android UC3M Sesión 1Android UC3M Sesión 1
Android UC3M Sesión 1
 
Core Services
Core ServicesCore Services
Core Services
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de aries
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Curso de android
Curso de androidCurso de android
Curso de android
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
 
Sesion03 apuntes
Sesion03 apuntesSesion03 apuntes
Sesion03 apuntes
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de aries
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0
 
Java y xml
Java y xmlJava y xml
Java y xml
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
Desarrollo de aplicaciones con wpf
Desarrollo de aplicaciones con wpfDesarrollo de aplicaciones con wpf
Desarrollo de aplicaciones con wpf
 
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 

Último

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
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
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
 
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
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
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
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
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
 
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
 
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
 
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
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
_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
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
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
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
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
 

Último (20)

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
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
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
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
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
 
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
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
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
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
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
 
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
 
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
 
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
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
_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
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
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ú
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
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
 

Mecanismos de desarrollo en Android

  • 1. Mecanismos de desarrollo en Android www.solusoft.es
  • 2. avanzandoenandroid Indice Tipos de Aplicaciones Controles elementales Controles avanzados Preferencias Trabajando en segundo plano Logs Demo Google Play Referencia www.solusoft.es
  • 3. tiposdeapps ¿Dónde se desarrollan? Web Nativas Híbridas www.solusoft.es
  • 4. tiposdeapps ¿Dónde se desarrollan? Aplicaciones Nativas •Pensadas para ejecutarse en una plataforma específica. •En Android se desarrollan en Java. •Se ejecutan de forma eficiente. •Pueden acceder a todos los servicios y sensores del dispositivo. •La aplicación se compila y distribuye (son muy visibles). •No requiere conexión a internet. www.solusoft.es
  • 5. tiposdeapps ¿Dónde se desarrollan? Aplicaciones Web Móviles •Se ejecutan dentro del navegador. •Son Multiplataforma y reutilizables. •HTML(5), CSS y Javascript. •No requieren aprobación. •El mantenimiento es responsabilidad nuestra. •No son eficientes. •El acceso a recursos del teléfono es limitado. •No se distribuyen en el market. www.solusoft.es
  • 6. tiposdeapps ¿Dónde se desarrollan? Aplicaciones Híbridas •Una parte de la aplicación es específica de la plataforma, otra es multiplataforma y reutilizable. •El desarrollo es algo más complicado. •La comunicación con los recursos del teléfono se realiza mediante comunicadores. •No son especialmente eficientes. •Se distribuyen en el market. www.solusoft.es
  • 7. tiposdeapps ¿Dónde están los datos? Aisladas Conectadas Sincronizadas www.solusoft.es
  • 8. tiposdeapps ¿Dónde están los datos? Aplicaciones Aisladas •Los datos y el procesamiento se encuentran en el dispositivo. •No requiere conexión a internet. •El mantenimiento se centraliza. •Es más fácil de distribuir. •La comunicación entre dispositivos no es posible. •Padece un alto grado de fragmentación. •Es muy difícil migrar a otras plataformas. www.solusoft.es
  • 9. tiposdeapps ¿Dónde están los datos? Aplicaciones Conectadas •Los datos y el procesamiento se alojan en un servicio web. •Requiere conexión a internet constante. •El mantenimiento no es centralizado. •Su distribución es más compleja. •Permite comunicación entre dispositivos. •Padece un grado medio de fragmentación. •Se facilita migrar a otras plataformas. www.solusoft.es
  • 10. tiposdeapps ¿Dónde están los datos? Aplicaciones Sincronizadas •Los datos y el procesamiento se alojan en la web y parte en el dispositivo. •Permite su uso sin conexión a internet. •Su implementación es más complicada. •Los datos no están siempre actualizados. •Ventajas y desventajas de ambos tipos. www.solusoft.es
  • 11. controlesbasicos usados con frecuencia www.solusoft.es
  • 12. controlesbasicos usados con frecuencia Controles de Entrada Métodos frecuentes: •getText /getValue •setText / setValue •setEnabled •setVisibility Eventos relevantes: •onClick() •onLongClick() •onFocusChange() •onKey() •onTouch() www.solusoft.es
  • 13. controlesbasicos usados con frecuencia Ejemplo de uso El botón estará deshabilitado hasta que la caja de texto tenga algo escrito. onKey() setEnabled onClick() getText www.solusoft.es
  • 14. controlesavanzados usados con frecuencia www.solusoft.es
  • 15. controlesavanzados ListView ListView •Muestra una lista desplazable de elementos. •Por defecto serán titulo y descripción. •Se rellenan utilizando un Adapter que inyecta contenidos. •Admiten mucha personalización. www.solusoft.es
  • 16. controlesavanzados ListView www.solusoft.es
  • 17. controlesavanzados ListView Elementos personalizados •Es frecuente definir el layout de los elementos individuales que se muestran en la lista. •Basta con generar un layout para el elemento y especificar como se rellena en el Adapter correspondiente. www.solusoft.es
  • 18. controlesavanzados ListView www.solusoft.es
  • 19. controlesavanzados ListView Actividad y Adaptador •La actividad que controla la lista debería extender la clase ListActivity •Para representar items con layouts complejos hay que implementar un CustomAdaptater que controlará como se muestra cada elemento www.solusoft.es
  • 20. controlesavanzados ListView Adapter public class ControladorLista extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lista); // Obtenemos la lista de Libros ArrayList<Libro> Libros = getItems(); // Entregamos la lista de Libros al adaptador de la lista setListAdapter(new LibroAdapter(this, R.layout.lista_item, Libros)); } www.solusoft.es
  • 21. controlesavanzados ListView Adapter private class LibroAdapter extends ArrayAdapter<Libro> { private ArrayList<Libro> items; public LibroAdapter(Context context, int textViewResourceId, ArrayList<Libro> items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.lista_item, null); } Libro libro = items.get(position); if (libro != null) { TextView ttitulo = (TextView) v.findViewById(R.id.titulo); TextView tautor = (TextView) v.findViewById(R.id.autor); if (ttitulo != null) { ttitulo.setText(libro.getTitulo()); } if (tautor != null) { tautor.setText(libro.getAutor()); } } return v; } } www.solusoft.es
  • 22. controlesavanzados ListView Adapter Para ver este ejemplo en detalle… http://blog.findemor.es/2011/02/como-programar-en-android-guia-3/ http://blog.findemor.es/2011/02/como-programar-en-android-guia-4/ www.solusoft.es
  • 23. controlesavanzados Menu Menú de aplicación •Aparecen en la zona inferior al pulsar el botón de menú •Pueden definirse por XML o Runtime •Es posible agrupar opciones, establecer iconos, etc. •Recomendado para opciones secundarias www.solusoft.es
  • 24. controlesavanzados Menu www.solusoft.es
  • 25. controlesavanzados Preferencias Preferencias •Permiten almacenar datos personales, opciones, et c, de tipo clave-valor. •No debe sustituir el uso de SQLite, ficheros, etc. •Pueden definirse por XML (DefaultShared) o Runtime (Shared) www.solusoft.es
  • 26. controlesavanzados Preferencias Implementar la Activity… Y para leerlas… www.solusoft.es
  • 27. controlesavanzados WebViews WebView •Permiten navegar •Permiten implementar aplicaciones Web o Híbridas •Pueden manejarse redirecciones, etc. •Admite mucha configuración •Es muy costoso en rendimiento www.solusoft.es
  • 28. controlesavanzados WebViews www.solusoft.es
  • 29. segundoplano Trabajando en segundo plano www.solusoft.es
  • 30. segundoplano Trabajando en segundo plano UI Thread Alarm Broadcast Service www.solusoft.es
  • 31. segundoplano UI UI thread – Main thread •Es el hilo principal de la app. •Lo crea el sistema cuando se ejecuta la aplicación. •Ejecuta la parte gráfica. •Nunca debe bloquearse con operaciones no instantáneas. •Accede a Android UI toolkit www.solusoft.es
  • 32. segundoplano UI www.solusoft.es
  • 33. segundoplano Threads Worker threads - AsyncTasks •Hilos secundarios y tareas asíncronas. •Lo crea el hilo principal cuando necesita realizar tareas no instantáneas. •Ningún hilo secundario debe acceder a la Android UI toolkit. •Podemos bloquear la interfaz usando un www.solusoft.es
  • 34. segundoplano Threads www.solusoft.es
  • 35. segundoplano Alarms AlarmManager •Es un hilo secundario. •La aplicación configura y registra su disparador en el AlarmManager. •Permite programar tareas en el futuro o ejecutar aplicaciones. •Se mantiene si el sistema entra en reposo. •Se eliminan si el sistema se apaga o reinicia. •¡Es más eficiente que un Worker Thread!. www.solusoft.es
  • 36. segundoplano Alarms www.solusoft.es
  • 37. segundoplano Broadcast BroadcastReceiver •Es un hilo secundario. •El sistema los ejecuta cuando se genera un mensaje Broadcast. •Permite detectar eventos del sistema y desencadenar tareas. •La aplicación también puede emitir mensajes Broadcast. •LocalBroadcastManager es más eficiente y seguro, pero es de ámbito local. www.solusoft.es
  • 38. segundoplano Broadcast Declaración y permiso necesario www.solusoft.es
  • 39. segundoplano Services Services •Es una aplicación en sí mismo, sin interfaz de usuario. •Los ejecuta algún componente (como una actividad) llamando a startService(). •Se ejecuta indefinidamente. •Admite Bound de otros componentes para ofrecer una interfaz cliente-servidor. •Puede generar hilos a su vez. •Al tratarse de un componente: deben declararse en el Manifest. www.solusoft.es
  • 40. segundoplano Services Permiso necesario www.solusoft.es
  • 41. dudaspendientes Preguntas sin resolver www.solusoft.es
  • 42. dudaspendientes LOGs para depurar Logcat Almacenamiento Permiso necesario <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> www.solusoft.es
  • 43. demogoogleplay Llegando a los usuarios www.solusoft.es
  • 44. codetime Es hora de probar www.solusoft.es
  • 45. algunasreferencias En caso de duda… Estas diapositivas http://bit.ly/soluAndroid2 Guías de uso del API http://developer.android.com/guide Entrenamiento y ejemplos http://developer.android.com/training Referencias API http://developer.android.com/reference Instalar el SDK http://developer.android.com/tools/index.html Repositorio DEMO https://github.com/findemor/FormacionAndroidEjemplos Guías en mi blog  http://blog.findemor.es/category/android/ www.solusoft.es
  • 46. playtime Es hora de jugar Tag V1 Ejercicio propuesto Servicio en segundo plano que almacena posiciones, que serán mostradas en una lista y se verán en un mapa al seleccionar una. Fecha corrección: 30/11/2012 www.solusoft.es
  • 47. contactme En caso de duda consulte a su farmacéutico Manuel J. García Técnico de Innovación en solusoft mgarcia@solusoft.es @findemor Foro de Imagineware http://foro.imagineware.info www.solusoft.es