SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
{ Good Morning }
I’m Andy, pleased to meet
you 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
{ 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
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
I’m a web developer
• PHP
• CSS
• HTML
• JavaScript / jQuery
• MySQL
• Joomla
Self employed, 20+ years writing code
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
{ A Story }
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
{ 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 }
Joomla as a mobile App backend - ideas, examples and experiences
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 }
Joomla as a mobile App backend - ideas, examples and experiences
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
Joomla as a mobile App backend - ideas, examples and experiences
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 }
Joomla as a mobile App backend - ideas, examples and experiences
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}
Joomla as a mobile App backend - ideas, examples and experiences
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 }
Joomla as a mobile App backend - ideas, examples and experiences
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
Joomla as a mobile App backend - ideas, examples and experiences
{ Thanks }
@AndyGasman
@ssofb
Joomla as a mobile App backend - ideas, examples and experiences

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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 a 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 a 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
 

Último

Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteMavein
 
Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilitiesalihassaah1994
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxnaveenithkrishnan
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSedrianrheine
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpressssuser166378
 
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSlesteraporado16
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024Jan Löffler
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfmchristianalwyn
 
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdfShreedeep Rayamajhi
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsRoxana Stingu
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Shubham Pant
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...APNIC
 

Último (12)

Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a Website
 
Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilities
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptx
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpress
 
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
 
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
 

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

  • 1. { Good Morning } I’m Andy, pleased to meet you 
  • 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
  • 11. I’m a web developer • PHP • CSS • HTML • JavaScript / jQuery • MySQL • Joomla Self employed, 20+ years writing code
  • 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
  • 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
  • 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
  • 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
  • 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}
  • 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
  • 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