SlideShare a Scribd company logo
1 of 57
Mobile Channels in eZ Publish eZ Conference 2011
Łukasz Serwatka Mobile Lead Engineer at eZ Systems eZ Systems employee since March 2005 		Member of the Engineering Division 	8 years experience with eZ Publish 	2 years experience with native mobile applications development (iOS, Android) 	Author of many print and online publications about eZ Publish 	Creator of many eZ Publish extensions Web: www.serwatka.net Twitter: @lserwatka 11-06-20 Presenter: Łukasz Serwatka 2 Mobile Channels in eZ Publish eZ Conference 2011
Mobile channels available in eZ Publish 	mobile web channel 		web technologies 			HTML5 			CSS3 & SASS 			JavaScript 	REST interface 		web service oriented 			lightweight client-server communication 			JSON as output format 11-06-20 Presenter: Łukasz Serwatka 3 Mobile Channels in eZ Publish eZ Conference 2011
Content channels in eZ Publish 11-06-20 Presenter: Łukasz Serwatka 4 Mobile Channels in eZ Publish eZ Conference 2011
Mobile channels in eZ Publish 11-06-20 Presenter: Łukasz Serwatka 5 Mobile Channels in eZ Publish eZ Conference 2011
Environments: fragmentation 	Symbian (Nokia) Andorid (Google) Bada (Samsung) 	Windows Phone (Microsoft/Nokia) iOS (Apple) 	BlackBerry (RIM) webOS (Palm/HP) MeeGo (Intel/Nokia/Maemo) 11-06-20 Presenter: Łukasz Serwatka 6 Mobile Channels in eZ Publish eZ Conference 2011
The Web 	Cross-platform 	Familiar skills & tools 	Easily updated 	Decentralized 	Indexed 	Well-understood 	… but 11-06-20 Presenter: Łukasz Serwatka 7 Mobile Channels in eZ Publish eZ Conference 2011
Caveats 	Performance: slower to execute, limited on CPU/GPU resource 	Browser support: some needs to be ignored 	Device access: limited access to hardware, not fully there yet 	Debug: more difficult on the client side 	Discoverability: no official app store, yet 	Monetization: more difficult 	App ‘experience’ 11-06-20 Presenter: Łukasz Serwatka 8 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web: engines 	WebKit: ~57% market share 		iOS 		Bada 		BlackBerry 6.0+ 		Symbian 		Andorid 		webOS 		MeeGo 	Presto: ~21% market share 		Opera Mini 		Opera Mobile 	Others: ~22% market share 		Gecko, Trident, Mango, UC, Obigo … 11-06-20 Presenter: Łukasz Serwatka 9 Mobile Channels in eZ Publish eZ Conference 2011
Mobile HTML5 Presenter: Łukasz Serwatka 10 Mobile Channels in eZ Publish eZ Conference 2011 semantics multimedia offline & storage 3D, graphics & effects device access performance & integration connectivity CSS3 11-06-20
Technologies 	accelerometer	-webkit	@page	CSS Text	localStorage	@media 	manifest		transform	<video>		WebSQL		GeoLocation 	type=camera		canvas		keyframe	gradient		touch events 	<audio>		Web Workers		CSS3 	SASS 	… and more	 11-06-20 Presenter: Łukasz Serwatka 11 Mobile Channels in eZ Publish eZ Conference 2011
Cross-browser 	mobile web frameworks 		JavaScript-based (programmatic approach) 			Sencha Touch 			SproutCore 		Markup-based (progressive enhancement approach) 			jQTouch 			jQuery Mobile 11-06-20 Presenter: Łukasz Serwatka 12 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web frameworks: why? 	Provide user interface components 		toolbars, buttons, navigation bars, etc. 	Smooth browser inconsistencies 		normalization is done under the hood, abstractions  	Mimic native or server paradigms 		UI elements, drop shadows, insets, 	Create consistent application architecture 		MVC framework 11-06-20 Presenter: Łukasz Serwatka 13 Mobile Channels in eZ Publish eZ Conference 2011
jQTouch 	sponsored by Sencha Labs 	markup-based 	UI layer on top of jQuery 	library progressively enhances 	MIT license 	wide browser support http://jqtouch.com 11-06-20 Presenter: Łukasz Serwatka 14 Mobile Channels in eZ Publish eZ Conference 2011
jQuery Mobile 	still in alpha version 	markup-based 	UI layer on top of jQuery 	library progressively enhances 	MIT or GPL2 license 	wide browser support http://jquerymobile.com 11-06-20 Presenter: Łukasz Serwatka 15 Mobile Channels in eZ Publish eZ Conference 2011
Sencha Touch 	self-contained library 	built on ExtJS 	JavaScript-based approach 	standalone MVC applications 	commercial and open source licenses 	wide browser support http://www.sencha.com/products/touch/ 11-06-20 Presenter: Łukasz Serwatka 16 Mobile Channels in eZ Publish eZ Conference 2011
	Back to eZ Publish … 11-06-20 Presenter: Łukasz Serwatka 17 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish 	accessible via eZ Publish “siteaccess” system; 	supports URI, HOST and PORT based access; 	permissions handling; 	can provide mobile optimized content and layout; 	template engine; 	content engine; 11-06-20 Presenter: Łukasz Serwatka 18 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish: configuration 	Web server configuration 		Virtual-Host setup 	eZ Publish configuration 		Siteaccess settings 		Permissions setup 		Design extension 11-06-20 Presenter: Łukasz Serwatka 19 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish: mobile detection 		Apache Mobile Filter http://www.apachemobilefilter.org/ 		No built-in solution 11-06-20 Presenter: Łukasz Serwatka 20 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish: mobile detection 		Smart detection but let user choice. 			Place link to the desktop version of your site as well. 11-06-20 Presenter: Łukasz Serwatka 21 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish: VH setup 	Possible scenarios 		Use a separate domain altogether (e.g www.mobile-example.com) 		Use a subdomain (e.g m.example.com) 			Probably the most popular option 			URI approach as alternative (e.g example.com/mobile) 		Use a .mobi top level domain 	Combine with smart detection 11-06-20 Presenter: Łukasz Serwatka 22 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish: siteaccess 	/settings/override/site.ini.append.php 	... 	[SiteAccessSettings] 	AvailableSiteAccessList[] 	AvailableSiteAccessList[]=example 	AvailableSiteAccessList[]=mobile 	MatchOrder=host 	HostMatchMapItems[]=www.example.com;example 	HostMatchMapItems[]=m.example.com;mobile 	... 11-06-20 Presenter: Łukasz Serwatka 23 Mobile Channels in eZ Publish eZ Conference 2011
