1. The Birchman Group
CONFIDENTIAL AND PROPRIETARY
Any use of this material without specific permission of The Birchman Group is strictly prohibited.
Android + SharePoint
Albert Lozano
2. 2
ÍNDICE
Android
Publicación
Herramientas de desarrollo
Ciclo de vida
Estructura de proyecto
Elementos de desarrollo
Android + SharePoint
Acceso a SharePoint
API REST
Autenticación
3. 3
Publicación
Registro en la consola de Google Play para desarrolladores.
Pago de cuota de registro única de 25 USD mediante Google Wallet.
Indicar información de contacto (Google Play Store).
4. 4
Publicación
La consola de desarrollador permite:
• Recoger estadísticas (descargas por versión ,
país, etc).
• Conceder permisos a otros usuarios.
• Restringir app para determinadas versiones o
países.
• Definir precio de la app, precio compras in-
app, etc.
• Lanzamiento de versiones alpha y beta para
determinados usuarios definidos por el
desarrollador.
5. 5
Herramientas de desarrollo
Java Development Kit (JDK).
Android Studio o Eclipse IDE + ADT plugin.
Android SDK (librerías, documentación, emulador, etc).
6. 6
Herramientas de desarrollo
Android Studio
Basado en IntelliJ.
Hace uso de las herramientas de compilación Gradle (basado en Maven).
Drag-and-drop GUI.
AVD Manager: crear dispositivos virtuales
SDK Manager: instalar librerías y documentación
7. 7
Ciclo de vida
Activity: componente que proporciona una ventana
con la cual el usuario puede interactuar.
Resumed: la activity está en primer plano y el
usuario puede interactuar con ella.
Paused: otra activity está en primer plano pero
ésta es todavía parcialmente visible o no cubre
toda la pantalla. (i.e. Pop Up).
Stopped: activity en background y no visible.
El sistema puede destruir las activities cuando
están en stopped o paused si se necesitan
recursos.
8. 8
Ciclo de vida
Solución
Guardar estado de la actividad – onSaveInstanceState()
Recuperar el estado de la actividad al crearla de nuevo.
TRANSPARENTE PARA EL USUSARIO!
9. 9
Estructura de proyecto
Android Studio Eclipse
Clases .java: contienen el código fuente de las
activities.
Res:
Layouts
Drawable: imágenes en diferentes
resoluciones.
Values: strings y dimensiones.
AndroidManifest.xml:
Declarar todos los componentes de la app.
Definir permisos (i.e. acceso internet).
Definir capacidades hardware y software que
utilizará la app (cámara, bluetooth…).
Declarar la versión mínima requerida.
build.gradle: dependencias a librerías externas.
10. 10
Elementos de desarrollo
Linear Layout: ordena los elementos hijos en una sola fila vertical u horizontal.
Automáticamente crea un scrollbar si los elementos superan el ancho o altura de la
pantalla
Relative Layout: permite especificar la posición relativa de los elementos entre ellos.
Web View: muestra páginas web.
11. 11
Elementos de desarrollo
Button
Text Field
Checkbox
Radio button
Spinners
Dialog
Toggle button
Google APIs:
Google Maps
Google+
Google Analytics
Google Cloud Messaging
…
14. 14
Soporte múltiples resoluciones
res/layout-w600dp/activity_main.xml (tables de 7”)
res/layout-w720dp/activity_main.xml (tablets de 10”)
Soporte de múltiples idiomas
Se cargan los recursos adecuados en función de la
configuración “locale” del dispositivo.
Elementos de desarrollo
15. 15
Elementos de desarrollo
Imágenes para múltiples resoluciones
ldpi: ~120dpi
mdpi: ~160dpi
hdpi: ~240dpi
xhdpi: ~320dpi
xxhdpi: ~480dpi
px = dp * (dpi / 160)
1px = 1dp in a 160dpi screen
USAR SIEMPRE MEDIDAS EN DP!!!
17. 17
Acceso a Sharepoint
SOAP
Web Services
(ASMX)
Client Side Object
Model
(CSOM/JSOM)
API REST
(ODATA)
Open Standards
XML
Microsoft propietary
XML/JSON
Open Standards
ATOM/JSON
18. 18
Acceso a Sharepoint
SharePoint 2010 Web Service Access SharePoint 2010 Web Service Clients
SharePoint 2013 Web Service Access SharePoint 2013 Web Service Clients
19. 19
API REST
Eficiente para operaciones simples.
HTTP y estándares abiertos.
Realizar operaciones CRUD (GET, POST, PUT, DELETE).
Independiente de la plataforma.
Soporta los fotmatos ATOM+XML y JSON (se indica en las cabeceras).
Para acceder a una determinada site collection:
http://server/site/_api/site
Para acceder a un determinado site:
http://server/site/_api/web
20. 20
API REST
Descripción URL endpoint Método
HTTP
Contenido body
Leer título de una site _api/web/title GET *
Leer metadata de una
lista
_api/web/lists/getbytitle('listname') GET *
Leer ítems de una lista _api/web/lists/getbytitle('listname')/items GET *
Añadir ítem a una lista _api/web/lists/getbytitle('listname')/items POST {
'_metadata':{'type':SP.listnameL
istItem},
'Title': 'MyItem'
}
21. 21
Autenticación
Query options
Ej: _api/web/lists/getByTitle('Customers')/items?$select=Title
Opción Propósito
$select Especifica los campos que se incluyen en los
datos devueltos.
$top Devuelve solo los n primeros elementos de una
colección o lista.
$skip Omite los n primeros elementos de una
colección o lista y devuelve todo lo demás.
$orderby Especifica los campos que se usan para ordenar
los datos antes de devolverlos.
22. 22
Autenticación
Autenticación NTLM
Activar Windows Authentication en el IIS.
Conexión persistente (autenticación en la
primera petición).
Cliente Servidor