SlideShare a Scribd company logo
1 of 62
{ Good Morning }
I’m Andy, pleased to meet
you 
{ Intro }
Hi, I’m Andy
• Twitter: @AndyGasman
• LinkedIn: agaskell
• Facebook: andy.gaskell.uk
• Work: ssofb.co.uk
• Home: Aberdeen, Scotland
• I work from a home office
I live in Aberdeen
Scotland / UK
it’s...
• Dry
• Cold
• Windy
I’m a web developer
• PHP
• CSS
• HTML
• JavaScript / jQuery
• MySQL
• Joomla
Self employed, 20+ years writing code
{ A Story }
{ Backstory }
In the beginning...a Guy
called Jim
• Knows about schools
• Likes Apps
• Wants to build a business
• Keen to invest
• 95% of UK state schools don’t have
an App = opportunity
• 24k State Schools in UK
• Plus, nurseries, clubs, churches...
So we made Apps...lots of ‘em
{ The Team }
People & Skills
• Product manager: App
• App Dev: General + UI + Web
• App Dev: General + CI/CD
• Web Dev: PHP, JavaScipt, CSS etc
+
• MD: Sales & Strategy
• Sales Manager: Sales
Team Anatomy
• All experienced
• All remote
• Assembla + Skype, no email
• Weekly conf call
• Monthly meetings
• 2 week development cycles, mostly
• Front end and back-end working
closely
• agile but not Agile
{ The App }
Anatomy
Features
• Info
• News
• Forms
• Surveys
• Push notification
• Events / Calendar
• Other categories of information
• iOS & Android, Tablet & Phone
Got to Be Useful
App Screens
• Home
• News
• Events / Calendar
• Info
• Contacts
• Push notification
• Forms
• Surveys
{ Making Apps }
Ways to make an App
• Native
– Java / Objective C / Swift
• Web Apps
– HTML5 & JavaScript
• Hybrid
– Using a platform or framework for multi
platform Apps
Hybrid / Multi Platform Apps
• Write once
• Often write in higher level languages
• Leverage APIs through a wrapper
• Write in one language
• Compile to Android, iOS, WinPhone,
BB and Tizen.
Platforms / Frameworks
• PhoneGap
• Appcelerator Titanium
• Sencha Touch
• Xamarin
• Corona
Appcelerator Titanium
• Logic in JavaScipt
• Layout in Alloy (a bit like HTML)
• Style in TSS (like CSS)
• Compiles to native components
• Lots of modules available
• Lots of APIs
• Quite good community & traction
• Open Source with corporate overlord
• Services in cloud API
App Building Tools
• NodeJS: All build scripting done in JS
• GruntJS: JavaScript task runner
• Calabash: Automated Testing
• Go.cd Server: build-test-release
• KrauseFX Fastlane tools
– Deliver: publishes to App stores
– Snapshot: does screen grabs for
submission
Build Process, Times X Apps
{ Backend }
What does the back-end
do?
• Enter content
– News
– Info
– Events
• Import calendars from ICS feeds
• Send push messages
• Set-up forms & surveys
• View & download form & survey data
• Access control
We chose
(of course)
Why Joomla?...
• Stable & Secure
• Mobile Friendly
• Great to develop on
• All the good stuff there...
– OO & MVC
– jQuery
– Bootstrap
• Huge time-saver compared to writing
from scratch, provides many required
features out-of-the-box
How?
• Uses Joomla! Front-end
• Each App back-end has a separate
Joomla! install
• One custom template, branded per
App
• Visually customised to match look &
feel
• Extension for structured data -
FieldsAttatch
Joomla Approach
• Use as much of the core functionality
as possible
• Keep the number of extensions low
• Make the template adaptable and
responsive
Backend UI
Push Notifications
• Any item can be a push notification
• Push goes via Appcelerator cloud API
endpoint, mapped to Apple and
Android push API
• Custom code
• Runs every 2 mins as a
cron job
• And, yes, it does work on
an Apple Watch
Extension - Fields Attach
• Means you can add structured data
to articles as required.
• Enables all “things” to be an article,
with fields added as required.
• Used for events, notifications,
surveys, forms
• UI driven
• Code in Spanish, a little
hard to read for me
Extension - jBackend
• API Backend for Joomla
• Great for JSON
• Comes with boilerplate code to get
started
• Manages API keys
• API endpoint code transmits and
receives data
• Basically exposes many common
CMS functions as API endpoints
{ CI & DevOps}
App Continuous Integration
• All Apps have same code-base
• New features are built into all Apps
• Key for the project, got to keep per-App costs
low
• Very Automated building system
• Structured UI themes
• Streamlined yet flexible back-ends
• Lots of “pretending to be a person” done using
PhatomJS
• Maintaining backend compatibility over versions
DevOps – Running Backends
• Initially running on Rochen shared
hosting, ok for 30 back-ends.
• Moved to a Rochen Managed Cloud
Server
• New backends created from a
Akeeba backup seed file.
• Scripted using UNiTE
• All scripting done in JavaScript
node.js
{ Lessons }
Lessons learnt - Apps
• A reliable and automated CI build
system is very complex to create
• Many App submission related tasks
are not easily automated
• iTunes submissions still get rejected
for random reasons
• Android fragmentation is not really
an issue
• App stores don’t really want you to
automate stuff
Lessons learnt - Back-end
• Develop with the future in mind
• Try not to accumulate technical debt
• Work closely with the App developers
• Users are typically quite non-technical,
so simple UI best
• Things need to “just work” for users
• Write a good base API and evolve it
• APIs are just awesome
• “Shell” scripting in JavaScript / Node.js
is quite nice actually
Lessons learnt - Commercial
• Some schools are slow at decision
making
• Huge scope for growth, have to keep
it steady
• Quite a good idea actually
• Different value propositions for
different types of schools
{ Questions? }
Try out the Apps
Try out the Back-end
Links and references on Twitter
{ Thanks }
@AndyGasman
@ssofb
Joomla as a mobile App backend - ideas, examples and experiences

