SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Alfresco iOS Mobile 

Application Details and Design
Mike Hatfield - Senior Engineer, Mobile Team
Marc Dubresson - Director of Mobile Products
Who are we?
Marc Dubresson
• Mobile Product Management
Gavin Cornwell
Mike Hatfield
• Alfresco Mobile Development Core Team
Zia
• Outsourced Mobile Development Partner
• Platinum Alfresco Professional Services & OEM Partner
Agenda
• Today’s News
• Architecture Overview
• CMIS Refresher
• Demo
• Technical Walkthrough
• Open Source Project
• Roadmap
• Questions?
Alfresco Mobile 1.1
Architecture Overview
Mostly a CMIS application talking to Alfresco
Several features specific to Alfresco
Alfresco
CMIS
REST
CMIS Refresher
CMIS Technical Committee Goals & Scope
• Content Management Interoperability Services
• Enable applications to target different ECM repositories uniformly
• Provide a set of basic services enabling richer ECM applications
and use cases
• All for loose coupling of an ECM application on the underlying
repository
• Use popular protocol bindings
• REST / AtomPub
• Web Services / SOAP
• v1.1 - JSON (Browser Binding)
Demo
Alfresco Mobile in Action – A Few Features
• CMIS:
• Login to Alfresco over HTTP or HTTPS
• Browse, Search, Display Content and Edit Metadata, Upload Files
• Create Folders
• Alfresco
• Activities
• Like & Unlike
• Comment on Documents
• iOS
• Local Downloads
• “Open In...” support to/from other apps
Design
• Universal binary
• Hierarchy of Table Views
• Navigation based app for browsing CMIS repositories
• Layered on Alfresco specific functionality
Designed for the iPad
• Navigation based app but with iPad-specific view controllers
• Split View Controller
• Still a universal binary
CMIS AtomPub Binding (XML)
Alfresco REST API (JSON)
App Launch / Sites / Browse
• iOS: Read user settings
• CMIS: Retrieve AtomPub Service Document
• Alfresco: Request Sites List
• CMIS: Request folder children for the Root Collection
• CMIS: Navigate into a folder or site
Activities
• Alfresco: Retrieve user’s activity feed
• User taps a document table cell
• CMIS: Retrieve Document via
getObjectByID service
• User taps the “info icon”
• CMIS: Retrieve Document Metadata
using getTypeDefinition service
Search
Execute a CMIS Query
• Full-text search:
•SELECT * FROM cmis:document WHERE
CONTAINS(‘keywords’)
• Search by cmis:name:
•SELECT * FROM cmis:document WHERE
CONTAINS(‘~cmis:name:’*keywords*’)
Tools for iOS Development
Mac with OS X Snow Leopard or Lion
XCode 4.2
• Integrated Development Environment
• Integrated Build System
• Debugger
• Interface Builder
• iOS Simulator

Instruments
• Performance and behaviour analysis
Getting Started
Create an iOS developer account (free)
Install the latest version of XCode 4.2 (free)
Clone the repository
• git clone https://ziadev@bitbucket.org/ziadev/alfresco-mobile.git
Open the Project
Multiple Targets in the Project
Two Targets: Alfresco & Fresh Docs
Build and Run
Select a target and the 



