Temas y Estilos
Temas y Estilos
El atributo parent es opcional y especifica el ID de otro estilo del cual queremos heredar sus
propiedades, pudiendo así sobreescribirlas.
Herencia
El atributo parent sirve para heredar propiedades de otros estilos, podemos heredar
tanto de estilos del sistema como de los nuestros propios.
Aplicar estilos y temas a la interfaz
gráfica
Hay dos formas de aplicar estilos a la UI:
1
Situaciones
Estamos llenando un formulario y la
aplicación pasa a segundo plano Se pierden los datos
Nombre: Daniel
Nombre:
Edad: 22 años
Edad:
3
Share Preference
• Las Preferencias compartidas le permiten guardar y
recuperar datos en forma de clave, par de valores . Los datos
en las preferencias compartidas serán persistentes aunque el
usuario cierre la aplicación.
7
Share Preference
Aparte de los privados, hay otros modos disponibles que se enumeran
a continuación:
• MODE_PRIVATE. Al configurar este modo, solo se puede acceder al
archivo utilizando la aplicación de llamada.
• MODE_APPEND. Esto agregará las nuevas preferencias con las
preferencias ya existentes.
• MODE_WORLD_READABLE. Este modo permite a otra aplicación leer
las preferencias. Esta constante fue obsoleta en el nivel API 17.
• MODE_WORLD_WRITEABLE. Este modo permite a otra aplicación
escribir las preferencias. Esta constante fue obsoleta en el nivel API 17.
8
Share Preference
• Puedes guardar algo en las Preferencias Compartidas usando
la SharedPreferences.
Por ejemplo cuando en talleres anteriores ustedes programaron la aplicación para obtener la
edad promedio, en el momento de la rotación se pierden los datos, la solución aplicada para
mantener la persistencia al rotar los valores de la edad promedio se perdían.
Tenemos una aplicación de la edad promedio y queremos que la edad promedio quede
guardada para próximas consultas o rotaciones.
11
Share Preference
Clave
SharedPreferences
Valor
Qué pasos debemos seguir para guardar la
información en el SharePreference por
defecto de la aplicación
1. Crear u obtener objeto SharedPreferences.
2. Una vez que hemos accedido a ese objeto o por lo menos sabemos
cual es, debemos decirle a nuestro código que ese objeto es editable
para poder modificar la información que hay en su interior.
Qué pasos debemos seguir para guardar la
información en el SharePreference por defecto de la
aplicación
La actividad estaba en
Segundo plano y Vuelve a
primer plano OnResume
Computación Móvil
PLATAFORMAS MÓVILES
DE COMUNICACIÓN Y
PROCESAMIENTO
Estándares de seguridad.
1 2 3
Tamaño (factor de Tolerancia a las Pantalla de gran
forma), peso y vibraciones y golpes; luminosidad (para
consumo de energía así como a trabajar en exteriores).
muy reducidos. temperaturas
extremas
CARACTERÍSTICAS DE
LA TECNOLOGÍA
MÓVIL
Amplio
Movilidad Ubicuidad Comodidad
alcance
Localización
Conectividad
Personalización de productos y
instantánea
servicios.
CONTROLADORES DE
LA TECNOLOGÍA MÓVIL
Amplia disponibilidad
de los dispositivos No se requiere una PC. La cultura del auricular.
móviles.
01 02 03
Son actividades de Es una extensión natural Algunas aplicaciones:
comercio electrónico o del e-comercio creando Gerencias de servicios
negocio electrónico nuevas oportunidades de campo,
que se realizan en un de negocio. Localización de
entorno inalámbrico. productos, Aplicaciones
financieras.
Bienvenidos
“La Universidad de Guayaquil“
La naturaleza portátil
Son aquellos sistemas que inherente de los
toman en cuenta el dispositivos permite que
contexto en su interacción exista un gran número de
con el usuario o con la variables influyentes tales
lógica de procesamiento. como la edad, el género,
los gustos, entre otras
CONTEXTO
1 2 3
Información que Otro rasgo destacado Evoluciona deprisa. El
caracteriza al entorno del contexto es su contexto debe ser
en el cual se ejecuta validez temporal. procesado en tiempo
una aplicación o real.
servicio.
Ayuda adaptarse
mucho mejor y de
Para enriquecer
forma automática a
servicios
las condiciones del
CONTEXTO: entorno.
¿PARA QUÉ
SIRVE? Extrae la información
Proporciona un mejor necesaria para la
servicio. aplicación y lo usa
para personalizarla.
GRADOS DE
CONTEXTO
Contexto Contexto
personal. social
CONTEXTO VS
PERFIL
01 02 03
SON CONCEPTOS UN PERFIL DE UN USUARIO EL CONTEXTO DE UN
COMPLEMENTARIOS, Y CONTIENE INFORMACIÓN USUARIO, EN CAMBIO,
MUY RELACIONADOS. SOBRE RASGOS ESTABLES EVALÚA LA SITUACIÓN DE
DE UNA PERSONA, QUE EN LA PERSONA EN UN
GENERAL SE SUPONE QUE MOMENTO CONCRETO
VARÍAN LENTAMENTE
CON EL TIEMPO
EN QUE ENTORNOS SON
ÚTILES
MÓVILES
BASADAS EN SU La aplicación Android se enfoca en estudiantes
interesados en programas de intercambio entre
CONTEXTO estos dos países
MÓVILES
BASADAS EN SU La configuración offline se hace uso de la
realidad aumentada mediante objetos
CONTEXTO modelados en 3D que son almacenados-
presentados en una computadora personal.
1 2 3
Sistema operativo Núcleo basado en Programación de
para dispositivos el de Linux aplicaciones en
móviles Java
HISTORIA
Licencia apache:
✓Open Source
✓Permite a los fabricantes añadir
extensiones propietarias sin ponerlas
en manos de la comunidad del
software libre
ASPECTOS POSITIVOS
Código abierto
01 02 03 04
Obligatorio log-in Constante Envío de Aunque el SO sea
con el ID de intercambio de localización libre, gran parte de
Google datos con Google (desactivable) su valor está en los
(dependencia) servicios gratuitos
de Google, que no
son libres.
ANDROID SDK
01 02 03 04
Licencias, Acceso al Control completo APIs para los
distribución y hardware de WiFi, de multimedia, sensores:
desarrollo GPS, Bluetooth y incluyendo la acelerómetros y
gratuitos. telefonía. cámara y el brújula.
micrófono.
ANDROID SDK
Almacenes de
datos compartidos, Aplicaciones y Widgets para la
proveedores de procesos en pantalla de inicio
contenidos, SQLite, segundo plano (escritorio).
acceso a SD Card.
Aceleración gráfica
Uso de mapas y sus
por hardware,
controles desde las
incluyendo OpenGL
aplicaciones.
2.0 para 3D.
CONSIDERACIONES PARA EL
DESARROLLO
NECESIDAD DE
TERMINAR LA
APLICACIÓN EN
CUALQUIER
MOMENTO
TIPOS DE APLICACIONES
Primer plano
(activities) Servicios
Widgets de
combinados
• Segundo plano escritorio
con actividades
• Servicios puros
ENTORNO DE
DESARROLLO
MacOs 10 o superior
Windows 7/8/10 (Sistemas basados en Intel)
Para ello:
Ir a menú «Configure» de la pantalla de bienvenida, entrar en el En la ventana de opciones que aparece, revisar el apartado
submenú «Project Defaults» y pulsar sobre la opción «Project SDK Location asegurándonos de que tenemos correctamente
Structure». configuradas las rutas al JDK y al SDK de Android
PASO #4 INSTALAR/ACTUALIZAR
COMPONENTES DEL SDK DE ANDROID
Google USB
Solver for Android Support Google
Driver (Window
ConstraintLayout Repository Repository
only)
Bienvenidos
“La Universidad de Guayaquil“
• En la primera pantalla
indicaremos, por este orden, el
nombre de la aplicación, el
dominio de la compañía, y la
ruta donde crear el proyecto.
• El segundo de los datos
indicados tan sólo se utilizará
como paquete de las clases
java
ANDROID
• Se consideran aplicaciones
para teléfonos y tablets.
• Seleccionar la API mínima (es
decir, la versión mínima de
Android) que soportará la
aplicación.
ANDROID
01 02 03
La versión mínima que De esta forma, cuanto Por ejemplo, en el momento
seleccionemos en esta menor sea ésta, a más de escribir este artículo, si
pantalla implicará que dispositivos podrá llegar seleccionamos como API
nuestra aplicación se pueda nuestra aplicación, pero más mínima la 15 conseguiríamos
ejecutar en más o menos complicado será conseguir cubrir un 94,0% de los
dispositivos. que se ejecute dispositivos actuales
correctamente en todas las
versiones de Android.
ANDROID
01 02 03
Se debe distinguir son La entidad proyecto es Dentro de un proyecto
los conceptos única, y engloba a se pueden podemos
de proyecto y módulo todos los demás incluir varios módulos,
elementos. que pueden representar
aplicaciones distintas,
versiones diferentes de
una misma aplicación
Proyecto
Módulo
ANDROID:
CONTENIDOS
PRINCIPALES DEL
MÓDULO
Carpeta /app/src/main/java
Fichero /app/src/main/[Link]
CONTIENE INFORMACIÓN
NECESARIA PARA LA COMPILACIÓN
DEL PROYECTO, POR EJEMPLO LA
VERSIÓN DEL SDK DE ANDROID
FICHERO /APP/[Link] UTILIZADA PARA COMPILAR, LA
MÍNIMA VERSIÓN DE ANDROID QUE
SOPORTARÁ LA APLICACIÓN,
REFERENCIAS A LAS LIBRERÍAS
EXTERNAS UTILIZADAS, ETC.
ANDROID: CONTENIDOS
PRINCIPALES DEL MÓDULO
• Importante: no se modifican
manualmente bajo ninguna
circunstancia.
Bienvenidos
“La Universidad de Guayaquil“
Componentes Android
ELEMENTOS BÁSICOS DE
UNA APLICACIÓN
Content Broadcast
Widget
Provider Receiver
Intent
ACTIVITY
1 2
Las vistas (view) son los Controles básicos, como cuadros
componentes básicos con los que de texto, botones, listas
se construye la interfaz gráfica de desplegables o imágenes
la aplicación.
SERVICE
01 02
Los servicios (service) son Los servicios pueden realizar
componentes sin interfaz gráfica cualquier tipo de acciones, por
que se ejecutan en segundo ejemplo actualizar datos, lanzar
plano. notificaciones
CONTENT PROVIDER
1 2
Los widgets son elementos Permiten mostrar información de la
visuales, normalmente interactivos, aplicación al usuario directamente
que pueden mostrarse en la sobre la pantalla principal.
pantalla principal y recibir
actualizaciones periódicas.
INTENT
01 02
Un intent es el elemento Son los mensajes o peticiones
básico de comunicación que son enviados entre los
entre los distintos distintos componentes de una
componentes Android aplicación o entre distintas
aplicaciones
Clases, Layouts
Vistas y Recursos
• Aplicación en Android Studio
• La vista de la izquierda es la
project tool window y a la
derecha tenemos el editor de
código
8
La vista derecha
La vista de la izquierda tenemos el editor de
es la project tool código
window
Cosas a tener
en cuenta
Cosas a tener en cuenta
Cosas a tener en
cuenta
12
Cosas a tener en cuenta
Jerarquía de Componentes
1. android:layout_width y android:
layout_height
• match_parent: la view será tan
grande como su padre
• wrap_content: la view será tan
grande como su contenido
2. android:padding: espacio interior
del elemento
3. LinearLayout:
• android:orientation: determina
como los widgets serán
mostrados en pantalla (vertical u
horizontal)
1. android:layout_width y android:
layout_height
• match_parent: la view será tan
grande como su padre
• wrap_content: la view será tan
Atributos de los grande como su contenido
2. android:padding: espacio
widges interior del elemento
3. LinearLayout:
• android:orientation: determina
como los widgets serán
mostrados en pantalla (vertical u
horizontal)
Creando recursos string
17
Código
• AppCompatActivity es una
subclase de la clase Activity.
• El método onCreate(Bundle)
es llamado cuando se
instancia una subclase
Activity.
• setContentView(int
layoutResID) infla el layout.
Cuando un layout se infla,
cada widget es instanciado
Código
Crear componentes
en .xml
Conectando widgets con el código
Definir variables
en java
Conectando widgets con el código
Inflar Variables
Identificar y describir
cada uno de los
métodos eventos
Identificar y
describir cada uno
de los métodos
eventos
26
Creando Android Virtual
Device en Android
Studio
• AVDs son esencialmente emuladores que permiten probar las aplicaciones Android con
la necesidad de utilizar un dispositivo físico.
• Se puede añadir un
nuevo activity haciendo
click derecho sobre el
paquete que deseemos,
New > Java Class, como
vemos en la figura
adjunta.
3
ESTADOS DE UNA
ACTIVIDAD
Una actividad en Android puede estar en uno de estos cuatro estados:
• Activa (Running): La actividad está encima de la pila, lo que quiere
decir que es visible y tiene el foco.
• Visible (Paused): La actividad es visible pero no tiene el foco. Se
alcanza este estado cuando pasa a activa otra actividad con alguna
parte transparente o que no ocupa toda la pantalla. Cuando una
actividad está tapada por completo, pasa a estar parada.
• Parada (Stopped): Cuando la actividad no es visible. El programador
debe guardar el estado de la interfaz de usuario, preferencias, etc.
• Destruida (Destroyed): Cuando la actividad termina al invocarse el
método finish(), o es matada por el sistema.
Cada vez que una actividad cambia de estado se van a generar eventos
que podrán ser capturados por ciertos métodos de la actividad. A
continuación se muestra un esquema que ilustra los métodos que
capturan estos eventos.
4
Métodos de un activity
• onCreate(Bundle): Se llama en la creación de la actividad. Se utiliza para realizar todo
tipo de inicializaciones, como la creación de la interfaz de usuario o la inicialización de
estructuras de datos.
• onStart(): Nos indica que la actividad está a punto de ser mostrada al usuario.
• onPause(): Indica que la actividad está a punto de ser lanzada a segundo plano,
normalmente porque otra actividad es lanzada. Es el lugar adecuado para detener
animaciones, música o almacenar los datos que estaban en edición.
• onStop(): La actividad ya no va a ser visible para el usuario. !Ojo si hay muy poca
memoria! es posible que la actividad se destruya sin llamar a este método.
• onDestroy(): Se llama antes de que la actividad sea totalmente destruida. Por ejemplo,
cuando el usuario pulsa el botón de volver o cuando se llama al método finish(). Ojo si
hay muy poca memoria, es posible que la actividad se destruya sin llamar a este
método.
Controles de
usuario: Input
Controls,
Alertas, y
Pickers
Controles de entrada
Contraseñas
Correos electrónicos
Teléfonos
Spinner y Alertas
Spinner
En el archivo [Link]
<string-array name="labels_array">
<item>Home</item>
<item>Work</item>
<item>Mobile</item>
<item>Other</item>
</string-array>
Radio Button
DataPickerFragment
Consideraciones: