joomla as a mobile app backend - ideas, examples and experiences
TRANSCRIPT
![Page 1: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/1.jpg)
{ Good Morning }I’m Andy, pleased to meet
you
![Page 2: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/2.jpg)
![Page 3: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/3.jpg)
![Page 4: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/4.jpg)
![Page 5: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/5.jpg)
{ Intro }
![Page 6: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/6.jpg)
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
![Page 7: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/7.jpg)
I live in AberdeenScotland / UKit’s...• Dry• Cold• Windy
![Page 8: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/8.jpg)
![Page 9: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/9.jpg)
![Page 10: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/10.jpg)
![Page 11: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/11.jpg)
I’m a web developer
• PHP• CSS• HTML• JavaScript / jQuery• MySQL• Joomla
Self employed, 20+ years writing code
![Page 12: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/12.jpg)
![Page 13: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/13.jpg)
![Page 14: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/14.jpg)
{ A Story }
![Page 15: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/15.jpg)
![Page 16: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/16.jpg)
![Page 17: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/17.jpg)
![Page 18: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/18.jpg)
{ Backstory }
![Page 19: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/19.jpg)
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...
![Page 20: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/20.jpg)
So we made Apps...lots of ‘em
![Page 21: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/21.jpg)
{ The Team }
![Page 22: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/22.jpg)
![Page 23: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/23.jpg)
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
![Page 24: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/24.jpg)
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
![Page 25: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/25.jpg)
{ The App }
![Page 26: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/26.jpg)
Anatomy
![Page 27: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/27.jpg)
Features
• Info• News• Forms• Surveys• Push notification• Events / Calendar• Other categories of information• iOS & Android, Tablet & Phone
![Page 28: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/28.jpg)
Got to Be Useful
![Page 29: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/29.jpg)
App Screens
• Home• News• Events / Calendar
• Info
• Contacts
• Push notification
• Forms• Surveys
![Page 30: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/30.jpg)
{ Making Apps }
![Page 31: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/31.jpg)
![Page 32: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/32.jpg)
Ways to make an App
• Native– Java / Objective C / Swift
• Web Apps– HTML5 & JavaScript
• Hybrid– Using a platform or framework for multi
platform Apps
![Page 33: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/33.jpg)
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.
![Page 34: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/34.jpg)
Platforms / Frameworks
• PhoneGap• Appcelerator Titanium• Sencha Touch• Xamarin• Corona
![Page 35: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/35.jpg)
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
![Page 36: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/36.jpg)
![Page 37: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/37.jpg)
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
![Page 38: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/38.jpg)
Build Process, Times X Apps
![Page 39: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/39.jpg)
{ Backend }
![Page 40: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/40.jpg)
![Page 41: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/41.jpg)
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
![Page 42: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/42.jpg)
We chose
(of course)
![Page 43: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/43.jpg)
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
![Page 44: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/44.jpg)
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• Extension for json RESTful API -
jBackend• Load of other glue we wrote
![Page 45: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/45.jpg)
Joomla Approach
• Use as much of the core functionality as possible
• Keep the number of extensions low• Make the template adaptable and
responsive
![Page 46: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/46.jpg)
Backend UI
![Page 47: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/47.jpg)
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
![Page 48: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/48.jpg)
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
![Page 49: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/49.jpg)
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
![Page 50: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/50.jpg)
{ CI & DevOps}
![Page 51: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/51.jpg)
![Page 52: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/52.jpg)
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
![Page 53: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/53.jpg)
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
![Page 54: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/54.jpg)
{ Lessons }
![Page 55: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/55.jpg)
![Page 56: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/56.jpg)
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
![Page 57: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/57.jpg)
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
![Page 58: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/58.jpg)
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
![Page 59: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/59.jpg)
{ Questions? }Try out the Apps
Try out the Back-end
Links and references on Twitter
![Page 60: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/60.jpg)
![Page 61: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/61.jpg)
{ Thanks }@AndyGasman
@ssofb
![Page 62: Joomla as a mobile App backend - ideas, examples and experiences](https://reader038.vdocuments.site/reader038/viewer/2022103019/55b6d856bb61eb270f8b47cb/html5/thumbnails/62.jpg)