iOS Simulator to Use
How do I install it on my device?
See iOS Provisioning Portal Resources & How-To Guides
Sign up for a (paid) iOS Developer
Program Account
Configure profile:
Development certificate, App Id
Provision Device (UDID)
Configure & build the App for the device
I Thought This Was A DevCon?
AlfrescoAppDelegate.h
Calling an AtomPub Service
CMIS	RESTful	Request
AtomPub	XML
Alfresco
Creating an HTTP Request
• Using ASIHTTPRequest build the request
• The delegate handles events from that request
Parsing AtomPub XML
Event-Driven XML Parsing (SAX)
• Parser sends messages (parsing events) to it’s delegates
(callbacks)
Use NSXMLParser & NSXMLParserDelegate
• Recommended by Apple
• Native API
• Objective-C based implementation
Why not use the Tree-based API (DOM)?
• Apple does not provide the API for iOS
NSXMLParser & NSXMLParserDelegate
Setting up NSXMLParser
NSXMLParserDelegate methods
• –
parser:didStartElement:namespaceURI:qualifiedName:attributes:
• – parser:didEndElement:namespaceURI:qualifiedName:
• – parser:foundCharacters:
Calling Alfresco REST APIs
RESTful	HTTP	Request
JSON
Alfresco
JSON data transport
Simpler to consume than XML
Using SBJson
• Other libraries available, e.g. TouchJSON, JSONKit
• iOS 5.0 supports JSON natively
Parses into NSDictionary and NSArray objects
CMIS 1.1 will contain a Browser Binding
What do I need to know?
• Objective-C
• cocoadevcentral.com/d/learn_objectivec
• iOS App Programming
• developer.apple.com
• Alfresco RESTful API
• wiki.alfresco.com
• CMIS AtomPub Binding
• wiki.alfresco.com/wiki/CMIS
• Git
• gitref.org
Common Design Patterns
Model-View-Controller
• A pattern to relate the user interface to an underlying data
model.
Delegation
• A patten where an object, the delegator, delegates tasks to an
associated helper object, the delegate.
• The delegate is responsible for executing the task for the
delegator.
Target-Action
• Target-action is a design pattern in which an object holds the
information necessary to send a message to another object when
an event occurs.
API’s and Libraries Used
Cocoa Touch Frameworks
• The API’s Apple provides to build an iOS application
ASIHTTPRequest
• Wrapper around Apple’s CFNetwork API
SBJson
• Fast, simple & clean JSON parser and generator
ISO8601
• XML date parsing
Flurry Analytics
• Remote logging for app crashes (uncaught exceptions)
Open Source Availability
Hosted on Bitbucket
bit.ly/alf-mobile
Search for “alfresco-mobile” at bitbucket.org
Released under the Mozilla Public License Version 1.1
How Do I Contribute?
Step-by-step example for forking and sending a pull request:



http://bit.ly/pbIDRk (atlassian.com wiki)
Resources
Apple iOS Developer Portal
• Sample Code, API Documentation, Design Guides,

Developer Videos, etc.!
Books
• Beginning iPhone 4 Development (Apress Publishing)
• Programming in Objective-C (Sam’s Publishing)
Many Developer Blogs
• http://icepla.net
Also: Twitter, StackOverflow
Roadmap
Next version
• Alfresco Cloud
• Multiple Repositories
• ...More
Integration
• Leading productivity apps such as PDF Expert and QuickOffice
Android
Additional Alfresco Mobile Apps
What else? > marc.dubresson@alfresco.com
Q & A

Contenu connexe

Tendances

Azure Cloud Services
Azure Cloud ServicesAzure Cloud Services
Azure Cloud ServicesGuy Barrette
 
Changing Trends In Cloud Computing
Changing Trends In Cloud ComputingChanging Trends In Cloud Computing
Changing Trends In Cloud ComputingAbhishek Chikane
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldAlfresco Software
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion IntroductionTomasz Zarna
 
Tech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalTech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalAlfresco Software
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion IntroductionTomasz Zarna
 
Eight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware SystemsEight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware SystemsChris Haddad
 
DevOpsDays Seattle - Self-Service Ignite
DevOpsDays Seattle - Self-Service IgniteDevOpsDays Seattle - Self-Service Ignite
DevOpsDays Seattle - Self-Service IgniteLowell Young
 
One Neos CMS - many websites
One Neos CMS - many websitesOne Neos CMS - many websites
One Neos CMS - many websitespunkt.de GmbH
 
SOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient MeSOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient MeNico Meisenzahl
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoAlfresco Software
 
