SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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
Oren Shatken
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
KMS Technology
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
Rasheed Waraich
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
WSO2
 

Tendances (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
 

Similaire à 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 2011
Nuxeo
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+upload
Tianwei_liu
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016
Alex Wu
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
Oron Ben Zvi
 

Similaire à 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
 

Dernier

Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
shivangimorya083
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
anilsa9823
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
sexy call girls service in goa
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
SofiyaSharma5
 

Dernier (20)

Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 

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.