SlideShare a Scribd company logo
1 of 25
Download to read offline
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Hybrid App
Development with
AEM Apps
Pat McLoughlin &
Paul Michelotti
Crushin’ It 2012 - Present
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Application Goals
● Content reuse from the CIRCUIT website
● Native application interactions (Twitter, Maps)
● Use of Push Notifications
● Location Awareness (Geofencing, iBeacons)
● Engagement via Gameification
● Cross platform deployment (iOS and Android)
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Technical Overview
● AEM Apps
● Cordova
● Ionic Framework
● Angular
● AWS Elastic Beanstalk
● AWS Lambda
● AWS SNS
● AWS DynamoDB
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Introduction to
AEM Apps
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Why Did we Use AEM Apps?
● Application Authorability
● Content reuse across AEM - Canonical Content
● Over the air app updates - Update your app without
resubmission to the app store
● Business friendly application dashboard
● Integration with PhoneGap Build
● Integration with Analytics
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
A Word on Cordova
● Mobile application framework for building apps using web
technologies
● Exposes native functionality via a Javascript API
● Typically encapsulates single page web applications
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
A Moment on Angular
● A Single Page web application framework
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
A Hot Minute on Ionic
● Ionic has done the heavy lifting of making your web app feel
like a native app
● CSS and Javascript to assist with the general look and feel of
your application, visually taking into account the user’s
platform
● A number of directives to build up application views, states,
navigation, lists, etc…
● A robust state history framework allowing for the caching of
views during app navigation
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
More Love for Ionic
● Provides tooling around Cordova and is continuously adding
more tools to their proverbial belt such as icon and splash
screen generation, push notification services, and testing
frameworks
● ngCordova - an Angular wrapper around a number of the
most commonly used Cordova plugins is produced by the
fine folks at Ionic
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
-
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Authoring a Single
Page Application
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Authoring an Entire Application on
a Single Page Would be Worse
than Fitting an Entire Presentation
onto a Single Slide
● Each state in the application lives as a page inside of AEM
● Application authors are able to author using a paradigm with
which they are familiar.
● Authors working in AEM have an expectation of inline
editability. That is to say, they expect that the environment
they author in projects a reasonable facsimile of the finished
product
● Authors also have an expectation of the ability to preview
their work prior to activation. This is especially important in a
production environment
● Accomplishing this is non trivial when the final product will be
a single page application.
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
AEM Author Expectations
● Page Based component editing - authors expect to author by
pulling components onto pages and modifying the content
and configuration of those components via edit dialogs
● Inline Editability - What an author is editing should be a
reasonable facsimile of the final product
● Preview - authors expect to be able to preview their updates
prior to publishing
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Enter the Ionic AEM
Apps Library
AKA - A Maven project full of
our opinions on how to do
stuff more better
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Pages as Application States
● Each page is an Application State
● The parent / child relationship between pages is mirrored in
the parent / child relationship between their states
● The Main Menu state and its child states in the CIRCUIT
application is an example of this relationship
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Root Page as Application Root
● Application root is the entry point of the application
● Houses the logic to dynamically generate the Application
module / bootstrapping mechanisms
● Determines the Angular Application’s required modules
based on the components used in the app
● Allows for a preview view of the functional application to the
extent that the application can function in a browser
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Content Reuse
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Goals of Content Reuse
● Make use of the existing Speakers and Sessions content
from the CIRCUIT website within the app without reauthoring
● Session and Speaker lists act as data within the application
to enable viewing of individual Session and Speaker details
● Packaging of Session and Speaker data within the
downloadable app
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
How a Single Page
Web Application
Becomes a Cordova
Application
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Structure of a Cordova Application
● hooks
○ Houses Javascript code which will run at various points in
the app build lifecycle
● www
○ config.xml
■ Defines a number of application properties such as
the url the webview should be directed to initially
○ Your application assets such as html, css, js, images, etc...
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
From AEM to Cordova
● Content Sync mechanisms are used to produce a .zip whose
contents follow the standard Cordova app structure
● A number of Content Sync configurations leveraging
numerous Content Handlers work in concert to put together
the application archive from your application’s content, other
used content, static files, and configuration
● Unzipping the result you will find a folder structure which
exactly matches what is expected of a Cordova application
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Over the Air Updates
● Content Sync also enables Over the Air application updates
● A check for new application content is performed at application
startup
● The last updated timestamp is checked against the content
sync endpoint on publish
● Content Sync creates a new .zip of changes
● Current content on the device is copied to a new location and
new content is written over the current
● Finally the application points the webview to the new location
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Wrapping Up
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Final Thoughts in the form of Links
● Ionic AEM Apps Library - https://github.com/Citytechinc/ionic-
aem-apps
● Ionic Framework - http://ionicframework.com/
● AEM Apps Starter Kit - https://github.com/blefebvre/aem-
phonegap-starter-kit
Paul Michelotti
paul.michelotti@icfi.com
@PaulMichelotti on Twitter
Pat McLoughlin
pat.mcloughlin@icfi.com
@CityPat on Twitter

More Related Content

What's hot

