Sie sind auf Seite 1von 15

Tutorial Para Desarrollar Una App

Android Para Productos, Clientes Y


Pedidos
(Nivel #1)

El ttulo es claro.

En esta serie de tutoriales te mostrar como crear una aplicacin que administre
productos, clientes y pedidos basados en una base de datos en un servidor.

Qu significa Nivel #1?

Qu el actual tutorial que ests leyendo tiene el siguiente alcance:

Vamos a ver crear una REST API para leer los productos que tienes en tu servidor
y ponerlos en una lista (RecyclerView).

Te mostrar los pasos, herramientas, y conceptos para desarrollar esta


caracterstica de una forma sencilla, limpia, mantenible y sobre todo entendible.

El cdigo completo de la app y el servicio REST puedes encontrarlo en la misma


carpeta de este tutorial.

App Productos
Al igual que en todos los tutoriales que he creado sobre Desarrollo Android, este
tambin trae una app de ejemplo llamada App Productos.

App Products es una aplicacin administrativa para una farmacia de gran tamao,
cuyo fin es movilizar su proceso de toma de pedidos y consulta de productos por
parte de los vendedores.

Nuestro objetivo es repasar su reconstruccin con todo nivel de detalle.

Qu te parece?

Puede que su contenido o contexto pueda diferir un poco a tus necesidades, ya que
no todos los problemas son iguales.
Pero he aqu la parte buena:

Te he creado una plantilla con la ruta ptima para que superes las adversidades
particulares de tu proyecto.

Quieres verla?

Bien!

Checklist Para Desarrollar Tu App De


Productos
Lo primero que vamos a escudriar, son los pasos precisos que daremos para
ejecutar exitosamente nuestra aplicacin.

Esto puedo variar de programador a programador (de equipo a equipo, si es tu


caso).

A m en particular me gusta seguir un orden predefinido de lo que voy a realizar.


Definiendo el orden, las condiciones de uso, las herramientas y las prcticas que
usar.

A la suma de estos factores se le llama Metodologa.

Independientemente de que profesin tengas o que proyecto vayas a realizar,


siempre tendrs una metodologa. Ya sea una copiada, improvisada, propia, o
hibrida.

Qu tal te va con la tuya?

Si no tienes. Te recomiendo que comiences con esta:

1. Definir el propsito general de la app

2. Recolectar requerimientos

3. Determinar quin usar la app

4. Crear wireframe de pantallas

5. Determinar fuentes de datos y sincronizacin

6. Seleccionar recursos y herramientas


7. Desarrollar versin cascaron de la app

8. Crear servicio REST

9. Implementar cliente HTTP con Retrofit

Quedas en libertad de mover, eliminar y agregar pasos que se ajusten a tu carcter


y conocimientos.

Eres t quien eliges tu ruta.

Yo solo te mostrar cmo ponerla en marcha en este instante

Paso #1. Definir El propsito De La App


El propsito es el objetivo general que deseas alcanzar con tu app.

Una simple frase de no ms de 3 renglones que resuma tu futuro perfecto.

Por ejemplo:

La App reducir los tiempos del anlisis de mitigacin de 4 horas a 1 hora

La App incrementar los tiempos de toma de pedidos de nuestros meseros en un


30%

Ves el formato?

Usamos una mtrica que evidencie la mejora de una situacin. Simple.

En el caso de App Productos tenemos:

Encontrar productos solicitados por un cliente en menos de 2 segundos y tomar


pedidos digitalmente

El Contexto de App Products


Esta aplicacin es solo una de las caractersticas que tendra una app que tome las
rdenes de un negocio.

La proyeccin futura es que sincronice los pedidos con un servidor remoto.

Sin embargo, por el momento, llamaremos a este tutorial como el Nivel 1.


Paso #2. Recolectar Necesidades
Esta etapa es muy conocida por la mayora de ingenieros de sistemas asociados al
anlisis de software.

Bsicamente aqu debes crear una lista con las funcionalidades que tendr el
sistema basado en los objetivos del usuario.

En las metodologas tradicionales a la necesidad se le califica como


Requerimiento.

En metodologas giles se le llama Historia de usuario.

(No entrar a explicar los alcances de ambos por cuestiones de simplicidad).

Ahora, aplicando este paso, supondremos que el usuario (administrador del


negocio, supervisor, t mismo, etc.) necesita:

Una lista de todos los productos del negocio

Un filtro de productos segn sus atributos

La bsqueda de productos por nombre

Ver detalle del producto

El login de sus vendedores

Aadir pedido

Modificar pedido

Eliminar pedido

Ver detalle de pedido

Administrar clientes. Detalle, insercin, modificacin y eliminacin


(OPCIONAL)

Imprimir factura de pedido

Sincronizar pedidos locales con el servidor


Necesidades de bases de datos: En este punto tambin puedes capturar las
entidades, relaciones y atributos que requieren persistencia.

Para ello puedes usar varios artefactos. Dos de los ms populares son: diagramas
entidad-relacin y un diccionario de datos.

El uso de ambos lo defino muy bien en mi ebook 8 Pasos para disear tus bases
de datos. En l vers estrategias para capturar dichas necesidades.

Ahora bien:

En el estado actual, App Products solo tiene la entidad Producto.

Qu propiedades posee?

Cdigo

Nombre

Descripcin

Marca

Precio

Unidades en stock

Imagen(es) de producto

Paso #3. Determinar Quin Usar La App


Al principio habamos dicho que la app es para los vendedores que toman los
pedidos en la farmacia.

Y esta es la clara respuesta: Vendedores de la farmacia.

Identifica el o los usuarios para los cuales desees crear la app.

Por ejemplo, podra que tambin debas desarrollar un mdulo para los
supervisores de los vendedores.

Suponiendo que ellos monitorearn la actividad de cada vendedor.


O tal vez un panel de administracin que muestre el resumen de las ventas y
productividad de los empleados.

Paso #4. Crear Bocetos


A continuacin vamos a crear mocks de la aplicacin segn nuestra experiencia
con los patrones de diseo en Android.

Qu herramientas puedes usar?

Papel + Lapiz + Cmara para capturas

Ninjamock

Pothoshop

Mockplus

balsamiq

Pidoco

Lucidchart

Proto.io

Cul de todas elegir?

En mi caso me gusta mucho ninjamock porque es gratuita y muy intuitiva de usar.


Adems permite una fcil comunicacin con clientes que tengan algn
conocimiento de desarrollo.

Pero si mi cliente no tiene ni idea, entonces uso proto.io para mostrarle


interacciones e interfaz de alto nivel.

Es solo mi punto de vista. Ya t irs probando que te va mejor.

Retomando

El estado actual de este tutorial solo tiene una pantalla: la lista de productos.
Y basada en ella, estos son los puntos de interaccin del usuario:

Tap en botn bsqueda > Abre pantalla de bsqueda


Tap en producto > Abre pantalla de detalle
Long tap en producto > Ripple Effect + Aparicin de Contextual Action Bar
(opcional)

Swipe to refresh > Refrescar


Endless scroll > Se cargan elementos adicionales a la lista
Tambin anotemos los estados adversos:

Estado sin productos > Mensaje de ausencia de productos

Estado de error > Toast con mensajes de error


Paso #5. Determinar Fuentes De Datos Y
Estrategias De Sincronizacin
Ojo aqu:

Debes definir muy bien qu pasar con la informacin de tus usuarios.

Unas buenas preguntas que te propongo a responder son:

En qu lugares se guardarn datos?

R/ Por el momento (nivel 1), en App Products tendremos una base de datos remota
(servidor) para persistencia. Tambin usaremos la memoria del dispositivo como
cach al mostrar elementos.

Habr sincronizacin de datos?... Si es as, que estrategias usars?

R/ S.

Las entidades se comportarn de esta forma:


Productos: predominan los cambios del servidor, ya que desde el cliente
Android no se modificarn.

Adems:

El usuario sincronizar manualmente la app con el gesto Swipe to refresh

Se enviarn modificaciones inmediatamente la persistencia local cambie


(futuro)

Se notificarn cambios del servidor con notificaciones push (futuro)

Si no hay conexin disponible para sincronizar, se programar una


actualizacin a penas se detecte el restablecimiento de la red (futuro).

Qu polticas usars para tomar datos?

R/

Se consultar al servidor remoto por defecto cuando no haya datos en la


base de datos local.

Luego de obtener datos de la nube, la fuente de datos local se actualiza con


dichos datos. Luego se pone en la cach y se muestra en la vista.

Paso #6. Elegir Recursos Y Herramientas


Cmo llevas tu diagnostico hasta aqu?

Al llegar a este punto, debes tener definido al menos un 70% de lo que har tu app.

Con todo y lo anterior Qu tal si definimos las herramientas, recursos y


tecnologas que necesitamos?

Comencemos por el lado del cliente:

Manejo de colecciones y precondiciones > Librera Guava

Carga eficiente y cach en disco de imgenes > Librera Glide

Base de datos local (futuro) > SQLiteOpenHelper + ContentProvider


Ejecutor de peticiones HTTP hacia la API: Retrofit

Ahora, el lado del servidor:

Lenguaje: PHP 5.6

Gestor de bases de datos: MySQL

Proveedor del servicio de hosting: Localhost (nuestro PC local).

En el nivel #2 consideraremos usar opciones como: Google Cloud Platform,


Amazon web services, Rackspace, DigitalOcean, Microsoft Azure, Heroku,

Formato de intercambio: JSON

Paso #7. Crear Cascarn


Por fin!

Nos ha llegado el momento de codificar.

En esta etapa crearemos una primera entrega a la que yo llamo el cascarn.

Por qu este nombre?

La razn es sencilla: validar lo ms pronto posible tu app.

Te olvidars por un momento de las fuentes de datos y te centrar en crear una app
que solo utilice informacin falsa.

Hars que tu usuario pruebe de forma temprana todas las interacciones y flujos, de
modo que obtengas el restante de opiniones que solo se dan en la accin real.

Esto nos lleva a los siguientes pasos:

1. Definir arquitectura y patrones

2. Determinar tareas de programacin

Todo claro hasta all?

Si es tu caso, entonces empecemos.

Das könnte Ihnen auch gefallen