The document provides an overview of Alfresco's mobile SDKs for Android and iOS. It discusses why the SDKs were created, including to simplify access to Alfresco from mobile devices and enable third party app integration. For Android, it summarizes the key components of the SDK, including services, asynchronous APIs, UI libraries and sample apps. It also discusses how the SDK provides object-oriented access to Alfresco repositories and handles asynchronous calls. For iOS, it summarizes the included mobile API library, Objective CMIS library, and sample app, and discusses how the SDK uses blocks to handle asynchronous requests and errors.
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Alfresco Mobile SDK Agendas
1. Alfresco Mobile SDKs
Agenda
• Overview – Why, What & How?
– Gavin Cornwell
• Android SDK
– Jean Marie Pascal
• iOS SDK
– Peter Schmidt
2. Overview – Why?
• Simplify Access To Alfresco From Mobile
Devices
• Uniform API To Access On-Premise
Servers and The Cloud
• Enable 3rd party App Integration
• Rapidly Build Alfresco Based Apps
• Used For All Future Alfresco Apps
9. In Android world…
• A common Android Application is made of
– Activities
• provides a screen with which users can
interact in order to do something
– Fragments (Available in android 3+)
• represents a behavior or a portion of user
interface
– Loaders (Available in android 3+)
• make it easy to asynchronously load data
in an activity or fragment
– Services
• request information remotely to content
repository and are responsible for
creating data objects.
10. What Alfresco Mobile - Android
SDK provides…
• Synchronous Alfresco Services API
– High level services + objects
• Asynchronous API
– Loaders
• UI Component Library
– Fragments, Adapter and manager
• Sample application
– Demonstrate how to use components
11. It’s not just one project…
Alfresco Applications (sample…)
APK
Works on
APK Alfresco Mobile UI Components
LIB
Android version
superior to 3.0
JAR Alfresco Mobile Async API
JAR Alfresco Mobile Repository API
JAR Alfresco OpenCMIS Extension Works on
Android versions
superior to 2.1
Dependency JAR Android OpenCMIS
12. Support is possible…
Alfresco Applications (sample…)
APK
APK Alfresco Mobile UI Components
LIB
Android support JAR Alfresco Mobile Async API
library
JAR Works on
Android versions
superior to 2.1
JAR Alfresco Mobile Repository API
JAR Alfresco OpenCMIS Extension
Not provided
JAR Android OpenCMIS
Dependency
15. Use cases
• Create an application from scratch
– Extends and customize the sample application
• Add Alfresco oriented screen to an existing
application
– Use the ApkLib UI component and add a fragment
(Android 3+)
• Just need data
– Use the repository API
18. What’s included ?
Sample App
Mobile API Library
Included Objective CMIS
library
Documentation
(appledoc docset)
19. What are the libraries ?
Alfresco Mobile API Objective CMIS Library
(+headers) (+headers)
• Asynchronous handling of • Low level library to handle CMIS
sessions, requests & services
requests • Provides CMIS standard services,
• E.g. download/upload e.g.
documents • Document/Folder (e.g.
• Additional Services, e.g. upload/create/download)
• Comments • Versioning
• Tagging • Search
• Rating • Mostly synchronous request
• Activity • Collaborative project
• Planned to add to Apache CMIS
• Encapsulates low level CMIS project
calls
20. iOS Specifics
• Naming conventions
– Objective CMIS code prefixed with CMIS
– Mobile API code prefixed with Alfresco
• Error Handling
– No exceptions in iOS apps, use NSError instead
• As per Apple standard:
– NSError object remains nil if method call is successful. Always check!
• ARC (Automatic Reference Counting)*
– No more retain, release, autorelease on objects
^(<parameter list>){ execution code }
• Blocks
– Used extensively in Mobile API to handle asynchronous requests and callbacks
* requires iOS 5.x or later for full support
21. iOS SDK – Async Handling
In Sample
App code
If(nil == error)
{
self.session = session;
} Main Alfresco
else
{ thread Mobile API
UIAlertView *alert =
[[UIAlertView. Alloc]
………..
}
Background
thread
Repository
CMIS/REST
API
22. How do Objective C Blocks fit in?
• Blocks were introduced in iOS 4, Mac OSX 10.6
• Ad hoc functionality that can be passed on like
parameters
• Mobile API uses blocks as callbacks once requests
complete
– You define what your app/code needs to do within a
block