Aplicaciones Móviles para Blackberry OS

49
APLICACIONES MÓVILES PARA BLACKBERRY Curso de Emergencia Carlos G. Gavidia [email protected]

description

Curso de desarrollo en Blackberry, incluye BBMVC, diseño UI y comunicación con el Servidor

Transcript of Aplicaciones Móviles para Blackberry OS

Page 1: Aplicaciones Móviles para Blackberry OS

APLICACIONES MÓVILES PARA BLACKBERRY Curso de Emergencia

Carlos G. Gavidia [email protected]

Page 2: Aplicaciones Móviles para Blackberry OS

Pasos Previos Para comenzar a programar necesitamos…

Page 3: Aplicaciones Móviles para Blackberry OS

Un Entorno de Desarrollo Blackberry JDE Plugin for Eclipse

Page 4: Aplicaciones Móviles para Blackberry OS

Simuladores

Para cada modelo y carrier soportado por la aplicación a desarrollar

Page 5: Aplicaciones Móviles para Blackberry OS

Software de Escritorio Para instalar en dispositivos Blackberry

Page 6: Aplicaciones Móviles para Blackberry OS

Code Signing Keys Para el uso de API’s reservadas

Page 7: Aplicaciones Móviles para Blackberry OS

Consideraciones y advertencias

• Tenemos poco CPU y RAM • El API nativa está en Java • Las pantallas son pequeñas • Tenemos tres formas de entrada de

datos: pantalla táctil, trackball y trackpad

• Debemos soportat MUCHOS dispositivos

Page 8: Aplicaciones Móviles para Blackberry OS

¡Hola Mundo! Pasos básicos para hacer una aplicación

Page 9: Aplicaciones Móviles para Blackberry OS

1. Extender UiApplication Para aplicaciones con Interfaz de Usuario

Page 10: Aplicaciones Móviles para Blackberry OS

2. Crear Pantallas y mostrarlas

Mediante el método pushScreen()

Page 11: Aplicaciones Móviles para Blackberry OS

3. Iniciar el Event Dispatcher en main() Para dibujar la pantalla e interactuar con el usuario

Page 12: Aplicaciones Móviles para Blackberry OS

4. Extendemos Screen para definir pantallas O MainScreen que nos ofrece cierto comportamiento por

defecto

Page 13: Aplicaciones Móviles para Blackberry OS

El API de Interfaz de Usuario

• Se basa en 3 conceptos • Fields: Controles de Interfaz de

Usuario. • Layout Managers: Organizan y

muestran los Fields. • Screens: Contienen a los managers y

representan a la pantalla del dispositivo.

Page 14: Aplicaciones Móviles para Blackberry OS

5. Configuramos la pantalla Agregando Fields y Managers

Page 15: Aplicaciones Móviles para Blackberry OS

6. Ejecutar en el Simulador

• Para desplegar en un dispositivo: • Firmar la

aplicación • Usar JavaLoader

• El IDE tiene un Debugger por si lo necesitan

Page 16: Aplicaciones Móviles para Blackberry OS

Algo de teoría Antes de seguir codificando

Page 17: Aplicaciones Móviles para Blackberry OS

Nociones de Apps. Blackberry

• El punto de entrada es el método main() • Sólo se permite una instancia de

UiApplication por proceso • El método enterEventDispatcher() no

retorna durante la ejecución de la aplicación

• El API UI de Blackberry se ejecuta sólo en un hilo.

Page 18: Aplicaciones Móviles para Blackberry OS

UiApplication.invokeAndWait Para ejecutar código en el hilo UI

Page 19: Aplicaciones Móviles para Blackberry OS

Fundamentos de UI Para aplicaciones Blackberry

Page 20: Aplicaciones Móviles para Blackberry OS

• Un campo para el DNI

• Otro campo para la contraseña

• Un logo en la cabecera

Esto es lo que queremos

Page 21: Aplicaciones Móviles para Blackberry OS

El API de Interfaz de Usuario (2)

• Un Field sólo puede pertenecer a un Manager

• Los Managers son también Fields, por lo que pueden estar contenidos dentro de otros Managers

• Sólo puede existir una pantalla activa a la vez

Page 22: Aplicaciones Móviles para Blackberry OS

BitmapField Para imágenes en pantalla

Page 23: Aplicaciones Móviles para Blackberry OS

Flags de Estilo

