Johnattan Jaramillo G.
jjaramillo238@misena.edu.co
1- Introducción
2- Layouts y widgets
3- Actividades y fragmentos
4- Almacenamiento local
5- Almacenamiento remoto
6- Material design
7- Publicación y marketing de apps
Número de aplicaciones disponibles en las principales tiendas de aplicaciones, marzo 2017
https://www.statista.com
Fuente
Ingresos de la tienda de aplicaciones móviles a nivel mundial en 2015, 2016 y 2020 (en miles de millones de dólares)
https://www.statista.com
Fuente
Distribución de ingresos de aplicaciones móviles a nivel mundial en 2017, por canal de monetización
https://www.statista.com
Fuente
Cuando hablamos de dispositivos móviles, pensamos en
Cuando hablamos de sistemas operativos para dispositivos móviles, pensamos en
Plataforma de software para dispositivos móviles. Incluye:
Provee las herramientas y API's necesarias para desarrollar aplicaciones en la plataforma Android usando el lenguaje de programación Java
Google formó la Open Handset Alliance (OHA) el 5 de noviembre de 2007.
Usan nombres de dulces en orden alfabético y de publicación
La última versión es la Oreo, Android 8.0 API Level 26
Representa una pantalla simple con la que el usuario puede interactuar.
.xml
.class
Vista
Lógica de eventos
Procesos largos en segundo plano que no requieren interacción con el usuario.
Reproducción de música en segundo plano
Manejan la comunicación entre las aplicaciones y el sistema operativo.
Notificación de batería cargada
Proveedores de contenido
Usan
Android Runtime
Usa
Android
Librerías
Linux Kernel
Desarrollador
Incluye
Compilación JIT (Just In Time)
JDK
Código fuente
Bytecode
Write once, run anywhere
Ensambla a plataforma Android
Código ensamblado ligero
Ejecutable
Código de máquina
DVM
DVM es gratuito y emplea poca memoria para ahorro de batería
Dalvik es reemplazado por ART (Android Runtime) en la versión 5.0.
Precompilado
Servicios de alto nivel proporcionados en forma de clases
Facilita el trabajo de los desarrolladores
Escribir apps más fácil y rápido
Escritas en un lenguaje de programación como C, C++, Assembler
Son específicas al hardware y el sistema operativo
Interactuar con componentes de bajo nivel
Linux
Administración de memoria
Administración de energía
Administración de recursos
Administración de controladores
Reservar, liberar memoria
Procesos, hilos y tareas
Bluetooth, cámara
Instalación drivers
Java Development Kit
Java Runtime Environment
IDE
Variables
Tipos de datos
Operadores
Métodos cadenas
Condicionales
Ciclos
Métodos
Arreglos (vectores y matrices)
ArrayList
Clases y objetos
Constructores
Herencia
Polimorfismo
Encapsulación
Abstracción
Interfaces
https://www.compilejava.net
https://www.tutorialspoint.com/compile_java_online.php
Si no tienes un proyecto abierto, en la ventana Welcome to Android Studio haz clic en Start a new Android Studio project.
Si tienes un proyecto abierto, selecciona File > New Project.
Configurar el proyecto - Click en next
Nombre de la app (Inicia con letra, sin espacios, ni caracteres especiales)
Dominio de la empresa (Usado al momento de la publicación)
Nombre del paquete Java (Automático)
Ubicación del proyecto (No olvidar)
Soporte C++ y Kotlin (Desactivar)
Empecemos!
Seleccionar plataformas - Click en next
En cada plataforma seleccionada, debemos indicar la versión del API a partir de la cuál se dará soporte a la app
Ayuda a escoger la versión del API de acuerdo a estudios de uso de versiones de Android
Actividad en blanco
Seleccionar actividad - Click en next
No seleccionaremos plantilla de inicio, pues crearemos un diseño desde cero
Nombre de la actividad (Java)
Configurar actividad - Click en next
Generar vista para la actividad
Nombre de la vista (XML)
Compatibilidad con versiones anteriores
Es altamente recomendado dejar los valores por defecto, puesto que la app siempre tendrá una actividad principal, la cuál marcará el inicio de la ejecución
Conozcamos los archivos y carpetas de nuestro proyecto!
Conozcamos los archivos y carpetas de nuestro proyecto!
En la ventana de proyecto se listan archivos y carpetas de la aplicación.
Por defecto, se usa la vista Android.
Por defecto, la aplicación usa el módulo App.
Módulo
Archivos fuente
Opciones de compilación
Unidades discretas de funcionalidad
Proyecto tiene uno o más
Permite dependencia entre ellos
Puede ser compilado, probado y depurado independientemente
(Contenedor)
Nuevo. File->New->New Module
Describe las características fundamentales de una aplicación y cada uno de sus componentes
Interfaz entre el sistema operativo de Android y la aplicación.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.doblet.layouts">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Conozcamos los archivos y carpetas de nuestro proyecto!
Espacio de nombres. Debe definirse como "http://schemas.android.com/apk/res/android
Nombre del paquete Java que sirve como identificado único de la aplicación
Número entero que permite identificar la versión de la app. No se muestra al usuario, permite al sistema administrar internamente actualizaciones
<manifest>
Conozcamos los archivos y carpetas de nuestro proyecto!
Cadena de texto que permite identificar el número de la versión de la app. Se muestra al usuario. Si no se especifica, es 1 por defecto
Número entero que permite indicar la versión mínima de API soportada por la aplicación. Impide instalación de la app en versiones anteriores. Es obligatorio
Número entero que permite indicar la versión de API en la que se creó el proyecto. Garantiza soporte para versiones anteriores, más no para las posteriores
Conozcamos los archivos y carpetas de nuestro proyecto!
<application>
Incluye todas las declaraciones de la aplicación
Indica la referencia a la imagen que se usa para el icono de la aplicación.
-El ícono está ubicado en la ruta: res/mipmap
-El icono permite abrir la aplicación en el dispositivo
Indica si se permite a la aplicación participar en copias de seguridad y restauraciones
Conozcamos los archivos y carpetas de nuestro proyecto!
Recurso de estilo que define un tema para todas las actividades de la aplicación. Las actividades pueden sobrescribir los temas con sus propios atributos
<activity>
Especifica una actividad
Nombre de la clase Java de la actividad
Etiqueta para identificar la actividad
Todas las actividades se deben especificar en el manifiesto
Conozcamos los archivos y carpetas de nuestro proyecto!
<intent-filter>
Especifica el punto de entrada de la aplicación
Especifica que la aplicación puede ser lanzada desde el icono en dispositivo
Etiquetas permitidas en el manifiesto para especificar componentes
<activity>
<service>
Actividades
Servicios
<receiver>
<provider>
Broadcast receivers
Content providers
Archivos de código fuente en Java
MainActivity.Java
package com.example.doblet.layouts;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Recursos que no son de código
Recursos que no son de código
Recursos de animación
Animaciones predeterminadas
Transiciones
Cuadro
Recursos de menú
Contenidos para menús de aplicación
Recursos que no son de código
Recursos de imagen
Gráficos con mapas de bits o XML
Recursos de vistas
Vistas para la interfaz de usuario
Recursos que no son de código
Recursos de color
Colores que cambian basados en el estado de la vista
Recursos que no son de código
Recursos de color
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>
Recursos que no son de código
Recursos de strings
Definen strings, string arrays (incluyen formatos y estilos)
Recursos que no son de código
Recursos de strings
<resources>
<string name="app_name">Layouts</string>
</resources>
Recursos que no son de código
Recursos de styles
Definen la apariencia y el formato de los elementos de la interfaz de usuario
Especifica propiedades como:
Recursos que no son de código
Recursos de styles
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>