joomla as a mobile app backend - ideas, examples and experiences

62
{ Good Morning } I’m Andy, pleased to meet you

Upload: andygaskell

Post on 28-Jul-2015

65 views

Category:

Internet


1 download

TRANSCRIPT

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

{ Good Morning }I’m Andy, pleased to meet

you

Page 2: Joomla as a mobile App backend - ideas, examples and experiences
Page 3: Joomla as a mobile App backend - ideas, examples and experiences
Page 4: Joomla as a mobile App backend - ideas, examples and experiences
Page 5: Joomla as a mobile App backend - ideas, examples and experiences

{ Intro }

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

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

I live in AberdeenScotland / UKit’s...• Dry• Cold• Windy

Page 8: Joomla as a mobile App backend - ideas, examples and experiences
Page 9: Joomla as a mobile App backend - ideas, examples and experiences
Page 10: Joomla as a mobile App backend - ideas, examples and experiences
Page 11: 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

Page 12: Joomla as a mobile App backend - ideas, examples and experiences
Page 13: Joomla as a mobile App backend - ideas, examples and experiences
Page 14: Joomla as a mobile App backend - ideas, examples and experiences

{ A Story }

Page 15: Joomla as a mobile App backend - ideas, examples and experiences
Page 16: Joomla as a mobile App backend - ideas, examples and experiences
Page 17: Joomla as a mobile App backend - ideas, examples and experiences
Page 18: Joomla as a mobile App backend - ideas, examples and experiences

{ Backstory }

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

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

So we made Apps...lots of ‘em

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

{ The Team }

Page 22: Joomla as a mobile App backend - ideas, examples and experiences
Page 23: 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

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

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

{ The App }

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

Anatomy

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

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

Got to Be Useful

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

App Screens

• Home• News• Events / Calendar

• Info

• Contacts

• Push notification

• Forms• Surveys

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

{ Making Apps }

Page 31: Joomla as a mobile App backend - ideas, examples and experiences
Page 32: 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

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

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

Platforms / Frameworks

• PhoneGap• Appcelerator Titanium• Sencha Touch• Xamarin• Corona

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

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
Page 37: 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

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

Build Process, Times X Apps

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

{ Backend }

Page 40: Joomla as a mobile App backend - ideas, examples and experiences
Page 41: 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

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

We chose

(of course)

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

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

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

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

Backend UI

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

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

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

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

{ CI & DevOps}

Page 51: Joomla as a mobile App backend - ideas, examples and experiences
Page 52: 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

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

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

{ Lessons }

Page 55: Joomla as a mobile App backend - ideas, examples and experiences
Page 56: 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

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

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

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

{ 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
Page 61: Joomla as a mobile App backend - ideas, examples and experiences

{ Thanks }@AndyGasman

@ssofb

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