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, etc, 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

Destacado

Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008
Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008
Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008Warren Ang
 
Sustentabilidade
SustentabilidadeSustentabilidade
Sustentabilidade-
 
Contemplar a ria de Dia e de Noite
Contemplar a ria de Dia e de NoiteContemplar a ria de Dia e de Noite
Contemplar a ria de Dia e de NoiteEstrela Romão
 
Material de estudio la educación en valores y los medios d melina
Material de estudio la educación en valores y los medios d melinaMaterial de estudio la educación en valores y los medios d melina
Material de estudio la educación en valores y los medios d melinamelisanz2
 
Ppt projetos sociais aspectos basicos) ufc 2102 ultim versão
Ppt projetos sociais aspectos basicos) ufc 2102 ultim versãoPpt projetos sociais aspectos basicos) ufc 2102 ultim versão
Ppt projetos sociais aspectos basicos) ufc 2102 ultim versãoMagali Kleber
 
Sucesso pessoal e profissional v6 short pdf
Sucesso pessoal e profissional v6 short pdfSucesso pessoal e profissional v6 short pdf
Sucesso pessoal e profissional v6 short pdfTercio Annunciado
 
Media Kit Póli Assessoria
Media Kit Póli AssessoriaMedia Kit Póli Assessoria
Media Kit Póli Assessoriapoliassessoria
 
Act 7 8.3 de 10 epistemologia
Act 7 8.3 de 10 epistemologiaAct 7 8.3 de 10 epistemologia
Act 7 8.3 de 10 epistemologiaLina Pedraza
 

Destacado (20)

Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008
Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008
Ways to Optimize Ribbon Blender Efficiency, PBE Jan 2008
 
El realismo
El realismoEl realismo
El realismo
 
Expo hardware
Expo hardwareExpo hardware
Expo hardware
 
Sustentabilidade
SustentabilidadeSustentabilidade
Sustentabilidade
 
Contemplar a ria de Dia e de Noite
Contemplar a ria de Dia e de NoiteContemplar a ria de Dia e de Noite
Contemplar a ria de Dia e de Noite
 
Material de estudio la educación en valores y los medios d melina
Material de estudio la educación en valores y los medios d melinaMaterial de estudio la educación en valores y los medios d melina
Material de estudio la educación en valores y los medios d melina
 
Ppt projetos sociais aspectos basicos) ufc 2102 ultim versão
Ppt projetos sociais aspectos basicos) ufc 2102 ultim versãoPpt projetos sociais aspectos basicos) ufc 2102 ultim versão
Ppt projetos sociais aspectos basicos) ufc 2102 ultim versão
 
Es posible ser feliz
Es posible ser felizEs posible ser feliz
Es posible ser feliz
 
Calidad total
Calidad totalCalidad total
Calidad total
 
2. Espacio
2. Espacio2. Espacio
2. Espacio
 
Torres angelica aa6
Torres angelica aa6Torres angelica aa6
Torres angelica aa6
 
Como buscar informacion en internet
Como  buscar  informacion  en  internetComo  buscar  informacion  en  internet
Como buscar informacion en internet
 
Presentación1
Presentación1Presentación1
Presentación1
 
Soluciones químicas
Soluciones químicasSoluciones químicas
Soluciones químicas
 
Catedra ecci valores
Catedra ecci valoresCatedra ecci valores
Catedra ecci valores
 
Conoce nuestro mundo
Conoce nuestro mundoConoce nuestro mundo
Conoce nuestro mundo
 
Pediatria
PediatriaPediatria
Pediatria
 
Sucesso pessoal e profissional v6 short pdf
Sucesso pessoal e profissional v6 short pdfSucesso pessoal e profissional v6 short pdf
Sucesso pessoal e profissional v6 short pdf
 
Media Kit Póli Assessoria
Media Kit Póli AssessoriaMedia Kit Póli Assessoria
Media Kit Póli Assessoria
 
Act 7 8.3 de 10 epistemologia
Act 7 8.3 de 10 epistemologiaAct 7 8.3 de 10 epistemologia
Act 7 8.3 de 10 epistemologia
 

Similar a Android UC3M Sesión 2

Android UC3M Sesión 1
Android UC3M Sesión 1Android UC3M Sesión 1
Android UC3M Sesión 1topoos
 
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
 
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 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
 
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
 
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
 

Similar a Android UC3M Sesión 2 (20)

Android UC3M Sesión 1
Android UC3M Sesión 1Android UC3M Sesión 1
Android UC3M Sesión 1
 
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
 
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
 
Java y xml
Java y xmlJava y xml
Java y xml
 
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
 
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)
 
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
 
servlets
servlets servlets
servlets
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (16)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Android UC3M Sesión 2

  • 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, etc, 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