Veremos qué opciones nos ofrece Microsoft, para el desarrollo multiplataforma, y siguiendo la filosofía de poder consumir la API de Office 365 desde cualquier parte y dentro de cualquier dispositivo, montaremos una pequeña aplicación híbrida con Cordova que mostrará información existente en SharePoint Online.
Por David Mirón (@davidmiron7)
Consultor y desarrollador del equipo SharePoint de Pasiona con 6 años de experiencia. Me gusta SharePoint y también los retos, por eso después de todos estos años he aprendido disfrutado y sufriendo desde su versión 2007. Desde hace poco miembro de la fundación [T]echdencias.
12. Plataformas soportadas
• iOS
• Amazon Fire OS
• Android
• BlackBerry 10
• Windows Phone 8
• Windows
• Ubuntu Touch
• Firefox OS
13. Ventajas y desventajas vs. desarrollo nativo
• Costes y tiempo
• Poco sujeto a actualizaciones de plataforma
• Código reutilizable
• Limitaciones, no se utiliza toda la potencia de la plataforma
• Rendimiento inferior
16. Operaciones con la API
• Leer mensajes
• Borrar mensajes
• Enviar/Responder/Reenviar mensajes
• Gestión de ficheros Adjuntos
• Gestión de carpetas
Capability Mail
17. Operaciones con la API
• Leer eventos de un rango especifico
• Crear eventos
• Borrar eventos
• Editar eventos
Capability Calendar
18. Operaciones con la API
• Leer contactos
• Buscar contactos
• Crear contactos
• Eliminar contactos
• Editar contactos
Capability Contacts
19. Operaciones con la API
• Buscar tareas de usuario
• Ver Tareas
• Crear Tareas
• Modificar Tareas
• Eliminar Tareas
Capability Tasks
Desarrollo nativo para Android, Windows Phone o iOS. Vamos a atacar directamente a las APIs de cada una de las plataformas soportadas.
Frameworks para desarrollo multiplataforma.
Los dos mas conocidos. Xamarin y Cordova.
Existen muchas, pero la más conocida es PhoneGap/Apache Cordova.
Nacimiento Apache Cordova:
Surge por la necesidad de crear aplicaciones orientadas a móviles con HTML5 y dotarlas de una capa JavaScript que permita acceder a las funciones nativas de cada sistema, así como de un entorno de ejecución que permita ejecutarlas en cualquier sistema operativo móvil.
2009 - Nitobi crea PhoneGap
Sept. 2011 – Nitobi dona el proyecto a Apache
Oct. 2011 - Adobe compra Nitobi
2012 - Apache renombre el proyecto como Cordova.
Crear la interfaz usando HTML, CSS y JavaScript, lenguajes muy conocidos y utilizados, y desplegar a las diferentes plataformas.
Además exponen gran parte de la funcionalidad nativa del dispositivo móvil a través de librerías JavaScript, de modo que es muy sencillo “engancharse” desde la aplicación HTML5 que estamos creando.
Apache Cordova es un framework de licencia libre que cuenta con muchas Apis de diversos dispositivos móviles para desarrollar aplicaciones nativas dentro de un dispositivo móvil. Cada ves está tomando más énfasis en el mundo de los programadores y es que para el desarrollo de las aplicaciones se utilizan las tecnologías web HTML, CSS y JavaScript.
Hibridizar: Al desarrollar aplicaciones híbridas utilizamos la tecnología nativa (conjunto de APIs) cuando es necesario o mas nos conviene (para acceder a cámara, acelerómetro, contactos, etc.), y la tecnología web (como HTML5, CSS3 y JavaScript) para el desarrollo de la estructura e interfaz de la aplicación.
Una de las grandes peculiaridades de este entorno de trabajo es la posibilidad de desarrollar para iOS, Android y demás sistemas operativos sin la necesidad de programar en sus lenguajes nativos (Java, Objetive-C, etc.)
Desarrollo en paralelo: En paralelo me refiero a que puedes desarrollar aplicaciones con el mismo código fuente para varias plataformas de manera simultánea. Prefiero utilizar el término desarrollo en paralelo porque prefiero no abusar del termino multiplataforma que hemos oído ya tantísimas veces.
Este tipo de desarrollo nos permite maximizar o utilizar la mayor parte de funciones compartidas por las plataformas soportadas mediante un mismo código fuente dejando de lado las funciones o aspectos específicos de cada plataforma para el desarrollo nativo puro.
Visual studio: Que decir de la propia integración que tiene con visual studio y que los desarrolladores del mundo Microsoft no tengan porque moverse de IDE. Aunque eso si, si deseas desarrollar, por ejemplo, para blackberry, evidentemente vas a necesitar descargarte el SDK y los emuladores necesarios.
Herramientas avanzadas de debug!
Lenguajes neutrales: Es decir, programamos en un lenguaje que no es específico de ningún sistema operativo. Después, esta maravillosa herramienta transforma nuestro código y los traduce a los lenguajes que hablan cada sistema operativo. Así, programamos nuestra aplicación una única vez y después se genera una aplicación específica para Android, otra para iOS, otra para Windows, etc.
También hay que nombrar las posibilidad de poder utilizar diferentes frameworks javascript como Angular, emberjs, knockout o backbone.
Aunque es cierto que tenemos multitud de plataformas contra las que realizar nuestros desarrollos con Cordova. Es importante comentar que existe total compatiblidad con características genéricas de estos sistemas operativos como por ejemplo pueden ser el acelerómetro, cámara, geolocalización, notificaciones, etc.
Ventajas aplicaciones multiplataforma
Maneja todo el código de las aplicaciones desde un mismo código fuente. No tenemos que abrir nuestro visual studio, eclipse y xcode para modifcar los diferentes códigos fuentes.
Los posibles bugs son solucionados en todas las plataformas a la vez.
Es fácil hacer un diseño. Conocimiento de HTML y CSS es importante y fácil de maquetar un diseño.
Costes y tiempo de mantenimiento y desarrollo.
Desventajas aplicaciones multiplataforma
El rendimiento es muy malo, al no ser un código compilado y por tanto reordenado la velocidad de la app se ve muy afectada.
Estas muy limitado, no podrás usar todas las características del teléfono adecuadamente.
Competencia, si tu idea está o se realiza en código nativo estas fuera de juego. Prioridad en los stores. Siempre van delante las app nativas.
OneDrive for Business is a personal library intended for storing and organizing your work documents. As an integral part of Office 365 or SharePoint Server 2013, OneDrive for Business lets you work within the context of your organization, with features such as direct access to your organization’s address book.
Note OneDrive for Business is different from OneDrive, which is intended for personal storage separate from your workplace. OneDrive for Business is also different from your team site, which is intended for storing team or project-related documents.
User photo operations
The user photo operations allow you to get information about the available photo sizes and get the photo stream. The user photo operations are available with any of the following scopes: mail.read/write, calendar read/write, and contacts read/write permissions ('48x48‘ a '648x648')
Video service (Solo disponible con planes enterprise)
Permite creación de canales, subida de videos y reproducción por streaming después de la descodificación.
Se nutre del servicio Azure Media Services.
Como se integra Apache Cordova con Office 365. Que necesitamos?
Lo primero que necesitamos para realizar una app que consuma la API de office 365 es registrar dicha aplicación y asignarle los permisos que tendrá sobre los servicios que queramos.
Por suerte, podemos realizar estas dos acciones de una tirada. Una vez asignemos los permisos correspondientes, se registrará la aplicación directamente en Azure.
Solicitamos página de autenticación de Azure AD.
Su aplicación redirige al endpoint de autenticación del AD de Azure.
https://msdn.microsoft.com/en-US/library/azure/dn645542.aspx
El usuario se autentica y otorga consentimiento, si la aplicación está configurada con los derechos de acceso restringido,
ACS Azure emite un código de autorización.
El usuario da su consentimiento para la autenticación de la aplicación en Office 365 junto con los permisos especificados anteriormente dentro de Visual Studio.
ACS Azure emite un código de autorización.
Nuestra App pasa el código de autorización a AZURE el cual nos va a devolver los llamados Refresh Token y Access token.
Refresh Token: nos permite actualizar el acces token en caso de que este caduque. La caducidad del refresh token depende de varios factores que no entraremos ahora a valorar.
Acces token: Es el que se utiliza para acceder a los recursos protegidos, en este caso la API de Office 365. En el caso de SharePoint, como luego veremos, es el token que debemos pasarle a las consultas rest para que estas nos devuelvan datos y no nos den acceso no autorizado. Bearer
https://msdn.microsoft.com/library/office/dn605895(v=office.15).aspx
Mediante el acces token ya tenemos acceso a las APIs expuestas con Office 365 y ya tenemos completamente integrada la aplicación.
The basic objects that you need before you can perform any operations with O365 service are the context objects. For the demo app, the following context objects are required:
Authentication context -> authContext
Discovery context -> discoveryContext
El objeto authContext le permite a buscar el token ID de y también el token de acceso necesarios , que pueden utilizarse para obtener información de los usuarios y para llamar a los servicios que expone la API.
El objeto discoveryContext le permite a buscar las capacidades de servicio de Office 365 , como Mail o calendario o MyFiles , junto con sus endpoints correspondientes . Una vez que tenga el símbolo de identificación deseado , puede ser usado para identificar al usuario .