SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
APIs Nativas: Almacenamiento de
Datos
Joel Ortíz
Octubre 18 de 2013
@flashinstructor
Joel Ortíz
 BlackBerry Elite Member
& Community Manager
 Adobe Certified Instructor,
Expert & Community
Manager
 StarWars FanBoy
 BlackBerry, Activ
Developing Experiences
2
Archivos y Sistema de Archivos
No es tan aburrido como parece
Datos, Datos y Más Datos
 No es sorpresa:




Nuestras aplicaciones requieren datos
siempre
Es como si fuera la comida de las
aplicaciones XD

 Cascades y aplicaciones nativas
tienen diferentes medios para
almacenar y obtener datos
 Si es sorpresa:


Tendremos perímetros para el acceso a
datos

4
Archivos vs Bases de Datos
 Las aplicaciones tiene la capacidad de:






Leer y escribir hacia y desde el sistema de archivos
Crear archivos y carpetas
Crear bases de datos
Crear consultas a bases de datos
Obtener datos desde un servidor remoto o red local

5
BlackBerry Balance
 Aplicaciones de trabajo/empresariales:






Pueden acceder a datos de trabajo y
visualizar datos personales
Pueden adjuntar archivos personales a
emails o entradas del calendario de trabajo
Pueden acceder a intranets usando
BlackBerry Bridge, VPNs corporativas o WiFi

 Aplicaciones personales:



No pueden acceder a datos de trabajo
No pueden adjuntar archivos de trabajo a
emails o entradas de calendario personales

6
BlackBerry Balance
Aplicaciones de
Trabajo

Aplicaciones de
Trabajo/Personales

Aplicaciones
Personales

BES email, contactos,
calendario, tareas
etc.

Visor de fotos

Social (Facebook,
Twitter, etc.)

BlackBerry Bridge &
Viewer

Media Player

App World

BlackBerry Browser

Visor de documentos
(Acrobat, Doc To Go)

Web Browser

Aplicaciones de
Trabajo

Aplicaciones de
Archvios

Video Chat
7
Sistema de Archivos
 Las aplicaciones corren
sobre un “sandbox”
 El “sandbox” tiene
directorios tales como:





Datos
Activos
Tu aplicación compilada
Etc.

 No todos los directorios
son para nuestro uso

8
Acceso a Archivos con C

FILE *fp;
fp = fopen( "report.dat", "r" );
if( fp != NULL )
{
/* rest of code goes here */
fclose( fp );
}

9
Acceso a Archivos con Qt

QFile textfile("data/files/text/newfile.txt");
textfile.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&textfile);
out << "This is a text filen";
textfile.close();

10
Rutas del Sistema de Archivo
 Cascades tiene una clase que nos permite el acceso al
“sandbox”:
QDir

 Además provee funciones que nos permiten el acceso a
diferentes rutas del sistema de archivos
QDir::currentPath()
QDir::homePath()
QDir::tempPath()

– ruta al directorio de trabajo de la app

– retorna el directorio de datos de la app
– accede al directorio temporal de la app

11
Permisos del sistema de archivos
 No todos los directorios visibles son accesibles:


app




data




Sistema de logs para una aplicación

shared




Archivos de bases de datos de la aplicación

logs




Este es donde se almacenan tus datos. Variable $HOME

db




Aplicación compilada, activos, source

Subfolders que contienen datos compartidos agrupados por tipos. Todas las
aplicaciones pueden leer este directorio. Una aplicación puede escribir en este
directorio especificando el permiso access_shared

tmp

12
1 Demo
5 Minutos
Cascades: Modelo y Acceso a Datos
¡MVC! si, como lo escuchas ¡MVC!
DataAccess y DataModel
 Cascades ofrece un “data model” que permite el consumo y
presentación de datos de forma fácil
 Los datos externos (JSON o bases de datos) son cargados por
un objeto DataAccess
 Los datos cargados son organizados por la clase DataModel
 Cascades provee clases “ListView” para presentar los
DataModel

15
DataModel
 Un “data model” provee la información para ser desplegada en
una lista
 El DataModel puede ser extendido por una representación
personalizada de los datos

16
ListView
 Un ListView determina como serán desplegados los datos en tu
aplicación
 Pueden ser asociados con un DataModel

17
2 Demo
5 Minutos
Bases de Datos
¡Integremos Bases de Datos!
SQLite, QtSql, Cascades API

