Aplicaciones Móviles para Blackberry OS

Post on 23-Jun-2015

1.326 views 0 download

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

APLICACIONES MÓVILES PARA BLACKBERRY Curso de Emergencia

Carlos G. Gavidia cgavidiac@gmail.com

Pasos Previos Para comenzar a programar necesitamos…

Un Entorno de Desarrollo Blackberry JDE Plugin for Eclipse

Simuladores

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

Software de Escritorio Para instalar en dispositivos Blackberry

Code Signing Keys Para el uso de API’s reservadas

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

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

1. Extender UiApplication Para aplicaciones con Interfaz de Usuario

2. Crear Pantallas y mostrarlas

Mediante el método pushScreen()

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

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

defecto

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.

5. Configuramos la pantalla Agregando Fields y Managers

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

Algo de teoría Antes de seguir codificando

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.

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

Fundamentos de UI Para aplicaciones Blackberry

• Un campo para el DNI

• Otro campo para la contraseña

• Un logo en la cabecera

Esto es lo que queremos

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

BitmapField Para imágenes en pantalla

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.

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

ButtonField O BitmapButtonField para botones con imágenes

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

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

BBMVC Nuestro framework MVC

• 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

MenuItem Para agregar el menú “Ir al inicio”

Hablando con el Servidor Conectividad en Blackberry OS

Formas de Conexión

Framework MIDP

• Iniciamos conexiones con javax.microedition.io.Connector

• Las conexiones implementan javax.microedition.io.Connection

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

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

O corres el riesgo de congelar la Interfaz de Usuario

Runnable Para lanzar las solicitudes desde otros Threads

Connector.open() Para establecer la conexión

Connection.getResponseCode() Para verificar la respuesta

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

Simulador MDS Para simular conexiones a Internet

Probemos…

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

En caso de éxito Notificamos al controller

LoginScreenController Procesa la respuesta

Connection.setRequestProperty() Para Cabecera de Content-Type

Conexiones Seguras HTTPS Usamos HTTPS en la URL

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

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()

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

Beginning Blackberry Development de Anthony Rizk (Apress)

Basado en