The Point Of The Content Interoperability Services (CMIS) Standard
The Point Of The Content Interoperability Services (CMIS) StandardThe Point Of The Content Interoperability Services (CMIS) Standard
The Point Of The Content Interoperability Services (CMIS) StandardLaurence Hart
 
SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...Liam Cleary [MVP]
 
Alfresco Day Stockholm 2015 - Rapid UI Development
Alfresco Day Stockholm 2015 - Rapid UI DevelopmentAlfresco Day Stockholm 2015 - Rapid UI Development
Alfresco Day Stockholm 2015 - Rapid UI DevelopmentNicole Szigeti
 
A reality check on cloud content management
A reality check on cloud content managementA reality check on cloud content management
A reality check on cloud content managementAlfresco Software
 
SharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageSharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageLiam Cleary [MVP]
 
WCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and AlfrescoWCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and AlfrescoAlfresco Software
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Arun Gupta
 
Ektron 8.5 Web Content Managemnt
Ektron 8.5 Web Content ManagemntEktron 8.5 Web Content Managemnt
Ektron 8.5 Web Content ManagemntSean_OLeary
 

Tendances (20)

Azure Cloud Services
Azure Cloud ServicesAzure Cloud Services
Azure Cloud Services
 
Changing Trends In Cloud Computing
Changing Trends In Cloud ComputingChanging Trends In Cloud Computing
Changing Trends In Cloud Computing
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real World
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
Tech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalTech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupal
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
Eight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware SystemsEight Miles High: Build Cloud-native and Cloud-aware Systems
Eight Miles High: Build Cloud-native and Cloud-aware Systems
 
Content Modularization Is Here
Content Modularization Is HereContent Modularization Is Here
Content Modularization Is Here
 
DevOpsDays Seattle - Self-Service Ignite
DevOpsDays Seattle - Self-Service IgniteDevOpsDays Seattle - Self-Service Ignite
DevOpsDays Seattle - Self-Service Ignite
 
One Neos CMS - many websites
One Neos CMS - many websitesOne Neos CMS - many websites
One Neos CMS - many websites
 
SOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient MeSOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient Me
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and Alfresco
 
The Point Of The Content Interoperability Services (CMIS) Standard
The Point Of The Content Interoperability Services (CMIS) StandardThe Point Of The Content Interoperability Services (CMIS) Standard
The Point Of The Content Interoperability Services (CMIS) Standard
 
SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...
 
Alfresco Day Stockholm 2015 - Rapid UI Development
Alfresco Day Stockholm 2015 - Rapid UI DevelopmentAlfresco Day Stockholm 2015 - Rapid UI Development
Alfresco Day Stockholm 2015 - Rapid UI Development
 
A reality check on cloud content management
A reality check on cloud content managementA reality check on cloud content management
A reality check on cloud content management
 
SharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageSharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriage
 
WCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and AlfrescoWCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and Alfresco
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8
 
Ektron 8.5 Web Content Managemnt
Ektron 8.5 Web Content ManagemntEktron 8.5 Web Content Managemnt
Ektron 8.5 Web Content Managemnt
 

En vedette

Canada Immigration Process
Canada Immigration ProcessCanada Immigration Process
Canada Immigration Processashish singh
 
Say Goodbye To Headaches And Migraines
Say Goodbye To Headaches And MigrainesSay Goodbye To Headaches And Migraines
Say Goodbye To Headaches And MigrainesDr Gary Tho
 
Actividades Gimnasticas 3ºESO
Actividades Gimnasticas 3ºESOActividades Gimnasticas 3ºESO
Actividades Gimnasticas 3ºESOyogui1970
 
Ashutosh Dubey-ScrumAlliance_CSM_Certificate
Ashutosh Dubey-ScrumAlliance_CSM_CertificateAshutosh Dubey-ScrumAlliance_CSM_Certificate
Ashutosh Dubey-ScrumAlliance_CSM_CertificateAshutosh Dubey
 
