SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Análisis y Diseño
      de Software


      Interfaces de Usuario
 Introducción con Ejemplo SobreTeleco

      Carlos A. Iglesias <cif@gsi.dit.upm.es>
     Departamento de Ingeniería de Sistemas Telemáticos
                                 http://moodle.dit.upm.es
Temario
● 4.1   Introducción a Android [Gar10, cap1-2 ]
● 4.2   Desarrollo con Android [Gar10, cap3-5]
● 4.3   Interfaces de Usuario [Gar10, cap6]
 –  4.3.1 Ejemplo SobreTeleco
  – 4.3.2 Layouts y Views
  – 4.3.3 Widgets y Trazas. Interfaz del proyecto Yamba
  – 4.3.4 Hebras e internacionalización. Interfaz Yamba.
● 4.4 Intenciones y Servicios [Gar10, cap7-8]
● 4.5 Acceso   a Datos [Gar10, cap9]

                                Interfaces de Usuario      2
Bibliografía
●   Libro de texto:
    – [Gar10] Learning Android, Marko Gargenta,
        O'Reilly, 2010. Disponible en
        http://ofps.oreilly.com/titles/9781449390501/
    –   Capítulos 4-5
    –   http://www.youtube.com/watch?v=SW82-YOOMIs
●   Android Developers
    –   http://developer.android.com/guide/topics/fundamentals.html
    –   http://developer.android.com/guide/topics/ui/index.html

                                      Interfaces de Usuario           3
Bibliografía complementaria
●
    Tutorial Android UI
      –   http://mobile.tutsplus.com/series/android-user-interface-design/
      –   http://developer.android.com/resources/tutorials/views/index.html
      –   http://www.droiddraw.org/widgetguide.html

●   Ejemplos
      –   http://apcmag.com/building-a-simple-android-app.htm
      –   http://www.maestrosdelweb.com/editorial/curso-android-construir-lector-de-feeds/




                                                          Interfaces de Usuario              4
Objetivos
● Entender los conceptos básicos para desarrollar una
 interfaz de usuario en Android
● Entender   la estructura de un proyecto Android
● Entender  qué son los recursos, R, las disposiciones
 (layouts) y las vistas (view)
● Saber   crear una actividad y asociarle un layout
● Asociar   un gestor de eventos a un objeto View en el layout
● Saber   inspeccionar la jerarquía de Vistas en eclipse
● Desarrollar   una primera interfaz


                                       Interfaces de Usuario     5
Interfaces en Android
          ●   “Separation of
              concerns”
               –   Funcionalidad
                   (Java)
               –   Disposición (XML)
          ●   Podemos definir
              diferentes layouts
              para diferentes
              dispositivos

              Interfaces de Usuario    6
UI en Android
●    En Android podemos definir de dos formas
    las interfaces:
    –   Declarativa:
         •   En XML
         •   Parecido a crear una página web en HTML
    –   Programática:
         •   En Java
         •   Parecido a interfaces en Java (Swing / AWT)


                                    Interfaces de Usuario   7
UIs: Visión general:
           Views y Layout
●   Vista (View): componente
●   Disposición (Layout): contenedor




                          Interfaces de Usuario   8
El lenguaje XML (eXtensible
         Markup Language)
●   Repasar FTEL
     –   http://www.gsi.dit.upm.es/~gfer/ftel/Procesadores.pdf
●   XML está diseñado para la representación
    de datos a efectos de almacenamiento y
    comunicación <?xml version="1.0" encoding="UTF-8"?>
                   <!DOCTYPE asignaturas2010 SYSTEM "asignaturas.dtd">
                           <asignaturas2010>
                             <asignatura codigo="95000024" acronimo="ADSW">
                                <nombre>Análisis y Diseño del Software</nombre>
                                <creditos>4.5</creditos>
                                <semestre S="2" />
                                <tipo T="obligatoria" />
                                <guia>
                                   <url href="http//www.lab.dit.upm.es/adsw" />
                                </guia>
                              </asignatura>
                           <!--otras asignaturas-->
                           </asignaturas2010>
                                              Interfaces de Usuario               9
Ejercicio: SobreTeleco
●   Vamos a seguir el ejemplo un poco
    modificado para la asignatura
    –   http://apcmag.com/building-a-simple-android-app.htm