More Related Content

What's hot

Rise of the responsive single page application
Rise of the responsive single page applicationRise of the responsive single page application
Rise of the responsive single page applicationOren Shatken
 
Single page application
Single page applicationSingle page application
Single page applicationArthur Fung
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page ApplicationKMS Technology
 
SGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceSGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceDomingo Suarez Torres
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Jeremy Likness
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsRasheed Waraich
 
Back to the Basics - 1 - Introduction to Web Development
Back to the Basics - 1 - Introduction to Web DevelopmentBack to the Basics - 1 - Introduction to Web Development
Back to the Basics - 1 - Introduction to Web DevelopmentClint LaForest
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggeryWSO2
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSPhp Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSIrfan Maulana
 
Modern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio CodeModern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio CodeJared Matfess
 
Single page applications
Single page applicationsSingle page applications
Single page applicationsDiego Cardozo
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSPantheon
 
Aspect oriented programming
Aspect oriented programmingAspect oriented programming
Aspect oriented programmingRobert MacLean
 
Tech Stack Ideas
Tech Stack IdeasTech Stack Ideas
Tech Stack Ideasnsclark
 
Performance optimization of vue.js apps with modern js
Performance optimization of vue.js apps with modern jsPerformance optimization of vue.js apps with modern js
Performance optimization of vue.js apps with modern jsFilip Rakowski
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster Boris Livshutz
 
The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)Todd Ross Nienkerk
 

What's hot (20)

Rise of the responsive single page application
Rise of the responsive single page applicationRise of the responsive single page application
Rise of the responsive single page application
 
Single page application
Single page applicationSingle page application
Single page application
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
 
SGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceSGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page Interface
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Back to the Basics - 1 - Introduction to Web Development
Back to the Basics - 1 - Introduction to Web DevelopmentBack to the Basics - 1 - Introduction to Web Development
Back to the Basics - 1 - Introduction to Web Development
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSPhp Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
 
Modern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio CodeModern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio Code
 
Single page applications
Single page applicationsSingle page applications
Single page applications
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMS
 
Aspect oriented programming
Aspect oriented programmingAspect oriented programming
Aspect oriented programming
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 
Tech Stack Ideas
Tech Stack IdeasTech Stack Ideas
Tech Stack Ideas
 
Performance optimization of vue.js apps with modern js
Performance optimization of vue.js apps with modern jsPerformance optimization of vue.js apps with modern js
Performance optimization of vue.js apps with modern js
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster
 
The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)
 
React JS
React JSReact JS
React JS
 
MEAN Stack
MEAN Stack MEAN Stack
MEAN Stack
 

Similar to Joomla as a mobile App backend - ideas, examples and experiences

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building ProductsHayden Bleasel
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+uploadTianwei_liu
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularMark Leusink
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Building Large Mobile Apps
Building Large Mobile AppsBuilding Large Mobile Apps
Building Large Mobile AppsAdam Magaña
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016Alex Wu
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybridsOron Ben Zvi
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...Sébastien Levert
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSébastien Levert
 
iPad Development Slides #ilta12
iPad Development Slides #ilta12iPad Development Slides #ilta12
iPad Development Slides #ilta12Ike Ellis
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsAlius Petraška
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSébastien Levert
 

Similar to Joomla as a mobile App backend - ideas, examples and experiences (20)

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+upload
 
Platform Selection
Platform SelectionPlatform Selection
Platform Selection
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
 
Building Large Mobile Apps
Building Large Mobile AppsBuilding Large Mobile Apps
Building Large Mobile Apps
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
 
iPad Development Slides #ilta12
iPad Development Slides #ilta12iPad Development Slides #ilta12
iPad Development Slides #ilta12
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
 

Recently uploaded

Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 