INTERACT BIKE SHED - Balwyn High School
INTERACT BIKE SHED - Balwyn High SchoolINTERACT BIKE SHED - Balwyn High School
INTERACT BIKE SHED - Balwyn High SchoolManju Mohandoss
 
How to increase big pharma’s sales effectiveness.
How to increase big pharma’s sales effectiveness.How to increase big pharma’s sales effectiveness.
How to increase big pharma’s sales effectiveness.Marek Golebiowski
 
105學測自然試題定稿
105學測自然試題定稿105學測自然試題定稿
105學測自然試題定稿中 央社
 
Microsoft cloud integration patterns - BizTalk/Azure
Microsoft cloud integration patterns - BizTalk/AzureMicrosoft cloud integration patterns - BizTalk/Azure
Microsoft cloud integration patterns - BizTalk/AzureNikolai Blackie
 
Software engineering project(srs)!!
Software engineering project(srs)!!Software engineering project(srs)!!
Software engineering project(srs)!!sourav verma
 

En vedette (16)

Canada Immigration Process
Canada Immigration ProcessCanada Immigration Process
Canada Immigration Process
 
Executive Search Services
Executive Search ServicesExecutive Search Services
Executive Search Services
 
Chapter5
Chapter5Chapter5
Chapter5
 
Helix Executive Search brochure
Helix Executive Search brochureHelix Executive Search brochure
Helix Executive Search brochure
 
Say Goodbye To Headaches And Migraines
Say Goodbye To Headaches And MigrainesSay Goodbye To Headaches And Migraines
Say Goodbye To Headaches And Migraines
 
Chapter3
Chapter3Chapter3
Chapter3
 
Actividades Gimnasticas 3ºESO
Actividades Gimnasticas 3ºESOActividades Gimnasticas 3ºESO
Actividades Gimnasticas 3ºESO
 
Org chart ppt
Org chart pptOrg chart ppt
Org chart ppt
 
Ashutosh Dubey-ScrumAlliance_CSM_Certificate
Ashutosh Dubey-ScrumAlliance_CSM_CertificateAshutosh Dubey-ScrumAlliance_CSM_Certificate
Ashutosh Dubey-ScrumAlliance_CSM_Certificate
 
INTERACT BIKE SHED - Balwyn High School
INTERACT BIKE SHED - Balwyn High SchoolINTERACT BIKE SHED - Balwyn High School
INTERACT BIKE SHED - Balwyn High School
 
How to increase big pharma’s sales effectiveness.
How to increase big pharma’s sales effectiveness.How to increase big pharma’s sales effectiveness.
How to increase big pharma’s sales effectiveness.
 
105學測自然試題定稿
105學測自然試題定稿105學測自然試題定稿
105學測自然試題定稿
 
The china pharmaceutical market ppt
The china pharmaceutical market pptThe china pharmaceutical market ppt
The china pharmaceutical market ppt
 
Microsoft cloud integration patterns - BizTalk/Azure
Microsoft cloud integration patterns - BizTalk/AzureMicrosoft cloud integration patterns - BizTalk/Azure
Microsoft cloud integration patterns - BizTalk/Azure
 
Software engineering project(srs)!!
Software engineering project(srs)!!Software engineering project(srs)!!
Software engineering project(srs)!!
 
Desarrollo cognitivo en la primera infancia
Desarrollo cognitivo en la primera  infanciaDesarrollo cognitivo en la primera  infancia
Desarrollo cognitivo en la primera infancia
 

Similaire à Dev Con 2011

Alfresco mobile webinar 11 1-11
Alfresco mobile webinar 11 1-11Alfresco mobile webinar 11 1-11
Alfresco mobile webinar 11 1-11Zia Consulting
 
DEVCON-Alfresco i os mobile application details and design
DEVCON-Alfresco i os mobile application details and designDEVCON-Alfresco i os mobile application details and design
DEVCON-Alfresco i os mobile application details and designZia Consulting
 
Tech Talk Live - Mobile SDKs
Tech Talk Live - Mobile SDKsTech Talk Live - Mobile SDKs
Tech Talk Live - Mobile SDKsGavin Cornwell
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
 
