devcon-alfresco i os mobile application details and design

Post on 08-May-2015

862 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Alfresco iOS Mobile Application Details and Design

Ryan McVeigh, Director of Enterprise Integration - Zia Consulting

Gi Lee, Principal Consultant – Zia Consulting

Who are we?

Ryan McVeigh• Director @ Zia

• Responsible for Zia’s ECM Practice

• CMIS Secretary and Technical Editor

• Represented BEA Systems and Oracle

• Zia’s lead CMIS representative

Gi Lee• Principal Consultant @ Zia

• Architect of Alfresco Mobile and Zia’s Fresh Docs products

• CMIS Committee Member

Who is Zia?A firm with deep technical expertise & strategic insight, coupled with our Agile software methodology, provides numerous benefits to our customers:

Benefits• Achieve ROI by delivering improved operational efficiencies

• Boost productivity by creating collaborative work environments

• Maintain access and control of information through the enterprise

• Allow employees to find the information they need, when they need it

• Increase end-user adoption

• Agile training by using Zia methodology and Rally tools

• Raving fan customers

Professional Qualifications• Highly-experienced, accredited senior staff consisting of Business

Analysts, Enterprise Architects, Software Engineers and Data Architects

• Platinum Alfresco Professional Services & OEM Partner

• Platinum Ephesoft Partner

• Alfresco 2010 Implementation of the Year with Denver

• MuleSoft Partner

Our Partners

Agenda

• Alfresco Mobile History • Architecture Overview• CMIS Refresher• Demo• Technical Walkthrough

• CMIS Features

• Alfresco RESTful API• Open Source Project• Roadmap & What’s Next?• Questions?

Alfresco Mobile History

• Zia released Fresh Docs for iOS in December 2009• Android application also available• Alfresco and Zia partnership entered this year for

Alfresco Mobile

Architecture Overview

Mostly a CMIS application talking to AlfrescoSeveral features specific to Alfresco

AlfrescoAlfresco

CMISCMIS

RESTREST

CMIS Refresher

CMIS TC Goals & Scope• 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

Demo

Alfresco Mobile in Action – A Few Features• CMIS:

• Login to Alfresco over HTTP or HTTPS

• Browse, Search, Display Content and Edit Metadata, Upload Media

• Create Folders

• Alfresco

• Alfresco Activities

• Like & Unlike, Comment on Documents

• iOS

• Local Downloads

• Multi Tasking

Design

• Navigation based app for browsing CMIS repositories• Layered on Alfresco specific functionality• Hierarchy of Table Views • Universal binary

Designed for the iPad

• Still a navigation based app but with iPad-specific controllers • Split View Controller• Still a universal binary

Features using CMIS

Features using the Alfresco RESTful API

App Launch / Sites / Browse

• 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 Clicks on a document cell• CMIS: Retrieve Document via getObjectByID service

• User clicks on 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*’)

Calling an AtomPub Service

CMIS RESTful RequestCMIS RESTful Request

AtomPub XMLAtomPub XMLAlfrescoAlfresco

Creating an HTTP Request

• Using ASIHTTPRequest build your request

• Delegate handles events from the 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 APIs

RESTful HTTP RequestRESTful HTTP Request

JSONJSON

AlfrescoAlfresco

We Like JSON!

• Simple to consume!

• Use SBJson

• Parses into NSDictionary and NSArray objects

• CMIS 1.1 will contain a Browser Binding!

Open Source Availability

Hosted on Bitbucket

http://bit.ly/rrNdTc

Search for “alfresco-mobile” at bitbucket.org

Released under the Mozilla Public License Version 1.1

API’s and Libraries Used

• Cocoa Touch Frameworks• The API’s Apple provides to build an iOS application

• ASIHTTPRequest• Communication with the server• Wrapper around Apple’s CFNetwork API

• SBJson• Fast, simple & clean JSON parser and generator

• GHUnit• Objective-C Test framework

What do I need to know?

• Git

• Objective-C

• iOS App Programming

• Alfresco RESTful API

• CMIS AtomPub Binding

Resources

Apple’s iOS Developer Library & Development videos•View & View Controller Programming Guide•Table View Programming Guide•Key-Value Programming Guide•Memory Management Programming Guide•iOS Human Interface Guidelines

Beginning iPhone 4 Development: Exploring the iOS SDK, Apress Publishing

Programming in Objective-C, Sam’s Publishing

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.

Tools for iOS Development

• Mac with OS X Snow Leopard or Lion

• XCode 4•Integrated Development Environment•Integrated Build System•Debugger•Interface Builder•iOS Simulator

• Instruments•Performance and behavior analysis

Getting Started

• Create an iOS developer account

• Install the latest version of XCode 4

• Clone the repository• git clone https://ziadev@bitbucket.org/ziadev/alfresco-mobile.git

• Open the Project

Two Targets?

Two Targets: Alfresco & Fresh Docs

Getting Started

• Select a target and the

iOS Simulator to Use

• Build and Run

How do I install it on my device?

See iOS Provisioning Portal Resources & How-To Guides

How Do I Contribute?

Step-by-step example for forking and sending a pull request:

http://bit.ly/pbIDRk

Roadmap

Features under future consideration• Browse Site Members

• Search and Browse for People

• Version History and Upload New Versions

• Browse Recent Docs

• More…

Alfresco Mobile Product Manager• Marc Dubresson

• marc.dubresson@alfresco.com

Disclaimer: Neither Alfresco nor Zia are making any claims or commitments to deliver these features.

What’s Next?

Zia is hosting a deep dive Webinar with Alfresco• November 1 @ 1pm ET

• http://bit.ly/tztqRL

Code is Open Source• Happy to have contributors

• Alfresco will coordinate releases of Alfresco Mobile

• Zia will coordinate releases of Fresh Docs

• If you want to release to the Apple App Store, contact us

Come see us at our booth!

Contact Us

Ryan McVeigh – ECM Business Owner:• ryan@ziaconsulting.com

Gi Lee – Fresh Docs Architect• gi.lee@ziaconsulting.com

Michael Muller – Fresh Docs PM• mmuller@ziaconsulting.com

Q & A

top related