●   Pasos:
    –   Crear un proyecto Android en Eclipse:
        SobreTeleco




                                       Interfaces de Usuario   10
Explorar proyecto Android

              CÓDIGO FUENTE

              CÓDIGO GENERADO

              BIBLIOTECAS
              ASSET
           CÓDIGO COMPILADO DEVX, FICHERO APK



              RECURSOS



              CONFIGURACIÓN
                Interfaces de Usuario       11
Ejercicio
●   Explora la estructura del proyecto
    HolaMundo que hicimos en el capítulo
    anterior.
    –   ¿Qué hay en bin?
    –   Pincha en main.xml, y selecciona la pestaña
        graphicalLayout ¿qué ves?




                               Interfaces de Usuario   12
Explorando un proyecto...
● source:    fuentes java del proyecto
● gen:ficheros generados del proyecto. Android
 genera R.java que 'mapea' los recursos UI XML a
 Java
● library:   framework Android
● assets:
       ficheros de cualquier formato, que
 podemos tratar como InputStream (veremos)
● res:recursos, organizados en una estructura fija en
 imágenes, layout y texto. Se referenciarán con R:
 R.layout (veremos)
                                 Interfaces de Usuario   13
Recursos
● Como hay gran variedad de resoluciones
 y tamaños de pantallas (teléfono, tableta,
 TV), podemos ofrecer gráficos alternativos
 con diferente resolución / tamaño.
●   Ver
http://developer.android.com/guide/topics/resources/providing-resources.html

●   Ej.                                                Recurso por defecto

                                                       Recurso alta densidad
                                                       (high dpi, dots per inch,
                                                       aprox. 240 dpi)

                                          Interfaces de Usuario                    14
Recursos




http://coding.smashingmagazine.com/2011/06/30/designing-for-android/
http://androideity.com/2011/08/04/disenando-para-android/
                                     Interfaces de Usuario             15
Crear una actividad




 Fija como contenido el fichero
 res/layout/main.xml. Se genera una
 referencia en R este fichero:
 R.layout.main

                          Interfaces de Usuario   16
Referencias a imágenes



                   R.drawable.ic_launcher



                   R.layout.main
                   R.values.strings

Se selecciona la
imagen según la
resolución del
dispositivo


                                   Interfaces de Usuario   17
Modificando el layout
     (main.xml)




                         Doble click




           Interfaces de Usuario       18
Cambiamos la interfaz




           Interfaces de Usuario   19
Refactorización
●   Técnica de software que consiste en
    modificar el código para que tenga “más
    calidad”
●    Ej. extraer una interfaz de una clase pasar
    unas líneas de código a método privado,
    renombrar una clase o método, …
●    Eclipse y muchos IDEs dan soporte a la
    refactorización: Menú->Refactor

                            Interfaces de Usuario   20
Refactorización
●   Pasamos el string a res/values/strings.xml




                          Interfaces de Usuario   21
Añadir botón




       Interfaces de Usuario   22
Botón




Llevamos este strings.xml




                               Interfaces de Usuario   23
Cambiamos el botón




          Interfaces de Usuario   24
Y desplegamos




     El botón no hace nada en el terminal




            Interfaces de Usuario           25
Añadir funcionalidad botón
             (I)
  main.xml




              Interfaces de Usuario   26
Añadir funcionalidad botón
            (II)




    Toast es un tipo de notificación en pantalla

                                 Interfaces de Usuario   27
Añadir funcionalidad botón
           (III)




              Interfaces de Usuario   28
Refactorizar String




          Interfaces de Usuario   29
¡Probar!




     Interfaces de Usuario   30
Copiamos imágenes
●   Vamos a copiar las imágenes que vamos a
    usar (están en moodle en un zip)
●   Las copiamos en res/drawable-hdpi




                         Interfaces de Usuario   31
Añadiendo una imagen




           Interfaces de Usuario   32
Añadiendo una imagen




           Interfaces de Usuario   33
Modificando tamaño




          Interfaces de Usuario   34
ImageView
● contentDescription: mensaje sobre qué
 representa la imagen, por accesibilidad
● match_parent: tan grande como el padre
● wrap_content: tan grande como para que
 quepa el texto
● weight: escalado


●   0dp: el que fije weight
                              Interfaces de Usuario   35
Cambiando la imagen (I)




            Interfaces de Usuario   36