20
C y libsqlite
 Empaquetad con las herramientas SQLite
 Definido como libsqlite
 Esta disponible, pero se recomienda usar QtSql si se esta
empleando C++
 Para aplicaciones creadas en Cascades también existe una
interfaz para interactuar con bases de datos

21
Código QtSQL... ¿fácil?
#include <QSqlDatabase>
...
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("myserver");
db.setDatabaseName("mydb");
db.setUserName("myusername");
db.setPassword("mypassword");
bool ok = db.open();
if(ok)
{
QSqlQuery query("SELECT * FROM *");
}
22
3 Demo
5 Minutos
APIs Nativas: NFC
Joel Ortíz
Octubre 18 de 2013
@flashinstructor
Introducción
Near Field Communications es una tecnología mágica
Con solo chocar los dispositivos NFC puedes...
Disparar
Acciones

Transferir
Estados

Transferir
Objetos

Ejecutar
Transacciones

Buscar llegadas
de Bus

Juegos... ¡Tu
Turno!

Fotos,
Contactos, etc.

Pagos
25
Oportunidad
Enriquece tus aplicaciones con NFC
Táctiles

Sin Gestos

Conveniente

Diversión

Seguro
“NFC Móvil... Espera un crecimiento de usuarios 16.7 M a más de
250 M en 4 años (2011 - 2015)”
Forecast from Juniper Research (Abril 2011)

26
Enriqueciendo Tus Aplicaciones
Disparar
Acciones

Tags

Transferir
Estados
Transferir
Objetos

Punto a Punto

Ejecutar
Transacciones
27
Lectura de NFC Tags
NFC Tags

Tarjetas de memoria
que almacenan datos

Aplicaciones toman
una acción en
respuesta al mensaje

Tiene una interfaz sin
contacto

Leídas por un
dispositivo llamado
“Lector”

29
NFC Tags

4 tipos de tags
estándar NFC Forum

Varias capacidades
del tag

Tipos personalizados
son permitidos
(“external”)

Formato de mensaje
estándar (NDEF)

Tipos de mensaje
estándar incluyen Smart
poster, Texto, URI
30
El Proceso de 3 Pasos
Registrar
Declarativo

bar-descriptor.xml

Conectar
InvokeManager

Qt signals y slots

Procesar
ndefMessage = QtMobilitySubset::QNdefMessage::fromByteArray(data)
31
Registrar
<invoke-target id="com.example.NfcRaceTime">
<require-source-permissions>invoke_across_perimeters</requiresource-permissions>
<type>APPLICATION</type>
<filter>
<action>bb.action.OPEN</action>
<mime-type>application/vnd.rim.nfc.ndef</mime-type>
<property var="uris" value="ndef://4/my.rim.com/myrecordtype"/
>
</filter>
</invoke-target>

32
Invocation Framework

33
Conectar

bb::system::InvokeManager* _invokeManager =
new bb::system::InvokeManager();

QObject::connect(_invokeManager,
SIGNAL(
invoked(const bb::system::InvokeRequest&)),
this,
SLOT(
receivedInvokeRequest(
const bb::system::InvokeRequest&)));

34
Procesar

// SLOT method
void App::receivedInvokeRequest(
const bb::system::InvokeRequest& request) {
QByteArray data = request.data();
QtMobilitySubset::QNdefMessage ndefMessage =
QtMobilitySubset::QNdefMessage::fromByteArray(data);
}

handleNdefRequest(ndefMessage);

35
Procesar

// look for NDEF records of our special type
QList<QtMobilitySubset::QNdefRecord>::const_iterator ndefRecord;
for ( ndefRecord = ndefMessage.begin(); ndefRecord !=
ndefMessage.end(); ndefRecord++) {
if (ndefRecord->typeNameFormat() ==
QtMobilitySubset::QNdefRecord::ExternalRtd) {

}

}

if (QString(
ndefRecord->type()).compare("my.rim.com:myrecordtype") == 0 ){
emit raceTagDetected(QString(ndefRecord->payload()));
}
36
NFC Modo Punto a Punto
Oportunidad
Transferir datos de un dispositivo a otro
Sin Gestos

Comparte

Interactivo

Comparte solo tocando ambos dispositivos
Crea experiencias interactivas/físicas
38
Opciones de Protocolos
SNEP
Protocolo de
intercambio simple de
NDEF

