SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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?
 

Kürzlich hochgeladen

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
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
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Kürzlich hochgeladen (20)

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
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
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

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