Amazon Final internship presentation
Amazon Final internship presentationAmazon Final internship presentation
Amazon Final internship presentation
Steven Nguyen
 
Case study: integrating azure with google app engine
Case study: integrating azure with google app engine Case study: integrating azure with google app engine
Case study: integrating azure with google app engine
Miguel Scotter
 

What's hot (20)

Universal Windows Platform
Universal Windows PlatformUniversal Windows Platform
Universal Windows Platform
 
INTERNSHIP REPORT
INTERNSHIP REPORTINTERNSHIP REPORT
INTERNSHIP REPORT
 
Build Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkBuild Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic Framework
 
Amazon Final internship presentation
Amazon Final internship presentationAmazon Final internship presentation
Amazon Final internship presentation
 
Simplify and Accelerate App Development with Adobe AEM Mobile
Simplify and Accelerate App Development with Adobe AEM MobileSimplify and Accelerate App Development with Adobe AEM Mobile
Simplify and Accelerate App Development with Adobe AEM Mobile
 
Adobe AEM core components
Adobe AEM core componentsAdobe AEM core components
Adobe AEM core components
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Web application development process
Web application development processWeb application development process
Web application development process
 
Google App Engine (Introduction)
Google App Engine (Introduction)Google App Engine (Introduction)
Google App Engine (Introduction)
 
What are The Top Features of Angular 7?
What are The Top Features of Angular 7?What are The Top Features of Angular 7?
What are The Top Features of Angular 7?
 
12 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.212 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.2
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Case study: integrating azure with google app engine
Case study: integrating azure with google app engine Case study: integrating azure with google app engine
Case study: integrating azure with google app engine
 
Immerse 2016 Efficient publishing with content fragments
Immerse 2016 Efficient publishing with content fragmentsImmerse 2016 Efficient publishing with content fragments
Immerse 2016 Efficient publishing with content fragments
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile application
 
Internship - Bootstrap
Internship - BootstrapInternship - Bootstrap
Internship - Bootstrap
 
Building capacitor apps in appflow webinar
Building capacitor apps in appflow webinarBuilding capacitor apps in appflow webinar
Building capacitor apps in appflow webinar
 
Internship Presentation 1 Web Developer
Internship Presentation 1 Web DeveloperInternship Presentation 1 Web Developer
Internship Presentation 1 Web Developer
 
Experience with Google Glass and Business Applications
Experience with Google Glass and Business ApplicationsExperience with Google Glass and Business Applications
Experience with Google Glass and Business Applications
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
 

Similar to CIRCUIT 2015 - Hybrid App Development with AEM Apps

Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - Meetup
Sanjay Patel
 

Similar to CIRCUIT 2015 - Hybrid App Development with AEM Apps (20)

6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf
6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf
6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf
 
Developing ionic apps for android and ios
Developing ionic apps for android and iosDeveloping ionic apps for android and ios
Developing ionic apps for android and ios
 
The Best Alternatives To The Ionic Framework.pdf
The Best Alternatives To The Ionic Framework.pdfThe Best Alternatives To The Ionic Framework.pdf
The Best Alternatives To The Ionic Framework.pdf
 
React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React Native
 
Why do developers prefer ionic to build progressive web apps
Why do developers prefer ionic to build progressive web apps  Why do developers prefer ionic to build progressive web apps
Why do developers prefer ionic to build progressive web apps
 
10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps
 
Ionic vs flutter best platform for hybrid app development
Ionic vs flutter  best platform for hybrid app developmentIonic vs flutter  best platform for hybrid app development
Ionic vs flutter best platform for hybrid app development
 
Hybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSHybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJS
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
 
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
 
Why we built 35kb React Native alternative ?
Why we built 35kb React Native alternative ?Why we built 35kb React Native alternative ?
Why we built 35kb React Native alternative ?
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Ionic2 First Lesson of Four
Ionic2 First Lesson of FourIonic2 First Lesson of Four
Ionic2 First Lesson of Four
 
A brief description about Angular
A brief description about AngularA brief description about Angular
A brief description about Angular
 
Flutter vs Ionic: Which framework is better for cross platform application d...
Flutter vs Ionic: Which framework is better  for cross platform application d...Flutter vs Ionic: Which framework is better  for cross platform application d...
Flutter vs Ionic: Which framework is better for cross platform application d...
 
Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - Meetup
 
Introduction To Ionic3
Introduction To Ionic3Introduction To Ionic3
Introduction To Ionic3
 
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentHow native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM Bluemix
 

More from ICF CIRCUIT

More from ICF CIRCUIT (13)

CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
CIRCUIT 2015 - AEM Infrastructure Automation with Chef CookbooksCIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEM
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and Beyond
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingCIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and Testing
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
 
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsCIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
 
CIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffCIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diff
 
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
CIRCUIT 2015 -  Orchestrate your story with interactive video and web contentCIRCUIT 2015 -  Orchestrate your story with interactive video and web content
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
CIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoCIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can Do
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