Orientado a
mensajes

Higher level

LLCP
Protocolo de control
lógico de link

Orientado a
conexiones

Lower level
39
Opciones de la API
Invocation Framework
Menos código

Otra app proporciona
el servicio a la tuya

Puede proveer UI
para el usuario

Uso directo de la API
Algunas API son
llamadas en
iteraciones de eventos

Todas las opciones
disponibles para tu
app

Control completo
encima del UI
40
Compartir con Invocation Framework
Button {
id: shareButton
text: "Share vCard - Press and Hold!"
contextActions: [
ActionSet {
title: "Share NDEF Data"
InvokeActionItem {
id: sharedNdefData
query {
mimeType: "application/vnd.rim.nfc.ndef"
invokeActionId: "bb.action.SHARE"
}
}
}
]
41
Compartir con Invocation Framework

Button {
....
contextMenuHandler: ContextMenuHandler {
onShowing: {
// make NDEF message as byte array in C++
sharedNdefData.data =
_ndefFactory.getNdefVcardMessage(sendVcard.ndefFirstName,
sendVcard.ndefLastName, sendVcard.ndefAddress,
sendVcard.ndefEmail, sendVcard.ndefMobile);
}
}
}

42
4 Demo
5 Minutos
Gracias por su atención
¿Preguntas?
@flashinstructor
http://blackberrydeveloper.mx
joelortiz@blackberrydeveloper.mx

Más contenido relacionado

Destacado

Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCCharla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCJosé Ignacio Álvarez Ruiz
 
Popai Brasil Tendencias&amp;Novidades 2009
Popai Brasil Tendencias&amp;Novidades 2009Popai Brasil Tendencias&amp;Novidades 2009
Popai Brasil Tendencias&amp;Novidades 2009Jose Renato Mannis
 
Etiquetes intel·ligents o iSticker Mobile
Etiquetes intel·ligents o iSticker MobileEtiquetes intel·ligents o iSticker Mobile
Etiquetes intel·ligents o iSticker MobileAMTU
 
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...Pablo Curiel
 
Tecnología NFC
Tecnología NFCTecnología NFC
Tecnología NFCreki1921
 
Instalación de windows xp
Instalación de windows xpInstalación de windows xp
Instalación de windows xpJesus Estrada
 
Aplicaciones de beacons y NFC
Aplicaciones de beacons y NFCAplicaciones de beacons y NFC
Aplicaciones de beacons y NFCFactoriaapps
 
XII Congreso Español ITS. Nfc en el transporte público consorcio asturias
XII Congreso Español ITS. Nfc en el transporte público consorcio asturiasXII Congreso Español ITS. Nfc en el transporte público consorcio asturias
XII Congreso Español ITS. Nfc en el transporte público consorcio asturiasTelefónica Grandes Clientes
 
Pagos por móvil con Arduino & NFC para la Internet de las Cosas
Pagos por móvil con Arduino & NFC para la Internet de las CosasPagos por móvil con Arduino & NFC para la Internet de las Cosas
Pagos por móvil con Arduino & NFC para la Internet de las CosasPatxi
 
"Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p...
"Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p..."Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p...
"Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p...3JornadasRFID
 

Destacado (14)

Servicios NFC
Servicios NFCServicios NFC
Servicios NFC
 
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCCharla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
 
Popai Brasil Tendencias&amp;Novidades 2009
Popai Brasil Tendencias&amp;Novidades 2009Popai Brasil Tendencias&amp;Novidades 2009
Popai Brasil Tendencias&amp;Novidades 2009
 
Etiquetes intel·ligents o iSticker Mobile
Etiquetes intel·ligents o iSticker MobileEtiquetes intel·ligents o iSticker Mobile
Etiquetes intel·ligents o iSticker Mobile
 
Intelify tags - NFC
Intelify tags - NFCIntelify tags - NFC
Intelify tags - NFC
 
Ferxp
FerxpFerxp
Ferxp
 
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
 
Tecnología NFC
Tecnología NFCTecnología NFC
Tecnología NFC
 
Instalación de windows xp
Instalación de windows xpInstalación de windows xp
Instalación de windows xp
 
NFC-Lösungen im Portrait
NFC-Lösungen im Portrait NFC-Lösungen im Portrait
NFC-Lösungen im Portrait
 
Aplicaciones de beacons y NFC
Aplicaciones de beacons y NFCAplicaciones de beacons y NFC
Aplicaciones de beacons y NFC
 
XII Congreso Español ITS. Nfc en el transporte público consorcio asturias
XII Congreso Español ITS. Nfc en el transporte público consorcio asturiasXII Congreso Español ITS. Nfc en el transporte público consorcio asturias
XII Congreso Español ITS. Nfc en el transporte público consorcio asturias
 
Pagos por móvil con Arduino & NFC para la Internet de las Cosas
Pagos por móvil con Arduino & NFC para la Internet de las CosasPagos por móvil con Arduino & NFC para la Internet de las Cosas
Pagos por móvil con Arduino & NFC para la Internet de las Cosas
 
"Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p...
"Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p..."Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p...
"Una propuesta para etiquetar Entornos Conscientes del Contexto" presentada p...
 

Similar a APIs Nativas: Almacenamiento de Datos y NFC

MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield ProtectorChema Alonso
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasGuillermo Álvaro Rey
 
Unidad 4: Administración de datos en dispositivos móviles
Unidad 4: Administración de datos en dispositivos móvilesUnidad 4: Administración de datos en dispositivos móviles
Unidad 4: Administración de datos en dispositivos móvilesJuan Anaya
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nubeINFORGRA
 
Taller 1 de bases de datos rafael ricardo sanchez gonzalez - 1501623-2
Taller 1 de bases de datos   rafael ricardo sanchez gonzalez - 1501623-2Taller 1 de bases de datos   rafael ricardo sanchez gonzalez - 1501623-2
Taller 1 de bases de datos rafael ricardo sanchez gonzalez - 1501623-2Ricardo Sanchez
 
Cómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datosCómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datosGobierno Local
 
Soluciones de búsqueda corporativa
Soluciones de búsqueda corporativaSoluciones de búsqueda corporativa
Soluciones de búsqueda corporativaraulpri
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Iniciativa Barcelona Open Data
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olothojalataverde
 
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semánticaNova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semánticaDolors Reig (el caparazón)
 

Similar a APIs Nativas: Almacenamiento de Datos y NFC (20)

Glosario base de datos
Glosario base de datosGlosario base de datos
Glosario base de datos
 
Internet
InternetInternet
Internet
 
MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield Protector
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
 
Unidad 4: Administración de datos en dispositivos móviles
Unidad 4: Administración de datos en dispositivos móvilesUnidad 4: Administración de datos en dispositivos móviles
Unidad 4: Administración de datos en dispositivos móviles
 
Foro 2
Foro 2Foro 2
Foro 2
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nube
 
Taller 1 de bases de datos rafael ricardo sanchez gonzalez - 1501623-2
Taller 1 de bases de datos   rafael ricardo sanchez gonzalez - 1501623-2Taller 1 de bases de datos   rafael ricardo sanchez gonzalez - 1501623-2
Taller 1 de bases de datos rafael ricardo sanchez gonzalez - 1501623-2
 
Cómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datosCómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datos
 
Soluciones de búsqueda corporativa
Soluciones de búsqueda corporativaSoluciones de búsqueda corporativa
Soluciones de búsqueda corporativa
 
traajo ofimatica
 traajo ofimatica traajo ofimatica
traajo ofimatica
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olot
 
Dbpedia
DbpediaDbpedia
Dbpedia
 
Taller 1
Taller 1Taller 1
Taller 1
 
Base de datos 2
Base de datos 2Base de datos 2
Base de datos 2
 
Bdoo
BdooBdoo
Bdoo
 
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semánticaNova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
 
Web semantica
Web semantica Web semantica
Web semantica
 
Taller de las nube.
Taller de las nube.Taller de las nube.
Taller de las nube.
 

Último

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 

Último (20)

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 

APIs Nativas: Almacenamiento de Datos y NFC

  • 1. APIs Nativas: Almacenamiento de Datos Joel Ortíz Octubre 18 de 2013 @flashinstructor
  • 2. Joel Ortíz  BlackBerry Elite Member & Community Manager  Adobe Certified Instructor, Expert & Community Manager  StarWars FanBoy  BlackBerry, Activ Developing Experiences 2
  • 3. Archivos y Sistema de Archivos No es tan aburrido como parece
  • 4. Datos, Datos y Más Datos  No es sorpresa:   Nuestras aplicaciones requieren datos siempre Es como si fuera la comida de las aplicaciones XD  Cascades y aplicaciones nativas tienen diferentes medios para almacenar y obtener datos  Si es sorpresa:  Tendremos perímetros para el acceso a datos 4
  • 5. Archivos vs Bases de Datos  Las aplicaciones tiene la capacidad de:      Leer y escribir hacia y desde el sistema de archivos Crear archivos y carpetas Crear bases de datos Crear consultas a bases de datos Obtener datos desde un servidor remoto o red local 5
  • 6. BlackBerry Balance  Aplicaciones de trabajo/empresariales:    Pueden acceder a datos de trabajo y visualizar datos personales Pueden adjuntar archivos personales a emails o entradas del calendario de trabajo Pueden acceder a intranets usando BlackBerry Bridge, VPNs corporativas o WiFi  Aplicaciones personales:   No pueden acceder a datos de trabajo No pueden adjuntar archivos de trabajo a emails o entradas de calendario personales 6
  • 7. BlackBerry Balance Aplicaciones de Trabajo Aplicaciones de Trabajo/Personales Aplicaciones Personales BES email, contactos, calendario, tareas etc. Visor de fotos Social (Facebook, Twitter, etc.) BlackBerry Bridge & Viewer Media Player App World BlackBerry Browser Visor de documentos (Acrobat, Doc To Go) Web Browser Aplicaciones de Trabajo Aplicaciones de Archvios Video Chat 7
  • 8. Sistema de Archivos  Las aplicaciones corren sobre un “sandbox”  El “sandbox” tiene directorios tales como:     Datos Activos Tu aplicación compilada Etc.  No todos los directorios son para nuestro uso 8
  • 9. Acceso a Archivos con C FILE *fp; fp = fopen( "report.dat", "r" ); if( fp != NULL ) { /* rest of code goes here */ fclose( fp ); } 9
  • 10. Acceso a Archivos con Qt QFile textfile("data/files/text/newfile.txt"); textfile.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&textfile); out << "This is a text filen"; textfile.close(); 10
  • 11. Rutas del Sistema de Archivo  Cascades tiene una clase que nos permite el acceso al “sandbox”: QDir  Además provee funciones que nos permiten el acceso a diferentes rutas del sistema de archivos QDir::currentPath() QDir::homePath() QDir::tempPath() – ruta al directorio de trabajo de la app – retorna el directorio de datos de la app – accede al directorio temporal de la app 11
  • 12. Permisos del sistema de archivos  No todos los directorios visibles son accesibles:  app   data   Sistema de logs para una aplicación shared   Archivos de bases de datos de la aplicación logs   Este es donde se almacenan tus datos. Variable $HOME db   Aplicación compilada, activos, source Subfolders que contienen datos compartidos agrupados por tipos. Todas las aplicaciones pueden leer este directorio. Una aplicación puede escribir en este directorio especificando el permiso access_shared tmp 12
  • 14. Cascades: Modelo y Acceso a Datos ¡MVC! si, como lo escuchas ¡MVC!
  • 15. DataAccess y DataModel  Cascades ofrece un “data model” que permite el consumo y presentación de datos de forma fácil  Los datos externos (JSON o bases de datos) son cargados por un objeto DataAccess  Los datos cargados son organizados por la clase DataModel  Cascades provee clases “ListView” para presentar los DataModel 15
  • 16. DataModel  Un “data model” provee la información para ser desplegada en una lista  El DataModel puede ser extendido por una representación personalizada de los datos 16
  • 17. ListView  Un ListView determina como serán desplegados los datos en tu aplicación  Pueden ser asociados con un DataModel 17
  • 19. Bases de Datos ¡Integremos Bases de Datos!
  • 21. C y libsqlite  Empaquetad con las herramientas SQLite  Definido como libsqlite  Esta disponible, pero se recomienda usar QtSql si se esta empleando C++  Para aplicaciones creadas en Cascades también existe una interfaz para interactuar con bases de datos 21
  • 22. Código QtSQL... ¿fácil? #include <QSqlDatabase> ... QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL"); db.setHostName("myserver"); db.setDatabaseName("mydb"); db.setUserName("myusername"); db.setPassword("mypassword"); bool ok = db.open(); if(ok) { QSqlQuery query("SELECT * FROM *"); } 22
  • 24. APIs Nativas: NFC Joel Ortíz Octubre 18 de 2013 @flashinstructor
  • 25. Introducción Near Field Communications es una tecnología mágica Con solo chocar los dispositivos NFC puedes... Disparar Acciones Transferir Estados Transferir Objetos Ejecutar Transacciones Buscar llegadas de Bus Juegos... ¡Tu Turno! Fotos, Contactos, etc. Pagos 25
  • 26. Oportunidad Enriquece tus aplicaciones con NFC Táctiles Sin Gestos Conveniente Diversión Seguro “NFC Móvil... Espera un crecimiento de usuarios 16.7 M a más de 250 M en 4 años (2011 - 2015)” Forecast from Juniper Research (Abril 2011) 26
  • 29. NFC Tags Tarjetas de memoria que almacenan datos Aplicaciones toman una acción en respuesta al mensaje Tiene una interfaz sin contacto Leídas por un dispositivo llamado “Lector” 29
  • 30. NFC Tags 4 tipos de tags estándar NFC Forum Varias capacidades del tag Tipos personalizados son permitidos (“external”) Formato de mensaje estándar (NDEF) Tipos de mensaje estándar incluyen Smart poster, Texto, URI 30
  • 31. El Proceso de 3 Pasos Registrar Declarativo bar-descriptor.xml Conectar InvokeManager Qt signals y slots Procesar ndefMessage = QtMobilitySubset::QNdefMessage::fromByteArray(data) 31
  • 34. Conectar bb::system::InvokeManager* _invokeManager = new bb::system::InvokeManager(); QObject::connect(_invokeManager, SIGNAL( invoked(const bb::system::InvokeRequest&)), this, SLOT( receivedInvokeRequest( const bb::system::InvokeRequest&))); 34
  • 35. Procesar // SLOT method void App::receivedInvokeRequest( const bb::system::InvokeRequest& request) { QByteArray data = request.data(); QtMobilitySubset::QNdefMessage ndefMessage = QtMobilitySubset::QNdefMessage::fromByteArray(data); } handleNdefRequest(ndefMessage); 35
  • 36. Procesar // look for NDEF records of our special type QList<QtMobilitySubset::QNdefRecord>::const_iterator ndefRecord; for ( ndefRecord = ndefMessage.begin(); ndefRecord != ndefMessage.end(); ndefRecord++) { if (ndefRecord->typeNameFormat() == QtMobilitySubset::QNdefRecord::ExternalRtd) { } } if (QString( ndefRecord->type()).compare("my.rim.com:myrecordtype") == 0 ){ emit raceTagDetected(QString(ndefRecord->payload())); } 36
  • 37. NFC Modo Punto a Punto
  • 38. Oportunidad Transferir datos de un dispositivo a otro Sin Gestos Comparte Interactivo Comparte solo tocando ambos dispositivos Crea experiencias interactivas/físicas 38
  • 39. Opciones de Protocolos SNEP Protocolo de intercambio simple de NDEF Orientado a mensajes Higher level LLCP Protocolo de control lógico de link Orientado a conexiones Lower level 39
  • 40. Opciones de la API Invocation Framework Menos código Otra app proporciona el servicio a la tuya Puede proveer UI para el usuario Uso directo de la API Algunas API son llamadas en iteraciones de eventos Todas las opciones disponibles para tu app Control completo encima del UI 40
  • 41. Compartir con Invocation Framework Button { id: shareButton text: "Share vCard - Press and Hold!" contextActions: [ ActionSet { title: "Share NDEF Data" InvokeActionItem { id: sharedNdefData query { mimeType: "application/vnd.rim.nfc.ndef" invokeActionId: "bb.action.SHARE" } } } ] 41
  • 42. Compartir con Invocation Framework Button { .... contextMenuHandler: ContextMenuHandler { onShowing: { // make NDEF message as byte array in C++ sharedNdefData.data = _ndefFactory.getNdefVcardMessage(sendVcard.ndefFirstName, sendVcard.ndefLastName, sendVcard.ndefAddress, sendVcard.ndefEmail, sendVcard.ndefMobile); } } } 42
  • 44. Gracias por su atención ¿Preguntas? @flashinstructor http://blackberrydeveloper.mx joelortiz@blackberrydeveloper.mx