• Todos los Fields y Manager tienen un constructor que recibe Flags de Estilo

• Influyen en la apariencia, posición y comportamiento de los Fields

• Si funcionan o no depende también del Manager

• No hay garantías sobre cómo un Flag afectará a un Field.

Page 24: Aplicaciones Móviles para Blackberry OS

EditField y PasswordEditField Para el número de DNI y Contraseña

Page 25: Aplicaciones Móviles para Blackberry OS

ButtonField O BitmapButtonField para botones con imágenes

Page 26: Aplicaciones Móviles para Blackberry OS

Manejo de Eventos UI

• Patrón Observer para despachar eventos

• Los eventos de cambio dependen del tipo de Field

• Para registrar listeners se utiliza Field.setChangeListener()

• El modelo de eventos es Unicast • El listener debe implementar

FieldChangeListener

Page 27: Aplicaciones Móviles para Blackberry OS

FieldChangeListener Para los botones de “Login” y “Cómo Registrarse”

Page 28: Aplicaciones Móviles para Blackberry OS

BBMVC Nuestro framework MVC

Page 29: Aplicaciones Móviles para Blackberry OS

• Son de fácil acceso • Los ítems son

instancias de MenuItem, que a su vez implementa Runnable

• Contienen texto, prioridad y orden

Creación de Menús

Page 30: Aplicaciones Móviles para Blackberry OS

MenuItem Para agregar el menú “Ir al inicio”

Page 31: Aplicaciones Móviles para Blackberry OS

Hablando con el Servidor Conectividad en Blackberry OS

Page 32: Aplicaciones Móviles para Blackberry OS

Formas de Conexión

Page 33: Aplicaciones Móviles para Blackberry OS

Framework MIDP

• Iniciamos conexiones con javax.microedition.io.Connector

• Las conexiones implementan javax.microedition.io.Connection

Page 34: Aplicaciones Móviles para Blackberry OS

Fundamentos de HTTP

• No persiste estado entre conexiones • La solicitud o la respuesta pueden

contener información • La respuesta contiene un código de

respuesta • Los únicos métodos soportados por

Blackberry son GET, POST y HEAD • La solicitud o la respuesta pueden

contener cabeceras

Page 35: Aplicaciones Móviles para Blackberry OS

“Nunca harás conexiones remotas en el Event Thread”

O corres el riesgo de congelar la Interfaz de Usuario

Page 36: Aplicaciones Móviles para Blackberry OS

Runnable Para lanzar las solicitudes desde otros Threads

Page 37: Aplicaciones Móviles para Blackberry OS

Connector.open() Para establecer la conexión

Page 38: Aplicaciones Móviles para Blackberry OS

Connection.getResponseCode() Para verificar la respuesta

Page 39: Aplicaciones Móviles para Blackberry OS

Thread.start() Para iniciar el hilo de conexión

Page 40: Aplicaciones Móviles para Blackberry OS

Simulador MDS Para simular conexiones a Internet

Page 41: Aplicaciones Móviles para Blackberry OS

Probemos…

La conexión con el Servidor se realizá a través del nuevo Thread creado

Page 42: Aplicaciones Móviles para Blackberry OS

En caso de éxito Notificamos al controller

Page 43: Aplicaciones Móviles para Blackberry OS

LoginScreenController Procesa la respuesta

Page 44: Aplicaciones Móviles para Blackberry OS

Connection.setRequestProperty() Para Cabecera de Content-Type

Page 45: Aplicaciones Móviles para Blackberry OS

Conexiones Seguras HTTPS Usamos HTTPS en la URL

Page 46: Aplicaciones Móviles para Blackberry OS

Uso de TCP/IP Directo y Wifi Mediante el parámetro deviceside e interface

Page 47: Aplicaciones Móviles para Blackberry OS

Disponibilidad de Redes

• CoverageInfo para verificar métodos de conexión disponibles

• El método getCoverageStatus() puede devolver • COVERAGE_MDS • COVERAGE_DIRECT • COVERAGE_BIS_B

• WLANInfo para conexiones Wi-Fi mediante el método getWLANState()

Page 48: Aplicaciones Móviles para Blackberry OS

Ahora todo junto Armamos los parámetros de conexión

Page 49: Aplicaciones Móviles para Blackberry OS

Beginning Blackberry Development de Anthony Rizk (Apress)

Basado en