CNIT 128: 3. Attacking iOS Applications (Part 2)
CNIT 128: 3. Attacking iOS Applications (Part 2)CNIT 128: 3. Attacking iOS Applications (Part 2)
CNIT 128: 3. Attacking iOS Applications (Part 2)Sam Bowne
 
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...Rackspace
 
Alfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdksAlfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdksAlfresco Software
 
CNIT 128 3. Attacking iOS Applications (Part 2)
CNIT 128 3. Attacking iOS Applications (Part 2)CNIT 128 3. Attacking iOS Applications (Part 2)
CNIT 128 3. Attacking iOS Applications (Part 2)Sam Bowne
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMISJeff Potts
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017Stefano Bonetta
 
Peter molendijk alfresco 4.0 release alfresco gebruikersdag - eindhoven 02-2012
Peter molendijk alfresco 4.0 release  alfresco gebruikersdag - eindhoven 02-2012Peter molendijk alfresco 4.0 release  alfresco gebruikersdag - eindhoven 02-2012
Peter molendijk alfresco 4.0 release alfresco gebruikersdag - eindhoven 02-2012Peter A. Molendijk
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsAlfresco Software
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms BootcampMike Melusky
 
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Aaron Saunders
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Building Rich Internet Apps with Silverlight 2
Building Rich Internet Apps with Silverlight 2Building Rich Internet Apps with Silverlight 2
Building Rich Internet Apps with Silverlight 2Microsoft Iceland
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)Sam Bowne
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps JourneyMicro Focus
 

Similaire à Dev Con 2011 (20)

Alfresco mobile webinar 11 1-11
Alfresco mobile webinar 11 1-11Alfresco mobile webinar 11 1-11
Alfresco mobile webinar 11 1-11
 
DEVCON-Alfresco i os mobile application details and design
DEVCON-Alfresco i os mobile application details and designDEVCON-Alfresco i os mobile application details and design
DEVCON-Alfresco i os mobile application details and design
 
Tech Talk Live - Mobile SDKs
Tech Talk Live - Mobile SDKsTech Talk Live - Mobile SDKs
Tech Talk Live - Mobile SDKs
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
CNIT 128: 3. Attacking iOS Applications (Part 2)
CNIT 128: 3. Attacking iOS Applications (Part 2)CNIT 128: 3. Attacking iOS Applications (Part 2)
CNIT 128: 3. Attacking iOS Applications (Part 2)
 
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
 
Alfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdksAlfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdks
 
CNIT 128 3. Attacking iOS Applications (Part 2)
CNIT 128 3. Attacking iOS Applications (Part 2)CNIT 128 3. Attacking iOS Applications (Part 2)
CNIT 128 3. Attacking iOS Applications (Part 2)
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMIS
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
 
Peter molendijk alfresco 4.0 release alfresco gebruikersdag - eindhoven 02-2012
Peter molendijk alfresco 4.0 release  alfresco gebruikersdag - eindhoven 02-2012Peter molendijk alfresco 4.0 release  alfresco gebruikersdag - eindhoven 02-2012
Peter molendijk alfresco 4.0 release alfresco gebruikersdag - eindhoven 02-2012
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in Grails
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Owd multi repo-v2
Owd multi repo-v2Owd multi repo-v2
Owd multi repo-v2
 
Building Rich Internet Apps with Silverlight 2
Building Rich Internet Apps with Silverlight 2Building Rich Internet Apps with Silverlight 2
Building Rich Internet Apps with Silverlight 2
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 

Plus de Gavin Cornwell

Alfresco DevCon 2019 - DBP on EKS
Alfresco DevCon 2019 - DBP on EKSAlfresco DevCon 2019 - DBP on EKS
Alfresco DevCon 2019 - DBP on EKSGavin Cornwell
 
DevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoDevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoGavin Cornwell
 
Tech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIsTech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIsGavin Cornwell
 