CIRCUIT 2015 - Hybrid App Development with AEM Apps

  • 1. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Hybrid App Development with AEM Apps Pat McLoughlin & Paul Michelotti Crushin’ It 2012 - Present
  • 2. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Application Goals ● Content reuse from the CIRCUIT website ● Native application interactions (Twitter, Maps) ● Use of Push Notifications ● Location Awareness (Geofencing, iBeacons) ● Engagement via Gameification ● Cross platform deployment (iOS and Android)
  • 3. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Technical Overview ● AEM Apps ● Cordova ● Ionic Framework ● Angular ● AWS Elastic Beanstalk ● AWS Lambda ● AWS SNS ● AWS DynamoDB
  • 4. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Introduction to AEM Apps
  • 5. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Why Did we Use AEM Apps? ● Application Authorability ● Content reuse across AEM - Canonical Content ● Over the air app updates - Update your app without resubmission to the app store ● Business friendly application dashboard ● Integration with PhoneGap Build ● Integration with Analytics
  • 6. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive A Word on Cordova ● Mobile application framework for building apps using web technologies ● Exposes native functionality via a Javascript API ● Typically encapsulates single page web applications
  • 7. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive
  • 8. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive A Moment on Angular ● A Single Page web application framework
  • 9. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive A Hot Minute on Ionic ● Ionic has done the heavy lifting of making your web app feel like a native app ● CSS and Javascript to assist with the general look and feel of your application, visually taking into account the user’s platform ● A number of directives to build up application views, states, navigation, lists, etc… ● A robust state history framework allowing for the caching of views during app navigation
  • 10. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive More Love for Ionic ● Provides tooling around Cordova and is continuously adding more tools to their proverbial belt such as icon and splash screen generation, push notification services, and testing frameworks ● ngCordova - an Angular wrapper around a number of the most commonly used Cordova plugins is produced by the fine folks at Ionic
  • 11. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive -
  • 12. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Authoring a Single Page Application
  • 13. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Authoring an Entire Application on a Single Page Would be Worse than Fitting an Entire Presentation onto a Single Slide ● Each state in the application lives as a page inside of AEM ● Application authors are able to author using a paradigm with which they are familiar. ● Authors working in AEM have an expectation of inline editability. That is to say, they expect that the environment they author in projects a reasonable facsimile of the finished product ● Authors also have an expectation of the ability to preview their work prior to activation. This is especially important in a production environment ● Accomplishing this is non trivial when the final product will be a single page application.
  • 14. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive AEM Author Expectations ● Page Based component editing - authors expect to author by pulling components onto pages and modifying the content and configuration of those components via edit dialogs ● Inline Editability - What an author is editing should be a reasonable facsimile of the final product ● Preview - authors expect to be able to preview their updates prior to publishing
  • 15. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Enter the Ionic AEM Apps Library AKA - A Maven project full of our opinions on how to do stuff more better
  • 16. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Pages as Application States ● Each page is an Application State ● The parent / child relationship between pages is mirrored in the parent / child relationship between their states ● The Main Menu state and its child states in the CIRCUIT application is an example of this relationship
  • 17. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Root Page as Application Root ● Application root is the entry point of the application ● Houses the logic to dynamically generate the Application module / bootstrapping mechanisms ● Determines the Angular Application’s required modules based on the components used in the app ● Allows for a preview view of the functional application to the extent that the application can function in a browser
  • 18. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Content Reuse
  • 19. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Goals of Content Reuse ● Make use of the existing Speakers and Sessions content from the CIRCUIT website within the app without reauthoring ● Session and Speaker lists act as data within the application to enable viewing of individual Session and Speaker details ● Packaging of Session and Speaker data within the downloadable app
  • 20. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive How a Single Page Web Application Becomes a Cordova Application
  • 21. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Structure of a Cordova Application ● hooks ○ Houses Javascript code which will run at various points in the app build lifecycle ● www ○ config.xml ■ Defines a number of application properties such as the url the webview should be directed to initially ○ Your application assets such as html, css, js, images, etc...
  • 22. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive From AEM to Cordova ● Content Sync mechanisms are used to produce a .zip whose contents follow the standard Cordova app structure ● A number of Content Sync configurations leveraging numerous Content Handlers work in concert to put together the application archive from your application’s content, other used content, static files, and configuration ● Unzipping the result you will find a folder structure which exactly matches what is expected of a Cordova application
  • 23. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Over the Air Updates ● Content Sync also enables Over the Air application updates ● A check for new application content is performed at application startup ● The last updated timestamp is checked against the content sync endpoint on publish ● Content Sync creates a new .zip of changes ● Current content on the device is copied to a new location and new content is written over the current ● Finally the application points the webview to the new location
  • 24. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Wrapping Up
  • 25. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive Final Thoughts in the form of Links ● Ionic AEM Apps Library - https://github.com/Citytechinc/ionic- aem-apps ● Ionic Framework - http://ionicframework.com/ ● AEM Apps Starter Kit - https://github.com/blefebvre/aem- phonegap-starter-kit Paul Michelotti paul.michelotti@icfi.com @PaulMichelotti on Twitter Pat McLoughlin pat.mcloughlin@icfi.com @CityPat on Twitter