Android
Android
Android
Android 1.0
Alpha
Apple Pie
Febrero 2009 una versión
dedicada a arreglar fallos
y bugs de Android 1.0
Apple Pie.
Android 1.1
Beta
Banana Bread
Abril 2009
Bluetooth
Android 1.5
desarrollo de aplicaciones
por parte de terceros.
Cupcake
Septiembre 2009
Diversidad de tamaños de
pantalla
Android 1.6
Android Market
Donut
Noviembre 2009
Pantalla de inicio
personalizada
Eclair
Mayo 2010
Dalvik JIT
Creación de videojuegos,
pues se tiene acceso
completo a gráficos,
controles del dispositivo
y audio
Android 2.3
Implementó sensor NFC
Gestión de Batería
Gingerbread
Febrero 2011
Botones touch
Botón multitask
Android 3.0
Honeycomb
Octubre 2011
Pantalla inicio
personalizada, carpetas
para aplicaciones
Android 4.0
Ice Cream Sandwich
Julio 2012
Google Now
Notificaciones
Desplegables
Multiusuario
Android 4.1
Jelly Bean
Octubre 2013
Ok Google
Teléfono Inteligente
aprender de tus
preferencias
Contactos
Llamadas
Google Maps
Android 4.4
Kit Kat
Junio 2014
Material Design
Multipantalla
Notificaciones en la
pantalla de bloqueo
Android 5.0
Lollipop
Agosto 2015
Permisos
Batería
Android 6.0
Marshmallow
Mayo 2016
Incremeto:
Lenguaje
Notificaciones
Nougat
Estado actual
1000 millones
usuarios
Más aplicaciones
Mayor número de desarrolladores
Requerimientos para
desarrollar
Requerimientos para desarrollar
SISTEMA
https://developer.android.com/studio/index.html#Requirements
Requerimientos para desarrollar
SISTEMA
Windows
Mac
Linux
● Java
● Android Studio
● SDK Android
SDK Android
● SDK Tools
Android Studio
Android Studio
● Instant Run
● Cuando hagas clic en Run o Debug, la función Instant Run de Android Studio aplicará los cambios
en el código y los recursos en tu aplicación en ejecución. Esta interpreta de manera inteligente los
cambios y a menudo los entrega sin reiniciar tu app ni volver a compilar tu APK, para que puedas
ver los efectos de inmediato
● Librerías de código
● Archivos de recursos y vistas
● Código fuente
● Android Manifest.
Ejecutable APK
● Resources
○ imagenes
○ layouts
○ etc.
Ejecutable APK
Configuración SDK Manager
Configuración Emulador
Creando un “Hola Mundo”
Recordando Importancia de
POJO
Plain Old Java Object
“Un Objeto plano y a la
antigua”
Java POJO
Controlador Vista
Modelo
XML vs Editor Gráfico
LinearLayout y
RelativeLayout
Views
Un view es un objeto que
sirve para dibujar algo en
la pantalla con el cual el
usuario pueda interactuar
https://developer.android.com/reference/andro
id/view/View.html
1 1
2
3
ViewGroup
Es un objeto que se compone
de otros Views ordenados,
dando como resultado un
Layout
Layouts
ViewGroup
TextView Button
LinearLayout
Es un ViewGroup que
alinea a todos los
hijos en una sola
dirección Vertical u
Horizontal
Horizontal Vertical
RelativeLayout
Es un ViewGroup que
alinea a todos los
hijos en posiciones
relativas
● View
● Padre
Más Layouts
ListView GridView
Widgets básicos
TextView
Una etiqueta de texto
https://developer.android.com/reference/andro
id/widget/TextView.html
EditText
Elemento que nos permite
ingresar diferentes tipos
de textos
https://developer.android.com/reference/andro
id/widget/EditText.html
Button
Es una porción de texto,
imagen o ambos que nos
ayudan a establecer
comunicación con acciones
cuando el usuario lo toca
https://developer.android.com/reference/andro
id/widget/Button.html
Button.
Actions
● onClick
● setOnClickListener
Toast
Es un mensaje que nos
notifica retroalimentación
sobre alguna acción
realizada
Diseño Responsive
match_parent
ajusta al padre
hola
wrap_content
ajusta al contenido
portrait
Dispositivo en posición
vertical
landscape
Dispositivo en posición
horizontal
large
Dispositivos más grandes
Material Design
Material Design
Es una guía integral para
el diseño visual, de
movimientos y de
interacción en distintas
plataformas y dispositivos
https://speckycdn-sdm.netdna-ssl.com/wp-conten
t/uploads/2016/04/material-design-motion.gif
● Tema nuevo
● Nuevos Widgets
Material Design
● Nuevas
librerías para
animaciones
Material Design
Theme
Obscuro
Material Design
Theme
Claro
Material Design
Theme
Obscuro
@android:style/Theme.Material
Material Design
Theme
Claro
@android:style/Theme.Material.Light
@android:style/Theme.Material.Light.
DarkActionBar
Material Design
Theme
Obscuro
@android:style/Theme.Material
Material Design
Theme
Claro
@android:style/Theme.Material.Light
@android:style/Theme.Material.Light.
DarkActionBar
Theme.AppCompat
Material Design
Theme
Obscuro
Theme.Material
Material Design
Theme
Claro
Theme.AppCompat.Light
Theme.AppCompat.Light.DarkActionBar
styles.xml
Theme
configuration
colorPrimary
colorPrimaryDark
colorAccent
https://material.google.com/style/color.html
materialpalette.com
colors.xml
Widgets Material Design
Toolbar
https://developer.android.com/reference/android/support/
v7/widget/Toolbar.html
TextInputLayout
TextInputEditText
https://developer.android.com/reference/android/support/
design/widget/TextInputEditText.html
Raised Button
Floating Action
Button
https://developer.android.com/reference/android/support/
design/widget/FloatingActionButton.html
CardView
https://developer.android.com/reference/android/support/
v7/widget/CardView.html
RecyclerView
https://developer.android.com/reference/android/support/
v7/widget/RecyclerView.html
https://developer.android.com/t
opic/libraries/support-library/
features.html#v7
Activity
Activity
Es un componente de una
aplicación que nos provee
de una pantalla para que
el usuario interactúe con
ella
Activity
Activity Layout
AndroidManifest.xml
Ciclo de Vida
Ciclo de Vida
Ciclo de Vida
Ciclo de Vida
Ciclo de Vida
Ciclo de Vida
Ciclo de Vida
Internacionalización de
textos
Internacionalización Android strings.xml
Activity 1 Activity 2
Explicitos
Intents
Other App
Activity 1
Activity 1
Implicitos
Intents
Botón Up
vs.
Botón Back
Botón Back
Botón Back
Botón Up
Botón Up
CardView
CardView
Es un ViewGruop
Nos permite mostrar
información dentro de
tarjetas
Podemos modificar los
bordes y añadir sombras si
así lo queremos
● Etiqueta CardView
que proviene del
soporte
● Layout interno
para definir la
CardView estructura de los
elementos
● Elemento ImageView
y dos ImageButton
Es necesario
añadir la
librería de
CardView soporte en
gradle
RecyclerView
RecyclerView
Más eficiente que ListView
Floating Action Button
Floating Action
Button
RecyclerView
RecyclerView
Más eficiente que ListView
POJO
Clase Adapter
Lista (LinearLayoutManager) Clase ViewHolder
Grid (GridLayoutManager)
Escalonada (StaggeredGridManager)
RecyclerView
ItemDecoration
BottomBar
BottomBar
No existe librería nativa
POR EL MOMENTO
https://github.com/roughike/BottomBar
Fragments
Container
Fragments
● FragmentManager
Fragments ● Transacciones
● Commits
CoordinatorLayout,
AppBarLayout y
CollapsingToolbarLayout
● Un super poderoso
FrameLayout
● Vistas flotantes
● Es esencialmente un
LinearLayout
vertical
Layout
toolbar y los
elementos hijos
● Hijo directo de
AppBarLayout
Imagen Redonda
Imagen Redonda
https://github.com/hdodenhof/CircleImageView
Transiciones
Material Design
Fade, Slide Explode
startActivity(A2)
Activity 1 Activity 2
exitTransition() enterTransition()
http://lgvalle.xyz/2015/06/07/material-animations/
http://lgvalle.xyz/2015/06/07/material-animations/
http://lgvalle.xyz/2015/06/07/material-animations/
● Es esencialmente un
LinearLayout
vertical