Introduction to advanced workflow
Introduction to advanced workflowIntroduction to advanced workflow
Introduction to advanced workflowGavin Cornwell
 
Forms config and customisation
Forms config and customisationForms config and customisation
Forms config and customisationGavin Cornwell
 
Alfresco Tech Talk Live - REST API of the Future
Alfresco Tech Talk Live - REST API of the Future Alfresco Tech Talk Live - REST API of the Future
Alfresco Tech Talk Live - REST API of the Future Gavin Cornwell
 

Plus de Gavin Cornwell (6)

Alfresco DevCon 2019 - DBP on EKS
Alfresco DevCon 2019 - DBP on EKSAlfresco DevCon 2019 - DBP on EKS
Alfresco DevCon 2019 - DBP on EKS
 
DevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoDevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with Alfresco
 
Tech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIsTech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIs
 
Introduction to advanced workflow
Introduction to advanced workflowIntroduction to advanced workflow
Introduction to advanced workflow
 
Forms config and customisation
Forms config and customisationForms config and customisation
Forms config and customisation
 
Alfresco Tech Talk Live - REST API of the Future
Alfresco Tech Talk Live - REST API of the Future Alfresco Tech Talk Live - REST API of the Future
Alfresco Tech Talk Live - REST API of the Future
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Dernier (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Dev Con 2011

  • 1. Alfresco iOS Mobile 
 Application Details and Design Mike Hatfield - Senior Engineer, Mobile Team Marc Dubresson - Director of Mobile Products
  • 2. Who are we? Marc Dubresson • Mobile Product Management Gavin Cornwell Mike Hatfield • Alfresco Mobile Development Core Team Zia • Outsourced Mobile Development Partner • Platinum Alfresco Professional Services & OEM Partner
  • 3. Agenda • Today’s News • Architecture Overview • CMIS Refresher • Demo • Technical Walkthrough • Open Source Project • Roadmap • Questions?
  • 5. Architecture Overview Mostly a CMIS application talking to Alfresco Several features specific to Alfresco Alfresco CMIS REST
  • 6. CMIS Refresher CMIS Technical Committee Goals & Scope • Content Management Interoperability Services • Enable applications to target different ECM repositories uniformly • Provide a set of basic services enabling richer ECM applications and use cases • All for loose coupling of an ECM application on the underlying repository • Use popular protocol bindings • REST / AtomPub • Web Services / SOAP • v1.1 - JSON (Browser Binding)
  • 7. Demo Alfresco Mobile in Action – A Few Features • CMIS: • Login to Alfresco over HTTP or HTTPS • Browse, Search, Display Content and Edit Metadata, Upload Files • Create Folders • Alfresco • Activities • Like & Unlike • Comment on Documents • iOS • Local Downloads • “Open In...” support to/from other apps
  • 8. Design • Universal binary • Hierarchy of Table Views • Navigation based app for browsing CMIS repositories • Layered on Alfresco specific functionality
  • 9. Designed for the iPad • Navigation based app but with iPad-specific view controllers • Split View Controller • Still a universal binary
  • 12. App Launch / Sites / Browse • iOS: Read user settings • CMIS: Retrieve AtomPub Service Document • Alfresco: Request Sites List • CMIS: Request folder children for the Root Collection • CMIS: Navigate into a folder or site
  • 13. Activities • Alfresco: Retrieve user’s activity feed • User taps a document table cell • CMIS: Retrieve Document via getObjectByID service • User taps the “info icon” • CMIS: Retrieve Document Metadata using getTypeDefinition service
  • 14. Search Execute a CMIS Query • Full-text search: •SELECT * FROM cmis:document WHERE CONTAINS(‘keywords’) • Search by cmis:name: •SELECT * FROM cmis:document WHERE CONTAINS(‘~cmis:name:’*keywords*’)
  • 15. Tools for iOS Development Mac with OS X Snow Leopard or Lion XCode 4.2 • Integrated Development Environment • Integrated Build System • Debugger • Interface Builder • iOS Simulator
 Instruments • Performance and behaviour analysis
  • 16. Getting Started Create an iOS developer account (free) Install the latest version of XCode 4.2 (free) Clone the repository • git clone https://ziadev@bitbucket.org/ziadev/alfresco-mobile.git Open the Project
  • 17. Multiple Targets in the Project Two Targets: Alfresco & Fresh Docs
  • 18. Build and Run Select a target and the 
 
 iOS Simulator to Use
  • 19. How do I install it on my device? See iOS Provisioning Portal Resources & How-To Guides Sign up for a (paid) iOS Developer Program Account Configure profile: Development certificate, App Id Provision Device (UDID) Configure & build the App for the device
  • 20. I Thought This Was A DevCon? AlfrescoAppDelegate.h
  • 21. Calling an AtomPub Service CMIS RESTful Request AtomPub XML Alfresco
  • 22. Creating an HTTP Request • Using ASIHTTPRequest build the request • The delegate handles events from that request
  • 23. Parsing AtomPub XML Event-Driven XML Parsing (SAX) • Parser sends messages (parsing events) to it’s delegates (callbacks) Use NSXMLParser & NSXMLParserDelegate • Recommended by Apple • Native API • Objective-C based implementation Why not use the Tree-based API (DOM)? • Apple does not provide the API for iOS
  • 24. NSXMLParser & NSXMLParserDelegate Setting up NSXMLParser NSXMLParserDelegate methods • – parser:didStartElement:namespaceURI:qualifiedName:attributes: • – parser:didEndElement:namespaceURI:qualifiedName: • – parser:foundCharacters:
  • 25. Calling Alfresco REST APIs RESTful HTTP Request JSON Alfresco
  • 26. JSON data transport Simpler to consume than XML Using SBJson • Other libraries available, e.g. TouchJSON, JSONKit • iOS 5.0 supports JSON natively Parses into NSDictionary and NSArray objects CMIS 1.1 will contain a Browser Binding
  • 27. What do I need to know? • Objective-C • cocoadevcentral.com/d/learn_objectivec • iOS App Programming • developer.apple.com • Alfresco RESTful API • wiki.alfresco.com • CMIS AtomPub Binding • wiki.alfresco.com/wiki/CMIS • Git • gitref.org
  • 28. Common Design Patterns Model-View-Controller • A pattern to relate the user interface to an underlying data model. Delegation • A patten where an object, the delegator, delegates tasks to an associated helper object, the delegate. • The delegate is responsible for executing the task for the delegator. Target-Action • Target-action is a design pattern in which an object holds the information necessary to send a message to another object when an event occurs.
  • 29. API’s and Libraries Used Cocoa Touch Frameworks • The API’s Apple provides to build an iOS application ASIHTTPRequest • Wrapper around Apple’s CFNetwork API SBJson • Fast, simple & clean JSON parser and generator ISO8601 • XML date parsing Flurry Analytics • Remote logging for app crashes (uncaught exceptions)
  • 30. Open Source Availability Hosted on Bitbucket bit.ly/alf-mobile Search for “alfresco-mobile” at bitbucket.org Released under the Mozilla Public License Version 1.1
  • 31. How Do I Contribute? Step-by-step example for forking and sending a pull request:
 
 http://bit.ly/pbIDRk (atlassian.com wiki)
  • 32. Resources Apple iOS Developer Portal • Sample Code, API Documentation, Design Guides,
 Developer Videos, etc.! Books • Beginning iPhone 4 Development (Apress Publishing) • Programming in Objective-C (Sam’s Publishing) Many Developer Blogs • http://icepla.net Also: Twitter, StackOverflow
  • 33. Roadmap Next version • Alfresco Cloud • Multiple Repositories • ...More Integration • Leading productivity apps such as PDF Expert and QuickOffice Android Additional Alfresco Mobile Apps What else? > marc.dubresson@alfresco.com
  • 34. Q & A