Cambiando la imagen (II)




             Interfaces de Usuario   37
¡Lo probamos!




       Interfaces de Usuario   38
Recapitulando (I)
● Hemos hecho una aplicación
 con 1 Actividad
● Lasactividades las creamos
 en Java extendiendo Activity
  –   Cuando se lance la actividad se
      invocará el método onCreate,
      que tiene que la vista
      (setContentView(R.layout.main)




                                Interfaces de Usuario   39
R y setContentView
●R es una clase Java que se genera
 automáticamente a partir de un 'layout' XML
● setContentView(R.layout.main)  – usado en
 onCreate() - el proceso se llama 'insuflar'
 (inflate)
  –   Lee el XML, crea objetos java por cada vista
      (componente: botón, texto, imagen, …)
  –   Fija atributos de cada objeto por cada propiedad
      XML

                               Interfaces de Usuario     40
Recapitulando (II)
● En el layout XML hemos
 definido
  –   un layout (LinearLayout)
      que contiene
  –   Vistas (TextView,
      ImageView, Button)
● Lostextos los ponemos
 en res/values/strings.xml



                                 Interfaces de Usuario   41
Hierarchy Viewer
●   Lanza la aplicación (Run-as) en el
    emulador (no vale en dispositivo real!)
●   Abre la jerarquía
    –   Window->Open Perspective-> Hierarchy
        viewer




                             Interfaces de Usuario   42
Hierarchy Viewer
●   Pincha en Windows en la aplicación que
    quieres depurar, y ya lo ves :)




                         Interfaces de Usuario   43
Perspectiva Hierarchy Viewer




   Recuerda que sólo funciona con el emulador lanzado

                                   Interfaces de Usuario   44
Ej. FrameLayout




        Interfaces de Usuario   45
Ej. TextView




       Interfaces de Usuario   46
Ej. TextView




       Interfaces de Usuario   47
Los tres puntos
                    (curiosidad)
● Lostres puntos indican las prestaciones, miden de izda a
 derecha los tiempos del proceso de visualización (render)
  –   Measure time: calcular alto/ancho
  –   Layout time: dice a las vistas las posiciones dentro de las medidas
  –   Draw time: pinta los componentes
● Verde:   más rápido que el 50% de las otras vistas
● Amarillo:   más lento que el 50% de las otras vistas
● Rojo:   el más lento del árbol




                                          Interfaces de Usuario             48
Resumen
● Hemos   aprendido los principales componentes
 de una aplicación: actividades, servicios,
 proveedores de contenidos y receptores de
 difusión
● Las   actividades y servicios tienen un ciclo de vida
● Las
    intenciones permiten que el sistema active
 componentes
● El
   contexto de aplicación permite que los
 componentes compartan datos y recursos

                               Interfaces de Usuario      49
¿Preguntas?




      Interfaces de Usuario   50

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Swing
SwingSwing
Swing
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Curso Ejb3
 
Introduccion al Visual Basic subido JHS
Introduccion al Visual Basic subido JHSIntroduccion al Visual Basic subido JHS
Introduccion al Visual Basic subido JHS
 
Gps
GpsGps
Gps
 
Software Libre Y Ambientes virtuales de aprendizaje
Software Libre Y Ambientes virtuales de aprendizajeSoftware Libre Y Ambientes virtuales de aprendizaje
Software Libre Y Ambientes virtuales de aprendizaje
 

Destacado

Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Carlos A. Iglesias
 
Nc cuarto cuadrante
Nc cuarto cuadranteNc cuarto cuadrante
Nc cuarto cuadranteamtlucca
 
Tema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_serviciosTema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_serviciosCarlos A. Iglesias
 
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]Websec México, S.C.
 

Destacado (7)

March 22, 2013 Revenue Generation Task Force Meeting
March 22, 2013 Revenue Generation Task Force MeetingMarch 22, 2013 Revenue Generation Task Force Meeting
March 22, 2013 Revenue Generation Task Force Meeting
 
Tema 4.8 Preferencias
Tema 4.8 PreferenciasTema 4.8 Preferencias
Tema 4.8 Preferencias
 
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
 
Nc cuarto cuadrante
Nc cuarto cuadranteNc cuarto cuadrante
Nc cuarto cuadrante
 
Tema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_serviciosTema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_servicios
 
Android basics
Android basicsAndroid basics
Android basics
 
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
 

Similar a Tema 4 3_1_interfaces_de_usuario

MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
Visteme con 'Clean Architecture' que tengo prisas
Visteme con 'Clean Architecture' que tengo prisasVisteme con 'Clean Architecture' que tengo prisas
Visteme con 'Clean Architecture' que tengo prisasJosé María Pérez Ramos
 
Introducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu FuturoIntroducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu FuturoMaribel Maisano
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de AndroidJavier Muñoz
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"Alberto Ruibal
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdfDianaSullcav
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en androidEscurra Walter
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdfjuniorhuallpaaiquipa1
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de androidwiliam lliulli herrera
 
Trabajo bañott
Trabajo bañottTrabajo bañott
Trabajo bañottEleny30
 
Trabajo baño
Trabajo bañoTrabajo baño
Trabajo bañoEleny30
 

Similar a Tema 4 3_1_interfaces_de_usuario (20)

Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Visteme con 'Clean Architecture' que tengo prisas
Visteme con 'Clean Architecture' que tengo prisasVisteme con 'Clean Architecture' que tengo prisas
Visteme con 'Clean Architecture' que tengo prisas
 
Introducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu FuturoIntroducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu Futuro
 
Manual android
Manual androidManual android
Manual android
 
Presentacion taller android
Presentacion taller androidPresentacion taller android
Presentacion taller android
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de Android
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
Iniciación android
Iniciación androidIniciación android
Iniciación android
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdf
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
 
Lenguajes de Programación: Android
Lenguajes de Programación: AndroidLenguajes de Programación: Android
Lenguajes de Programación: Android
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de android
 
Trabajo bañott
Trabajo bañottTrabajo bañott
Trabajo bañott
 
Trabajo baño
Trabajo bañoTrabajo baño
Trabajo baño
 
principios básicos
principios básicosprincipios básicos
principios básicos
 
Effective Android UI - spanish
Effective Android UI - spanishEffective Android UI - spanish
Effective Android UI - spanish
 

Más de Carlos A. Iglesias (20)

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 
Tema 4.9 Hebras
Tema 4.9 HebrasTema 4.9 Hebras
Tema 4.9 Hebras
 
Gestion de Ideas
Gestion  de IdeasGestion  de Ideas
Gestion de Ideas
 

Último

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
 
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
 
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
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
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
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
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
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
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
 

Último (20)

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
 
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
 
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
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
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
 
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
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
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
 
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)
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
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.
 