Mobile web channel in eZ Publish: viewport 	Use the viewport meta tag to improve the presentation of your web content 	<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=yes" />  11-06-20 Presenter: Łukasz Serwatka 24 Mobile Channels in eZ Publish eZ Conference 2011
DEMO Presenter: Łukasz Serwatka SLIDE 25 11-06-20
Mobile web channel in eZ Publish: hybrid apps Native shell for a mobile web 		Embedded WebView 	PhoneGap 		access to device APIs 		online build tool 		wide range of supported platforms 	Distributed via AppStore, Android Market, etc. 	Access to download statistics 	Access to the application via native shell (Icon on device screen) 11-06-20 Presenter: Łukasz Serwatka 26 Mobile Channels in eZ Publish eZ Conference 2011
DEMO Presenter: Łukasz Serwatka SLIDE 27 11-06-20
REST
REST 	REpresentational 	State 	Transfer 11-06-20 Presenter: Łukasz Serwatka 29 Mobile Channels in eZ Publish eZ Conference 2011
REST 	REpresentational 	State 	Transfer REST is a set of principles that how Web standards, such as HTTP and URIs, are supposed to be used. 	Give every “thing” an ID 	Link things together 	Use standard methods 	Resource with multiple representations 	Communicate statelessly 11-06-20 Presenter: Łukasz Serwatka 30 Mobile Channels in eZ Publish eZ Conference 2011
REST 	REpresentational 	State 	Transfer Key goals of REST include: 	Scalability of component interactions 	Generality of interfaces 	Independent deployment of components 	Intermediary components to reduce latency, enforce security and encapsulate legacy systems  11-06-20 Presenter: Łukasz Serwatka 31 Mobile Channels in eZ Publish eZ Conference 2011
Life before eZ Publish REST interface custom siteaccess s and template based XML output 	custom web service implementations involving eZ Publish modules/view ezjscore based web service implementations 11-06-20 Presenter: Łukasz Serwatka 32 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 11-06-20 Presenter: Łukasz Serwatka 33 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-end controller (index_rest.php as REST endpoint) 11-06-20 Presenter: Łukasz Serwatka 34 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-end controller (index_rest.php as REST endpoint) 11-06-20 Presenter: Łukasz Serwatka 35 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-end controller (index_rest.php as REST endpoint) 		based on the Zeta Components: MVCTools component 11-06-20 Presenter: Łukasz Serwatka 36 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-end controller (index_rest.php as REST endpoint) 		based on the Zeta Components: MVCTools component 	content retrieval only, with possibility to extend 11-06-20 Presenter: Łukasz Serwatka 37 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-end controller (index_rest.php as REST endpoint) 		based on the Zeta Components: MVCTools component 	content retrieval only, with possibility to extend 	extensions mechanism 11-06-20 Presenter: Łukasz Serwatka 38 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-end controller (index_rest.php as REST endpoint) 		based on the Zeta Components: MVCTools component 	content retrieval only, with possibility to extend 	extensions mechanism 	versioning 11-06-20 Presenter: Łukasz Serwatka 39 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	available as a core feature since version 4.5 	dedicated front-controller (index_rest.php as REST endpoint) 		based on the Zeta Components: MVCTools component 	content retrieval only, with possibility to extend 	extensions mechanism 	versioning 	OAuth 2.0 authentication 11-06-20 Presenter: Łukasz Serwatka 40 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface: other features 	built-in caching 	template based output for various resources 	returned fields configured per request: responseGroups 11-06-20 Presenter: Łukasz Serwatka 41 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface: front-controller 11-06-20 Presenter: Łukasz Serwatka 42 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface: OAuth 2.0 	web interface for applications management 	support for custom OAuth login pages: override oauthloginpagelayout.tpl 	configurable token expiry time in the rest.ini 11-06-20 Presenter: Łukasz Serwatka 43 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	content is mapped into the resource 		node 		object 		lists 		fields 	resources provided by the ezprestapiprovider extension 		for better upgradability and easier maintenance 			new resources can be provided without eZ Publish upgrade 11-06-20 Presenter: Łukasz Serwatka 44 Mobile Channels in eZ Publish eZ Conference 2011
eZ Publish REST interface 	content is mapped into the resource 		node 		object 		lists 		fields 	resources provided by the ezprestapiprovider extension 		for better upgradability and easier maintenance 			new resources can be provided without eZ Publish upgrade 11-06-20 Presenter: Łukasz Serwatka 45 Mobile Channels in eZ Publish eZ Conference 2011
ezpRestProviderInterface 	every REST resource provider needs to implement ezpRestProviderInterface interface ezpRestProviderInterface {     /**      * Returns registered versioned routes for provider      *      * @abstract      * @return array      */     public function getRoutes();     /**      * Returns associated with provider view controller      *      * @abstract      * @return ezpRestViewController      */     public function getViewController(); } 11-06-20 Presenter: Łukasz Serwatka 46 Mobile Channels in eZ Publish eZ Conference 2011
REST URI pattern explained 11-06-20 Presenter: Łukasz Serwatka 47 Mobile Channels in eZ Publish eZ Conference 2011
REST URI pattern explained 11-06-20 Presenter: Łukasz Serwatka 48 Mobile Channels in eZ Publish eZ Conference 2011 globalprefixwhichcan be configured in the rest.ini works as a token to triggeryour re-writerule; /api/ as defaultprefix;
REST URI pattern explained ezpRestPrefixFilterInterface responsible for handlingprovidersinformation responsible for handling version token ezpRestDefaultRegexpPrefixFilter 	/ezp/ as defaultprovidertoken 	v + integer (e.g v1) as a version token 11-06-20 Presenter: Łukasz Serwatka 49 Mobile Channels in eZ Publish eZ Conference 2011
Versioning versioning is supported version token is part of the URI resource e.g. /api/ezp/v1/… 	use ezpRestVersionedRoute class to register your versioned resources 11-06-20 Presenter: Łukasz Serwatka 50 Mobile Channels in eZ Publish eZ Conference 2011
Versioning:  examples  new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/node/:nodeId/fields', 'ezpRestContentController', 'viewFields' ), 1 ) 	new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/node/:nodeId/field/:fieldIdentifier', 'ezpRestContentController', 'viewField' ), 1 ) 	new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/node/:nodeId/childrenCount', 'ezpRestContentController', 'countChildren' ), 1 ) 	new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/object/:objectId', 'ezpRestContentController', 'viewContent' ), 1 ) 11-06-20 Presenter: Łukasz Serwatka 51 Mobile Channels in eZ Publish eZ Conference 2011
Extensibility done via eZ Publish extension system create new provider by implementing ezpRestProviderInterface 	register your new versioned resources 	see ezprestapiprovider extension as a source of your inspiration 11-06-20 Presenter: Łukasz Serwatka 52 Mobile Channels in eZ Publish eZ Conference 2011
Resources content consumption only 	full CRUD in the next versions 	needs to be inline with eZ Publish PHP API 11-06-20 Presenter: Łukasz Serwatka 53 Mobile Channels in eZ Publish eZ Conference 2011
Resources: example GET /[api]/v1/content/object/<objectId>/fields HTTP/1.1 	/content/node/:nodeId 	/content/node/:nodeId/fields 	/content/node/:nodeId/field/:fieldIdentifier 	/content/node/:nodeId/childrenCount 	/content/object/:objectId 	/content/object/:objectId/fields 11-06-20 Presenter: Łukasz Serwatka 54 Mobile Channels in eZ Publish eZ Conference 2011
Resources: example 11-06-20 Presenter: Łukasz Serwatka 55 Mobile Channels in eZ Publish eZ Conference 2011
DEMO Presenter: Łukasz Serwatka SLIDE 56 11-06-20
Knowledge sharing 	guidelines for the developers 	mobile web 	hybrid applications 	native applications 	source code for sample apps available on GitHub 11-06-20 Presenter: Łukasz Serwatka 57 Mobile Channels in eZ Publish eZ Conference 2011

