aplicaciones móviles para blackberry os
DESCRIPTION
Curso de desarrollo en Blackberry, incluye BBMVC, diseño UI y comunicación con el ServidorTRANSCRIPT
APLICACIONES MÓVILES PARA BLACKBERRY Curso de Emergencia
Carlos G. Gavidia [email protected]
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