M4 - Programación Móvil
M4 - Programación Móvil
Área: TECNOLOGÍA
Introducción ......................................................................................................................................................... 1
1. Vistas Avanzadas............................................................................................................................................... 2
1.1 GridView ...................................................................................................................................................................... 2
1.2 Barra de Acciones ........................................................................................................................................................ 5
1.3 Navigation Drawer ..................................................................................................................................................... 10
2. Conexión a base de datos con SQLite ............................................................................................................. 13
2.1 Configuración de la conexión .................................................................................................................................... 14
2.2 Clase Producto y Servicios ......................................................................................................................................... 18
3. Publicación de una App de Android ............................................................................................................... 20
3.1 Cómo publicar una App de Android .......................................................................................................................... 20
3.2 Definir tu App ............................................................................................................................................................ 21
Cierre .................................................................................................................................................................. 23
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL
Configuración
GridView Definir App
de Conexión
Navigation Drawer
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 1
Introducción
Chile es uno de los países con mayor desarrollo económico de la región. Según estudios realizados por IAB
Trends, Chile se ha convertido en el país con más teléfonos inteligentes en América Latina, lo que potencia
enormemente la industria del desarrollo de App móviles.
Por lo anteriormente expuesto, publicar una App es un paso de suma importancia, tanto o más que diseñarla,
por lo que debemos cuidar que nuestra aplicación se encuentre funcionando perfectamente antes de
exponerla al público en general, en resumen, no importa que se trate una aplicación, ya sea propia o para un
cliente; recuerda que este proyecto debe tener un buen nombre, un buen icono, buenas sreenshots y una
buena descripción. Tan sencillo como que la aplicación que diseñaste es tu producto, es tu oportunidad, ¡No
la puedes desperdiciar!
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 2
1
https://developer.android.com/guide/topics/ui/layout/gridview
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 3
3. Crear la clase ImageAdapter.java y crear el siguiente código. No olvidar asignar las imágenes y
recordar que el nombre de las imágenes debe ir en minúsculas.
package com.example.clrubilarc.mascotas;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
/**
* Created by clrubilarc on 19-09-17.
*/
Para continuar, visualicemos el próximo ejemplo que fue tomado del siguiente enlace:
http://www.tutorialesprogramacionya.com/javaya/androidya/androidstudioya/detalleconcepto.php?codigo=44
Problema: Desarrollar una aplicación que muestre en el ActionBar el título "Este mundo" y luego tres opciones
en el menú desplegable del ActionBar.
Figura 4 – ActionBar
1. El título del ActionBar lo debemos modificar abriendo el archivo strings que se encuentra en la carpeta
res/values y su contenido por defecto al crear el proyecto es:
<resources>
<string name="app_name">menuopciones</string>
</resources>
Podemos cambiar el contenido de la constante "app_name":
<resources>
<string name="app_name">Este mundo</string>
</resources>
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 7
2. Ahora tenemos que definir las opciones de nuestro menú desplegable, debemos crear un archivo XML
con las opciones, para esto presionamos el botón derecho sobre la carpeta res y seleccionamos la
opción New -> Android resource file:
package com.example.clrubilarc.actionbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//El método onCreateOptionsMenu lee el archivo menuopciones.xml donde definimos el menú de opciones:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menuopciones, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id==R.id.opcion1) {
Toast.makeText(this,"Primera opción",Toast.LENGTH_LONG).show();
}
if (id==R.id.opcion2) {
Toast.makeText(this,"Segunda opción",Toast.LENGTH_LONG).show();
}
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 10
Este control necesita un contenedor DrawerLayout compuesto por el contenido de la activity y el menú del
Navigation Drawer. Componemos el menú del Navegation Drawer con un NavegationView que usa un menú
para poblar los ítems y un layout para la cabecera, o con un listView, que usa un adaptador para ello.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hola Mundo!" />
</RelativeLayout/>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hola Mundo!" />
</RelativeLayout>
<ListView
android:id="@+id/list_view"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 12
</RelativeLayout />
Y el DrawerLayout, que representa el contenedor que permite la creación de vistas interactivas tipo Drawer:
String[] opciones = { "Opción 1", "Opción 2", "Opción 3", "Opción 4" };
listView.setAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1, android.R.id.text1,
opciones));
Configurando los eventos abrir y cerrar del menú lateral con el icono de la aplicación
Debemos sobrescribir e implementar los siguientes eventos y funciones si queremos personalizar los eventos
al pulsar cada opción:
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 13
@Override
public void onItemClick(AdapterView
> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(MainActivity.this, "Item: " + opciones[arg2],
Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawers();
}
});
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (drawerLayout.isDrawerOpen(listView)) {
drawerLayout.closeDrawers();
} else { Figura 11- Opciones en
drawerLayout.openDrawer(listView); Navigation Drawer
}
return true;
}
return super.onOptionsItemSelected(item);
}
SQLite es una base de datos Open Source, (gratuita) muy popular en dispositivos pequeños como Android.
SQLite es relativamente simple de usar, no tiene un servidor de base de datos ejecutándose en un proceso
separado.
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 14
El programa debe permitir, crear un proyecto en Android Studio y definir como nombre: TestSQL.
Lo primero que haremos es crear una clase Conexión que herede de SQLiteOpenHelper. Esta clase nos permite
crear la base de datos y actualizar la estructura de tablas y datos iniciales.
Para crear una nueva clase desde Android Studio procedemos a presionar el botón derecho del mouse sobre
la carpeta que contienen todos los archivos java del proyecto y seleccionamos New - > Java Class: La clase se
llamará Conexión.java.
package cl.gestiona.test4sql;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by rubilar on 15-07-17.
*/
package cl.gestiona.test4sql;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by rubilar on 15-07-18.
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table producto(codigo integer primary key autoincrement,nombre text, precio integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 16
package cl.gestiona.test4sql;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 18
package cl.gestiona.test4sql;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
/**
* Created by rubilar on 15-07-17.
*/
public class Servicio {
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 19
}
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 20
https://play.google.com/apps/publish/signup/
Después de aceptar el acuerdo para desarrolladores, debemos hacer un pago de 25 dólares, una única vez, con
lo que ya podremos ser desarrolladores que distribuyen Apps en Google Play.
Centro de Gestión
Una vez pagados los 25 dólares, podemos entrar en Google Play Developer Console por primera vez, nuestro
centro de gestión e información como desarrolladores. En esta web, podremos ver:
Es el momento de subir los archivos APK. Para ello, una vez dentro de Google Play Developer Console debes:
Seleccionar en el menú Tus aplicaciones la opción de Añadir nueva aplicación.
En el menú desplegable, selecciona un idioma predeterminado. Posteriormente, debes añadir un nombre para
la aplicación. Es importante que lo escribas tal y como quieres que aparezca en Google Play. Elige un título
breve y relevante. Una de las claves para un buen título es intentar que sea lo más corto y breve posible. Sólo
así lograrás que los buscadores lean el nombre completo de tu aplicación.
Recuerda siempre que, si eliges la opción de pago, para poder cobrar después por los productos publicados en
Google Play, el desarrollador debe disponer de una Cuenta de Pago válida. Estas cuentas se consiguen a través
de un acuerdo independiente con un Procesador de Pagos.
Después de realizar estos pasos estarás listo para colgar una aplicación en Google Play. Para finalizar,
simplemente tienes que cambiar el estado de Borrador (Draft). Justo en este momento, Google ofrece una
serie de consejos para optimizar la información de la App en Google Play.
Área: TECNOLOGÍA M4
Curso: PROGRAMACIÓN MÓVIL Pág. 23
En algún momento nos encontraremos con la necesidad de almacenar los datos de nuestra aplicación, por lo
que para dar respuesta a este tema, configuramos una base de datos nativas utilizando la base de datos SQLite
y comprendimos como construir tablas. Además, aprendimos a listar, agregar, eliminar y modificar datos en
una aplicación móvil.
En la tercera parte del módulo mostramos como publicar Apps en Google Play2. Cuando publicamos una
aplicación para Android realizamos dos tareas principales: Primero, preparar la aplicación para el lanzamiento,
compilar una versión de lanzamiento de tu aplicación que los usuarios puedan descargar e instalar en sus
dispositivos con tecnología Android, segundo, realizar el lanzamiento de la aplicación, durante el paso de
lanzamiento, puedes publicitar, vender y distribuir la versión de lanzamiento de tu aplicación para los usuarios.
En síntesis, al finalizar este módulo podemos analizar y desarrollar interfaces más complejas, menús
personalizados, podemos crear almacenamiento de datos a través de la base de datos nativa que trae Android.
Después de construir nuestras aplicaciones, podemos publicar y comercializar nuestras aplicaciones móviles.
APORTE A TU FORMACIÓN
En el campo ocupacional, ya sabemos que las Apps forman parte de nuestra vida cotidiana. Estas apps las utilizamos
para consultar el tráfico, el horario de transporte, planificar nuestro dinero, generar una rutina de ejercicios, etc. El
gran crecimiento de las apps en Chile se debe básicamente al desarrollo de la industria del teléfono móvil, según
fuentes del INE (Instituto Nacional de Estadísticas) el número de celulares ha alcanzado las 27.075.209 unidades en
2017. En este contexto el mercado en Chile de las Apps está en constante crecimiento. Las distintas instituciones
necesitan crear, levantar y mantener plataformas en distintas temáticas de aplicaciones, lo cual convierte al desarrollo
de Apps móviles en un campo de amplia demanda.
2
https://developer.android.com/studio/publish/?hl=es-419