More Related Content

Viewers also liked

eZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User GroupeZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User GroupRoland Benedetti
 
Tru club advisor_toolkit_cg_edits_sept101
Tru club advisor_toolkit_cg_edits_sept101Tru club advisor_toolkit_cg_edits_sept101
Tru club advisor_toolkit_cg_edits_sept101Terry Quinn
 
Accenture Spend Trends Report Q2 2014
Accenture Spend Trends Report Q2 2014Accenture Spend Trends Report Q2 2014
Accenture Spend Trends Report Q2 2014accenture
 
Daftar produk halal september 2011
Daftar produk halal september 2011Daftar produk halal september 2011
Daftar produk halal september 2011Bung2
 
INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"
INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"
INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"ESADE
 
Loss mechanisms in Polymer-Fullerene Solar Cells
Loss mechanisms in Polymer-Fullerene Solar CellsLoss mechanisms in Polymer-Fullerene Solar Cells
Loss mechanisms in Polymer-Fullerene Solar Cellsdisorderedmatter
 
How to set up an online community?
How to set up an online community?How to set up an online community?
How to set up an online community?Atle Skjekkeland
 
Republic of Tatarstan: General Overview, State System, Economy
Republic of Tatarstan: General Overview, State System, EconomyRepublic of Tatarstan: General Overview, State System, Economy
Republic of Tatarstan: General Overview, State System, EconomyDerrick Staten
 
Mad list of filetypes
Mad list of filetypesMad list of filetypes
Mad list of filetypesAaron Lintz
 
'Reggae On The Internet: Volume 1'
'Reggae On The Internet: Volume 1''Reggae On The Internet: Volume 1'
'Reggae On The Internet: Volume 1'Grant Goddard
 
4000 auto approve wordpress blogs backlink list (pr8-pr1)
4000 auto approve wordpress blogs backlink list (pr8-pr1)4000 auto approve wordpress blogs backlink list (pr8-pr1)
4000 auto approve wordpress blogs backlink list (pr8-pr1)Djuwarsjah Linnus
 
Born Digital - GSE Research presentation
Born Digital - GSE Research presentationBorn Digital - GSE Research presentation
Born Digital - GSE Research presentationPublishing Technology
 
SAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECTSAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECTVenet Dheer
 
Odf 06.02.2014 ukraine_military_scenario_eng
Odf 06.02.2014 ukraine_military_scenario_engOdf 06.02.2014 ukraine_military_scenario_eng
Odf 06.02.2014 ukraine_military_scenario_engodfoundation
 

Viewers also liked (19)

eZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User GroupeZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User Group
 
Tru club advisor_toolkit_cg_edits_sept101
Tru club advisor_toolkit_cg_edits_sept101Tru club advisor_toolkit_cg_edits_sept101
Tru club advisor_toolkit_cg_edits_sept101
 
Accenture Spend Trends Report Q2 2014
Accenture Spend Trends Report Q2 2014Accenture Spend Trends Report Q2 2014
Accenture Spend Trends Report Q2 2014
 
Daftar produk halal september 2011
Daftar produk halal september 2011Daftar produk halal september 2011
Daftar produk halal september 2011
 
INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"
INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"
INFORME: Índice de Confianza Social. ESADE - Obra Social "la Caixa"
 
Berlin LSP : Urban Tech Republic
Berlin LSP : Urban Tech Republic Berlin LSP : Urban Tech Republic
Berlin LSP : Urban Tech Republic
 
Loss mechanisms in Polymer-Fullerene Solar Cells
Loss mechanisms in Polymer-Fullerene Solar CellsLoss mechanisms in Polymer-Fullerene Solar Cells
Loss mechanisms in Polymer-Fullerene Solar Cells
 
How to set up an online community?
How to set up an online community?How to set up an online community?
How to set up an online community?
 
Mac interval tree
Mac interval treeMac interval tree
Mac interval tree
 
HP Brand Identity
HP Brand IdentityHP Brand Identity
HP Brand Identity
 
Freenetlinks
FreenetlinksFreenetlinks
Freenetlinks
 
Republic of Tatarstan: General Overview, State System, Economy
Republic of Tatarstan: General Overview, State System, EconomyRepublic of Tatarstan: General Overview, State System, Economy
Republic of Tatarstan: General Overview, State System, Economy
 
Mad list of filetypes
Mad list of filetypesMad list of filetypes
Mad list of filetypes
 
'Reggae On The Internet: Volume 1'
'Reggae On The Internet: Volume 1''Reggae On The Internet: Volume 1'
'Reggae On The Internet: Volume 1'
 
4000 auto approve wordpress blogs backlink list (pr8-pr1)
4000 auto approve wordpress blogs backlink list (pr8-pr1)4000 auto approve wordpress blogs backlink list (pr8-pr1)
4000 auto approve wordpress blogs backlink list (pr8-pr1)
 
Born Digital - GSE Research presentation
Born Digital - GSE Research presentationBorn Digital - GSE Research presentation
Born Digital - GSE Research presentation
 
SAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECTSAP BUSINESS BLUE PRINT PRACTICE PROJECT
SAP BUSINESS BLUE PRINT PRACTICE PROJECT
 
online Income Tax Filing in India
online Income Tax Filing in Indiaonline Income Tax Filing in India
online Income Tax Filing in India
 
Odf 06.02.2014 ukraine_military_scenario_eng
Odf 06.02.2014 ukraine_military_scenario_engOdf 06.02.2014 ukraine_military_scenario_eng
Odf 06.02.2014 ukraine_military_scenario_eng
 

Similar to Mobile Channels in eZ Publish

Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35Subodh Pushpak
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by SubodhSubodh Pushpak
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is SilverlightAshok
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexMatthias Zeller
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft SilverlightGlen Gordon
 
OpenLayers Mobile Code Sprint, 2011
OpenLayers Mobile Code Sprint, 2011OpenLayers Mobile Code Sprint, 2011
OpenLayers Mobile Code Sprint, 2011Moullet
 
Oracle JET and WebSocket
Oracle JET and WebSocketOracle JET and WebSocket
Oracle JET and WebSocketandrejusb
 
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidCrie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidBruno Borges
 
WSO2Con 2011: Introduction to the WSO2 Carbon Platform
WSO2Con 2011: Introduction to the WSO2 Carbon PlatformWSO2Con 2011: Introduction to the WSO2 Carbon Platform
WSO2Con 2011: Introduction to the WSO2 Carbon PlatformAfkham Azeez
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedLeon Anavi
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part Icrdlc
 
EDMUG Silverlight Talk
EDMUG Silverlight TalkEDMUG Silverlight Talk
EDMUG Silverlight TalkMark Bennett
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)Folio3 Software
 
Introduction
IntroductionIntroduction
IntroductionVivi Taz
 

Similar to Mobile Channels in eZ Publish (20)

J web socket
J web socketJ web socket
J web socket
 
WebSockets - Boosting Web Communication - SDC 2011
WebSockets - Boosting Web Communication - SDC 2011WebSockets - Boosting Web Communication - SDC 2011
WebSockets - Boosting Web Communication - SDC 2011
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by Subodh
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlight
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe Flex
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
OpenLayers Mobile Code Sprint, 2011
OpenLayers Mobile Code Sprint, 2011OpenLayers Mobile Code Sprint, 2011
OpenLayers Mobile Code Sprint, 2011
 
Building RIA Apps with Silverlight
Building RIA Apps with SilverlightBuilding RIA Apps with Silverlight
Building RIA Apps with Silverlight
 
Intro to silverlight_20110602
Intro to silverlight_20110602Intro to silverlight_20110602
Intro to silverlight_20110602
 
Oracle JET and WebSocket
Oracle JET and WebSocketOracle JET and WebSocket
Oracle JET and WebSocket
 
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidCrie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
 
Silverlight 3.0
Silverlight 3.0Silverlight 3.0
Silverlight 3.0
 
Silverlight
SilverlightSilverlight
Silverlight
 
WSO2Con 2011: Introduction to the WSO2 Carbon Platform
WSO2Con 2011: Introduction to the WSO2 Carbon PlatformWSO2Con 2011: Introduction to the WSO2 Carbon Platform
WSO2Con 2011: Introduction to the WSO2 Carbon Platform
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part I
 
EDMUG Silverlight Talk
EDMUG Silverlight TalkEDMUG Silverlight Talk
EDMUG Silverlight Talk
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)
 