Tema 4 3_1_interfaces_de_usuario

  • 1. Análisis y Diseño de Software Interfaces de Usuario Introducción con Ejemplo SobreTeleco Carlos A. Iglesias <cif@gsi.dit.upm.es> Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  • 2. Temario ● 4.1 Introducción a Android [Gar10, cap1-2 ] ● 4.2 Desarrollo con Android [Gar10, cap3-5] ● 4.3 Interfaces de Usuario [Gar10, cap6] – 4.3.1 Ejemplo SobreTeleco – 4.3.2 Layouts y Views – 4.3.3 Widgets y Trazas. Interfaz del proyecto Yamba – 4.3.4 Hebras e internacionalización. Interfaz Yamba. ● 4.4 Intenciones y Servicios [Gar10, cap7-8] ● 4.5 Acceso a Datos [Gar10, cap9] Interfaces de Usuario 2
  • 3. Bibliografía ● Libro de texto: – [Gar10] Learning Android, Marko Gargenta, O'Reilly, 2010. Disponible en http://ofps.oreilly.com/titles/9781449390501/ – Capítulos 4-5 – http://www.youtube.com/watch?v=SW82-YOOMIs ● Android Developers – http://developer.android.com/guide/topics/fundamentals.html – http://developer.android.com/guide/topics/ui/index.html Interfaces de Usuario 3
  • 4. Bibliografía complementaria ● Tutorial Android UI – http://mobile.tutsplus.com/series/android-user-interface-design/ – http://developer.android.com/resources/tutorials/views/index.html – http://www.droiddraw.org/widgetguide.html ● Ejemplos – http://apcmag.com/building-a-simple-android-app.htm – http://www.maestrosdelweb.com/editorial/curso-android-construir-lector-de-feeds/ Interfaces de Usuario 4
  • 5. Objetivos ● Entender los conceptos básicos para desarrollar una interfaz de usuario en Android ● Entender la estructura de un proyecto Android ● Entender qué son los recursos, R, las disposiciones (layouts) y las vistas (view) ● Saber crear una actividad y asociarle un layout ● Asociar un gestor de eventos a un objeto View en el layout ● Saber inspeccionar la jerarquía de Vistas en eclipse ● Desarrollar una primera interfaz Interfaces de Usuario 5
  • 6. Interfaces en Android ● “Separation of concerns” – Funcionalidad (Java) – Disposición (XML) ● Podemos definir diferentes layouts para diferentes dispositivos Interfaces de Usuario 6
  • 7. UI en Android ● En Android podemos definir de dos formas las interfaces: – Declarativa: • En XML • Parecido a crear una página web en HTML – Programática: • En Java • Parecido a interfaces en Java (Swing / AWT) Interfaces de Usuario 7
  • 8. UIs: Visión general: Views y Layout ● Vista (View): componente ● Disposición (Layout): contenedor Interfaces de Usuario 8
  • 9. El lenguaje XML (eXtensible Markup Language) ● Repasar FTEL – http://www.gsi.dit.upm.es/~gfer/ftel/Procesadores.pdf ● XML está diseñado para la representación de datos a efectos de almacenamiento y comunicación <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE asignaturas2010 SYSTEM "asignaturas.dtd"> <asignaturas2010> <asignatura codigo="95000024" acronimo="ADSW"> <nombre>Análisis y Diseño del Software</nombre> <creditos>4.5</creditos> <semestre S="2" /> <tipo T="obligatoria" /> <guia> <url href="http//www.lab.dit.upm.es/adsw" /> </guia> </asignatura> <!--otras asignaturas--> </asignaturas2010> Interfaces de Usuario 9
  • 10. Ejercicio: SobreTeleco ● Vamos a seguir el ejemplo un poco modificado para la asignatura – http://apcmag.com/building-a-simple-android-app.htm ● Pasos: – Crear un proyecto Android en Eclipse: SobreTeleco Interfaces de Usuario 10
  • 11. Explorar proyecto Android CÓDIGO FUENTE CÓDIGO GENERADO BIBLIOTECAS ASSET CÓDIGO COMPILADO DEVX, FICHERO APK RECURSOS CONFIGURACIÓN Interfaces de Usuario 11
  • 12. Ejercicio ● Explora la estructura del proyecto HolaMundo que hicimos en el capítulo anterior. – ¿Qué hay en bin? – Pincha en main.xml, y selecciona la pestaña graphicalLayout ¿qué ves? Interfaces de Usuario 12
  • 13. Explorando un proyecto... ● source: fuentes java del proyecto ● gen:ficheros generados del proyecto. Android genera R.java que 'mapea' los recursos UI XML a Java ● library: framework Android ● assets: ficheros de cualquier formato, que podemos tratar como InputStream (veremos) ● res:recursos, organizados en una estructura fija en imágenes, layout y texto. Se referenciarán con R: R.layout (veremos) Interfaces de Usuario 13
  • 14. Recursos ● Como hay gran variedad de resoluciones y tamaños de pantallas (teléfono, tableta, TV), podemos ofrecer gráficos alternativos con diferente resolución / tamaño. ● Ver http://developer.android.com/guide/topics/resources/providing-resources.html ● Ej. Recurso por defecto Recurso alta densidad (high dpi, dots per inch, aprox. 240 dpi) Interfaces de Usuario 14
  • 16. Crear una actividad Fija como contenido el fichero res/layout/main.xml. Se genera una referencia en R este fichero: R.layout.main Interfaces de Usuario 16
  • 17. Referencias a imágenes R.drawable.ic_launcher R.layout.main R.values.strings Se selecciona la imagen según la resolución del dispositivo Interfaces de Usuario 17
  • 18. Modificando el layout (main.xml) Doble click Interfaces de Usuario 18
  • 19. Cambiamos la interfaz Interfaces de Usuario 19
  • 20. Refactorización ● Técnica de software que consiste en modificar el código para que tenga “más calidad” ● Ej. extraer una interfaz de una clase pasar unas líneas de código a método privado, renombrar una clase o método, … ● Eclipse y muchos IDEs dan soporte a la refactorización: Menú->Refactor Interfaces de Usuario 20
  • 21. Refactorización ● Pasamos el string a res/values/strings.xml Interfaces de Usuario 21
  • 22. Añadir botón Interfaces de Usuario 22
  • 23. Botón Llevamos este strings.xml Interfaces de Usuario 23
  • 24. Cambiamos el botón Interfaces de Usuario 24
  • 25. Y desplegamos El botón no hace nada en el terminal Interfaces de Usuario 25
  • 26. Añadir funcionalidad botón (I) main.xml Interfaces de Usuario 26
  • 27. Añadir funcionalidad botón (II) Toast es un tipo de notificación en pantalla Interfaces de Usuario 27
  • 28. Añadir funcionalidad botón (III) Interfaces de Usuario 28
  • 29. Refactorizar String Interfaces de Usuario 29
  • 30. ¡Probar! Interfaces de Usuario 30
  • 31. Copiamos imágenes ● Vamos a copiar las imágenes que vamos a usar (están en moodle en un zip) ● Las copiamos en res/drawable-hdpi Interfaces de Usuario 31
  • 32. Añadiendo una imagen Interfaces de Usuario 32
  • 33. Añadiendo una imagen Interfaces de Usuario 33
  • 34. Modificando tamaño Interfaces de Usuario 34
  • 35. ImageView ● contentDescription: mensaje sobre qué representa la imagen, por accesibilidad ● match_parent: tan grande como el padre ● wrap_content: tan grande como para que quepa el texto ● weight: escalado ● 0dp: el que fije weight Interfaces de Usuario 35
  • 36. Cambiando la imagen (I) Interfaces de Usuario 36
  • 37. Cambiando la imagen (II) Interfaces de Usuario 37
  • 38. ¡Lo probamos! Interfaces de Usuario 38
  • 39. Recapitulando (I) ● Hemos hecho una aplicación con 1 Actividad ● Lasactividades las creamos en Java extendiendo Activity – Cuando se lance la actividad se invocará el método onCreate, que tiene que la vista (setContentView(R.layout.main) Interfaces de Usuario 39
  • 40. R y setContentView ●R es una clase Java que se genera automáticamente a partir de un 'layout' XML ● setContentView(R.layout.main) – usado en onCreate() - el proceso se llama 'insuflar' (inflate) – Lee el XML, crea objetos java por cada vista (componente: botón, texto, imagen, …) – Fija atributos de cada objeto por cada propiedad XML Interfaces de Usuario 40
  • 41. Recapitulando (II) ● En el layout XML hemos definido – un layout (LinearLayout) que contiene – Vistas (TextView, ImageView, Button) ● Lostextos los ponemos en res/values/strings.xml Interfaces de Usuario 41
  • 42. Hierarchy Viewer ● Lanza la aplicación (Run-as) en el emulador (no vale en dispositivo real!) ● Abre la jerarquía – Window->Open Perspective-> Hierarchy viewer Interfaces de Usuario 42
  • 43. Hierarchy Viewer ● Pincha en Windows en la aplicación que quieres depurar, y ya lo ves :) Interfaces de Usuario 43
  • 44. Perspectiva Hierarchy Viewer Recuerda que sólo funciona con el emulador lanzado Interfaces de Usuario 44
  • 45. Ej. FrameLayout Interfaces de Usuario 45
  • 46. Ej. TextView Interfaces de Usuario 46
  • 47. Ej. TextView Interfaces de Usuario 47
  • 48. Los tres puntos (curiosidad) ● Lostres puntos indican las prestaciones, miden de izda a derecha los tiempos del proceso de visualización (render) – Measure time: calcular alto/ancho – Layout time: dice a las vistas las posiciones dentro de las medidas – Draw time: pinta los componentes ● Verde: más rápido que el 50% de las otras vistas ● Amarillo: más lento que el 50% de las otras vistas ● Rojo: el más lento del árbol Interfaces de Usuario 48
  • 49. Resumen ● Hemos aprendido los principales componentes de una aplicación: actividades, servicios, proveedores de contenidos y receptores de difusión ● Las actividades y servicios tienen un ciclo de vida ● Las intenciones permiten que el sistema active componentes ● El contexto de aplicación permite que los componentes compartan datos y recursos Interfaces de Usuario 49
  • 50. ¿Preguntas? Interfaces de Usuario 50