Joomla as a mobile App backend - ideas, examples and experiences

  • 1. { Good Morning } I’m Andy, pleased to meet you 
  • 2.
  • 3.
  • 4.
  • 6. Hi, I’m Andy • Twitter: @AndyGasman • LinkedIn: agaskell • Facebook: andy.gaskell.uk • Work: ssofb.co.uk • Home: Aberdeen, Scotland • I work from a home office
  • 7. I live in Aberdeen Scotland / UK it’s... • Dry • Cold • Windy
  • 8.
  • 9.
  • 10.
  • 11. I’m a web developer • PHP • CSS • HTML • JavaScript / jQuery • MySQL • Joomla Self employed, 20+ years writing code
  • 12.
  • 13.
  • 15.
  • 16.
  • 17.
  • 19. In the beginning...a Guy called Jim • Knows about schools • Likes Apps • Wants to build a business • Keen to invest • 95% of UK state schools don’t have an App = opportunity • 24k State Schools in UK • Plus, nurseries, clubs, churches...
  • 20. So we made Apps...lots of ‘em
  • 22.
  • 23. People & Skills • Product manager: App • App Dev: General + UI + Web • App Dev: General + CI/CD • Web Dev: PHP, JavaScipt, CSS etc + • MD: Sales & Strategy • Sales Manager: Sales
  • 24. Team Anatomy • All experienced • All remote • Assembla + Skype, no email • Weekly conf call • Monthly meetings • 2 week development cycles, mostly • Front end and back-end working closely • agile but not Agile
  • 27. Features • Info • News • Forms • Surveys • Push notification • Events / Calendar • Other categories of information • iOS & Android, Tablet & Phone
  • 28. Got to Be Useful
  • 29. App Screens • Home • News • Events / Calendar • Info • Contacts • Push notification • Forms • Surveys
  • 31.
  • 32. Ways to make an App • Native – Java / Objective C / Swift • Web Apps – HTML5 & JavaScript • Hybrid – Using a platform or framework for multi platform Apps
  • 33. Hybrid / Multi Platform Apps • Write once • Often write in higher level languages • Leverage APIs through a wrapper • Write in one language • Compile to Android, iOS, WinPhone, BB and Tizen.
  • 34. Platforms / Frameworks • PhoneGap • Appcelerator Titanium • Sencha Touch • Xamarin • Corona
  • 35. Appcelerator Titanium • Logic in JavaScipt • Layout in Alloy (a bit like HTML) • Style in TSS (like CSS) • Compiles to native components • Lots of modules available • Lots of APIs • Quite good community & traction • Open Source with corporate overlord • Services in cloud API
  • 36.
  • 37. App Building Tools • NodeJS: All build scripting done in JS • GruntJS: JavaScript task runner • Calabash: Automated Testing • Go.cd Server: build-test-release • KrauseFX Fastlane tools – Deliver: publishes to App stores – Snapshot: does screen grabs for submission
  • 40.
  • 41. What does the back-end do? • Enter content – News – Info – Events • Import calendars from ICS feeds • Send push messages • Set-up forms & surveys • View & download form & survey data • Access control
  • 43. Why Joomla?... • Stable & Secure • Mobile Friendly • Great to develop on • All the good stuff there... – OO & MVC – jQuery – Bootstrap • Huge time-saver compared to writing from scratch, provides many required features out-of-the-box
  • 44. How? • Uses Joomla! Front-end • Each App back-end has a separate Joomla! install • One custom template, branded per App • Visually customised to match look & feel • Extension for structured data - FieldsAttatch
  • 45. Joomla Approach • Use as much of the core functionality as possible • Keep the number of extensions low • Make the template adaptable and responsive
  • 47. Push Notifications • Any item can be a push notification • Push goes via Appcelerator cloud API endpoint, mapped to Apple and Android push API • Custom code • Runs every 2 mins as a cron job • And, yes, it does work on an Apple Watch
  • 48. Extension - Fields Attach • Means you can add structured data to articles as required. • Enables all “things” to be an article, with fields added as required. • Used for events, notifications, surveys, forms • UI driven • Code in Spanish, a little hard to read for me
  • 49. Extension - jBackend • API Backend for Joomla • Great for JSON • Comes with boilerplate code to get started • Manages API keys • API endpoint code transmits and receives data • Basically exposes many common CMS functions as API endpoints
  • 50. { CI & DevOps}
  • 51.
  • 52. App Continuous Integration • All Apps have same code-base • New features are built into all Apps • Key for the project, got to keep per-App costs low • Very Automated building system • Structured UI themes • Streamlined yet flexible back-ends • Lots of “pretending to be a person” done using PhatomJS • Maintaining backend compatibility over versions
  • 53. DevOps – Running Backends • Initially running on Rochen shared hosting, ok for 30 back-ends. • Moved to a Rochen Managed Cloud Server • New backends created from a Akeeba backup seed file. • Scripted using UNiTE • All scripting done in JavaScript node.js
  • 55.
  • 56. Lessons learnt - Apps • A reliable and automated CI build system is very complex to create • Many App submission related tasks are not easily automated • iTunes submissions still get rejected for random reasons • Android fragmentation is not really an issue • App stores don’t really want you to automate stuff
  • 57. Lessons learnt - Back-end • Develop with the future in mind • Try not to accumulate technical debt • Work closely with the App developers • Users are typically quite non-technical, so simple UI best • Things need to “just work” for users • Write a good base API and evolve it • APIs are just awesome • “Shell” scripting in JavaScript / Node.js is quite nice actually
  • 58. Lessons learnt - Commercial • Some schools are slow at decision making • Huge scope for growth, have to keep it steady • Quite a good idea actually • Different value propositions for different types of schools
  • 59. { Questions? } Try out the Apps Try out the Back-end Links and references on Twitter
  • 60.