Introduction
IntroductionIntroduction
Introduction
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Mobile Channels in eZ Publish

  • 1. Mobile Channels in eZ Publish eZ Conference 2011
  • 2. Łukasz Serwatka Mobile Lead Engineer at eZ Systems eZ Systems employee since March 2005 Member of the Engineering Division 8 years experience with eZ Publish 2 years experience with native mobile applications development (iOS, Android) Author of many print and online publications about eZ Publish Creator of many eZ Publish extensions Web: www.serwatka.net Twitter: @lserwatka 11-06-20 Presenter: Łukasz Serwatka 2 Mobile Channels in eZ Publish eZ Conference 2011
  • 3. Mobile channels available in eZ Publish mobile web channel web technologies HTML5 CSS3 & SASS JavaScript REST interface web service oriented lightweight client-server communication JSON as output format 11-06-20 Presenter: Łukasz Serwatka 3 Mobile Channels in eZ Publish eZ Conference 2011
  • 4. Content channels in eZ Publish 11-06-20 Presenter: Łukasz Serwatka 4 Mobile Channels in eZ Publish eZ Conference 2011
  • 5. Mobile channels in eZ Publish 11-06-20 Presenter: Łukasz Serwatka 5 Mobile Channels in eZ Publish eZ Conference 2011
  • 6. Environments: fragmentation Symbian (Nokia) Andorid (Google) Bada (Samsung) Windows Phone (Microsoft/Nokia) iOS (Apple) BlackBerry (RIM) webOS (Palm/HP) MeeGo (Intel/Nokia/Maemo) 11-06-20 Presenter: Łukasz Serwatka 6 Mobile Channels in eZ Publish eZ Conference 2011
  • 7. The Web Cross-platform Familiar skills & tools Easily updated Decentralized Indexed Well-understood … but 11-06-20 Presenter: Łukasz Serwatka 7 Mobile Channels in eZ Publish eZ Conference 2011
  • 8. Caveats Performance: slower to execute, limited on CPU/GPU resource Browser support: some needs to be ignored Device access: limited access to hardware, not fully there yet Debug: more difficult on the client side Discoverability: no official app store, yet Monetization: more difficult App ‘experience’ 11-06-20 Presenter: Łukasz Serwatka 8 Mobile Channels in eZ Publish eZ Conference 2011
  • 9. Mobile web: engines WebKit: ~57% market share iOS Bada BlackBerry 6.0+ Symbian Andorid webOS MeeGo Presto: ~21% market share Opera Mini Opera Mobile Others: ~22% market share Gecko, Trident, Mango, UC, Obigo … 11-06-20 Presenter: Łukasz Serwatka 9 Mobile Channels in eZ Publish eZ Conference 2011
  • 10. Mobile HTML5 Presenter: Łukasz Serwatka 10 Mobile Channels in eZ Publish eZ Conference 2011 semantics multimedia offline & storage 3D, graphics & effects device access performance & integration connectivity CSS3 11-06-20
  • 11. Technologies accelerometer -webkit @page CSS Text localStorage @media manifest transform <video> WebSQL GeoLocation type=camera canvas keyframe gradient touch events <audio> Web Workers CSS3 SASS … and more 11-06-20 Presenter: Łukasz Serwatka 11 Mobile Channels in eZ Publish eZ Conference 2011
  • 12. Cross-browser mobile web frameworks JavaScript-based (programmatic approach) Sencha Touch SproutCore Markup-based (progressive enhancement approach) jQTouch jQuery Mobile 11-06-20 Presenter: Łukasz Serwatka 12 Mobile Channels in eZ Publish eZ Conference 2011
  • 13. Mobile web frameworks: why? Provide user interface components toolbars, buttons, navigation bars, etc. Smooth browser inconsistencies normalization is done under the hood, abstractions Mimic native or server paradigms UI elements, drop shadows, insets, Create consistent application architecture MVC framework 11-06-20 Presenter: Łukasz Serwatka 13 Mobile Channels in eZ Publish eZ Conference 2011
  • 14. jQTouch sponsored by Sencha Labs markup-based UI layer on top of jQuery library progressively enhances MIT license wide browser support http://jqtouch.com 11-06-20 Presenter: Łukasz Serwatka 14 Mobile Channels in eZ Publish eZ Conference 2011
  • 15. jQuery Mobile still in alpha version markup-based UI layer on top of jQuery library progressively enhances MIT or GPL2 license wide browser support http://jquerymobile.com 11-06-20 Presenter: Łukasz Serwatka 15 Mobile Channels in eZ Publish eZ Conference 2011
  • 16. Sencha Touch self-contained library built on ExtJS JavaScript-based approach standalone MVC applications commercial and open source licenses wide browser support http://www.sencha.com/products/touch/ 11-06-20 Presenter: Łukasz Serwatka 16 Mobile Channels in eZ Publish eZ Conference 2011
  • 17. Back to eZ Publish … 11-06-20 Presenter: Łukasz Serwatka 17 Mobile Channels in eZ Publish eZ Conference 2011
  • 18. Mobile web channel in eZ Publish accessible via eZ Publish “siteaccess” system; supports URI, HOST and PORT based access; permissions handling; can provide mobile optimized content and layout; template engine; content engine; 11-06-20 Presenter: Łukasz Serwatka 18 Mobile Channels in eZ Publish eZ Conference 2011
  • 19. Mobile web channel in eZ Publish: configuration Web server configuration Virtual-Host setup eZ Publish configuration Siteaccess settings Permissions setup Design extension 11-06-20 Presenter: Łukasz Serwatka 19 Mobile Channels in eZ Publish eZ Conference 2011
  • 20. Mobile web channel in eZ Publish: mobile detection Apache Mobile Filter http://www.apachemobilefilter.org/ No built-in solution 11-06-20 Presenter: Łukasz Serwatka 20 Mobile Channels in eZ Publish eZ Conference 2011
  • 21. Mobile web channel in eZ Publish: mobile detection Smart detection but let user choice. Place link to the desktop version of your site as well. 11-06-20 Presenter: Łukasz Serwatka 21 Mobile Channels in eZ Publish eZ Conference 2011
  • 22. Mobile web channel in eZ Publish: VH setup Possible scenarios Use a separate domain altogether (e.g www.mobile-example.com) Use a subdomain (e.g m.example.com) Probably the most popular option URI approach as alternative (e.g example.com/mobile) Use a .mobi top level domain Combine with smart detection 11-06-20 Presenter: Łukasz Serwatka 22 Mobile Channels in eZ Publish eZ Conference 2011
  • 23. Mobile web channel in eZ Publish: siteaccess /settings/override/site.ini.append.php ... [SiteAccessSettings] AvailableSiteAccessList[] AvailableSiteAccessList[]=example AvailableSiteAccessList[]=mobile MatchOrder=host HostMatchMapItems[]=www.example.com;example HostMatchMapItems[]=m.example.com;mobile ... 11-06-20 Presenter: Łukasz Serwatka 23 Mobile Channels in eZ Publish eZ Conference 2011
  • 24. Mobile web channel in eZ Publish: viewport Use the viewport meta tag to improve the presentation of your web content <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=yes" /> 11-06-20 Presenter: Łukasz Serwatka 24 Mobile Channels in eZ Publish eZ Conference 2011
  • 25. DEMO Presenter: Łukasz Serwatka SLIDE 25 11-06-20
  • 26. Mobile web channel in eZ Publish: hybrid apps Native shell for a mobile web Embedded WebView PhoneGap access to device APIs online build tool wide range of supported platforms Distributed via AppStore, Android Market, etc. Access to download statistics Access to the application via native shell (Icon on device screen) 11-06-20 Presenter: Łukasz Serwatka 26 Mobile Channels in eZ Publish eZ Conference 2011
  • 27. DEMO Presenter: Łukasz Serwatka SLIDE 27 11-06-20
  • 28. REST
  • 29. REST REpresentational State Transfer 11-06-20 Presenter: Łukasz Serwatka 29 Mobile Channels in eZ Publish eZ Conference 2011
  • 30. REST REpresentational State Transfer REST is a set of principles that how Web standards, such as HTTP and URIs, are supposed to be used. Give every “thing” an ID Link things together Use standard methods Resource with multiple representations Communicate statelessly 11-06-20 Presenter: Łukasz Serwatka 30 Mobile Channels in eZ Publish eZ Conference 2011
  • 31. REST REpresentational State Transfer Key goals of REST include: Scalability of component interactions Generality of interfaces Independent deployment of components Intermediary components to reduce latency, enforce security and encapsulate legacy systems 11-06-20 Presenter: Łukasz Serwatka 31 Mobile Channels in eZ Publish eZ Conference 2011
  • 32. Life before eZ Publish REST interface custom siteaccess s and template based XML output custom web service implementations involving eZ Publish modules/view ezjscore based web service implementations 11-06-20 Presenter: Łukasz Serwatka 32 Mobile Channels in eZ Publish eZ Conference 2011
  • 33. eZ Publish REST interface available as a core feature since version 4.5 11-06-20 Presenter: Łukasz Serwatka 33 Mobile Channels in eZ Publish eZ Conference 2011
  • 34. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-end controller (index_rest.php as REST endpoint) 11-06-20 Presenter: Łukasz Serwatka 34 Mobile Channels in eZ Publish eZ Conference 2011
  • 35. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-end controller (index_rest.php as REST endpoint) 11-06-20 Presenter: Łukasz Serwatka 35 Mobile Channels in eZ Publish eZ Conference 2011
  • 36. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-end controller (index_rest.php as REST endpoint) based on the Zeta Components: MVCTools component 11-06-20 Presenter: Łukasz Serwatka 36 Mobile Channels in eZ Publish eZ Conference 2011
  • 37. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-end controller (index_rest.php as REST endpoint) based on the Zeta Components: MVCTools component content retrieval only, with possibility to extend 11-06-20 Presenter: Łukasz Serwatka 37 Mobile Channels in eZ Publish eZ Conference 2011
  • 38. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-end controller (index_rest.php as REST endpoint) based on the Zeta Components: MVCTools component content retrieval only, with possibility to extend extensions mechanism 11-06-20 Presenter: Łukasz Serwatka 38 Mobile Channels in eZ Publish eZ Conference 2011
  • 39. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-end controller (index_rest.php as REST endpoint) based on the Zeta Components: MVCTools component content retrieval only, with possibility to extend extensions mechanism versioning 11-06-20 Presenter: Łukasz Serwatka 39 Mobile Channels in eZ Publish eZ Conference 2011
  • 40. eZ Publish REST interface available as a core feature since version 4.5 dedicated front-controller (index_rest.php as REST endpoint) based on the Zeta Components: MVCTools component content retrieval only, with possibility to extend extensions mechanism versioning OAuth 2.0 authentication 11-06-20 Presenter: Łukasz Serwatka 40 Mobile Channels in eZ Publish eZ Conference 2011
  • 41. eZ Publish REST interface: other features built-in caching template based output for various resources returned fields configured per request: responseGroups 11-06-20 Presenter: Łukasz Serwatka 41 Mobile Channels in eZ Publish eZ Conference 2011
  • 42. eZ Publish REST interface: front-controller 11-06-20 Presenter: Łukasz Serwatka 42 Mobile Channels in eZ Publish eZ Conference 2011
  • 43. eZ Publish REST interface: OAuth 2.0 web interface for applications management support for custom OAuth login pages: override oauthloginpagelayout.tpl configurable token expiry time in the rest.ini 11-06-20 Presenter: Łukasz Serwatka 43 Mobile Channels in eZ Publish eZ Conference 2011
  • 44. eZ Publish REST interface content is mapped into the resource node object lists fields resources provided by the ezprestapiprovider extension for better upgradability and easier maintenance new resources can be provided without eZ Publish upgrade 11-06-20 Presenter: Łukasz Serwatka 44 Mobile Channels in eZ Publish eZ Conference 2011
  • 45. eZ Publish REST interface content is mapped into the resource node object lists fields resources provided by the ezprestapiprovider extension for better upgradability and easier maintenance new resources can be provided without eZ Publish upgrade 11-06-20 Presenter: Łukasz Serwatka 45 Mobile Channels in eZ Publish eZ Conference 2011
  • 46. ezpRestProviderInterface every REST resource provider needs to implement ezpRestProviderInterface interface ezpRestProviderInterface { /** * Returns registered versioned routes for provider * * @abstract * @return array */ public function getRoutes(); /** * Returns associated with provider view controller * * @abstract * @return ezpRestViewController */ public function getViewController(); } 11-06-20 Presenter: Łukasz Serwatka 46 Mobile Channels in eZ Publish eZ Conference 2011
  • 47. REST URI pattern explained 11-06-20 Presenter: Łukasz Serwatka 47 Mobile Channels in eZ Publish eZ Conference 2011
  • 48. REST URI pattern explained 11-06-20 Presenter: Łukasz Serwatka 48 Mobile Channels in eZ Publish eZ Conference 2011 globalprefixwhichcan be configured in the rest.ini works as a token to triggeryour re-writerule; /api/ as defaultprefix;
  • 49. REST URI pattern explained ezpRestPrefixFilterInterface responsible for handlingprovidersinformation responsible for handling version token ezpRestDefaultRegexpPrefixFilter /ezp/ as defaultprovidertoken v + integer (e.g v1) as a version token 11-06-20 Presenter: Łukasz Serwatka 49 Mobile Channels in eZ Publish eZ Conference 2011
  • 50. Versioning versioning is supported version token is part of the URI resource e.g. /api/ezp/v1/… use ezpRestVersionedRoute class to register your versioned resources 11-06-20 Presenter: Łukasz Serwatka 50 Mobile Channels in eZ Publish eZ Conference 2011
  • 51. Versioning: examples new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/node/:nodeId/fields', 'ezpRestContentController', 'viewFields' ), 1 ) new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/node/:nodeId/field/:fieldIdentifier', 'ezpRestContentController', 'viewField' ), 1 ) new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/node/:nodeId/childrenCount', 'ezpRestContentController', 'countChildren' ), 1 ) new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/content/object/:objectId', 'ezpRestContentController', 'viewContent' ), 1 ) 11-06-20 Presenter: Łukasz Serwatka 51 Mobile Channels in eZ Publish eZ Conference 2011
  • 52. Extensibility done via eZ Publish extension system create new provider by implementing ezpRestProviderInterface register your new versioned resources see ezprestapiprovider extension as a source of your inspiration 11-06-20 Presenter: Łukasz Serwatka 52 Mobile Channels in eZ Publish eZ Conference 2011
  • 53. Resources content consumption only full CRUD in the next versions needs to be inline with eZ Publish PHP API 11-06-20 Presenter: Łukasz Serwatka 53 Mobile Channels in eZ Publish eZ Conference 2011
  • 54. Resources: example GET /[api]/v1/content/object/<objectId>/fields HTTP/1.1 /content/node/:nodeId /content/node/:nodeId/fields /content/node/:nodeId/field/:fieldIdentifier /content/node/:nodeId/childrenCount /content/object/:objectId /content/object/:objectId/fields 11-06-20 Presenter: Łukasz Serwatka 54 Mobile Channels in eZ Publish eZ Conference 2011
  • 55. Resources: example 11-06-20 Presenter: Łukasz Serwatka 55 Mobile Channels in eZ Publish eZ Conference 2011
  • 56. DEMO Presenter: Łukasz Serwatka SLIDE 56 11-06-20
  • 57. Knowledge sharing guidelines for the developers mobile web hybrid applications native applications source code for sample apps available on GitHub 11-06-20 Presenter: Łukasz Serwatka 57 Mobile Channels in eZ Publish eZ Conference 2011
  • 58. Presenter: Łukasz Serwatka 58 Guidelines for the usage Color scheme Orange eZ color (for Headlines, graphical elements) RGB (243/108/44) HEX (#f36f21) Blue eZ color (for highlighting, graphical elements) RGB (42/132/183) HEX (#2a84b7) Light gray eZ color (for graphical elements) RGB (147/149/152) HEX (#939598) Dark gray eZ color (for text and sublines) RGB (64/64/64) 11-06-20