SlideShare a Scribd company logo
Angus Fox - @nuxnix
CTO, Piota, @Piotasocial, http://www.piota.co.uk
Director, @Multizone, http://www.multizone.co.uk
Secretary, Social Developers London, @socdevlon
https://uk.linkedin.com/pub/angus-fox/0/b16/457
LondonTitanium User Group
9 June 2015
Background Objectives Solutions Challenges
Conclusions
Questions /
Discussion
Zendesk
ticket
giveaway
 Multizone is an award winning software company providing
 CTO-to-go and mobile app development services for startups and
enterprises working in mobile, social, collaboration and eDiscovery
 Product management using talented community specialists for
development
▪ FirstAutomatedTest system for native phone apps 2004, Symbian)
▪ Our first Mobile Back End as a Service (MBaaS) built in 2008 on Appcelerator
▪ First MBaaS on the UK governmentG-Cloud supplier list
 Piota, is a privately funded early stage startup based in London.
 Idea genesis in 2014
 Piota required native mobile apps for the Education sector.
 Need to scale to support thousands of individually branded mobile
apps each supporting hundreds of users
 First app published December 2014 to App Store and Google Play
 Three dozen now in the stores, not all production yet
 App has to be better
than good
 Don’t build an app that
loads foreign content like
HTML or PDF
 Don’t build a web site on
a phone
 Do make it disruptive
 Do get the right team
 Do build the right
features (that’s the art of
product management
bit)
App Screens
 Home
 News
 Events / Calendar
 Info
 Contacts
 Push notification
 Forms
 Surveys
 Any item can be a push
notification
 Push goes via
Appcelerator cloudAPI
endpoint, mapped to
Apple and Google push
API
 Custom code runs as a
cron job
 And, yes, it does work on
an AppleWatch
 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
 Uses Joomla! Front-end
 EachApp 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
 Use as much of the
core functionality as
possible
 Keep the number of
extensions low
 Make the template
adaptable and
responsive
Paul Ryan, Angus Fox, Bronwyn Goodwin, Andy Gaskell
Not as illustrated 
So we made Apps...lots of ‘em
 Founder, Intensely involved
in school governance, Likes
Apps,Wants to build a
business
 CTO, 30 years in Product
management at Oracle,
Microsoft, HP, Startups
 App Dev: General + UI +Web
 App Dev: General + CI/CD
Delivery
 Web Dev: PHP, JavaScipt,
CSS etc
 Sales and Marketing
Director: Experienced in
education apps
 All remote
 Assembla + Skype, little or no
email
 Weekly conf call – ticket
review
 Monthly meetings
 2 week development cycles,
mostly
 Front end and back-end
working closely
 agile but not Agile
 Auto prioritisation of the
work – no surprises
● simplify development processes for adding new schools via
task automation
● daily builds of app using Continuous Integration (CI)
● automate workflow of app release to beta testers (cross
platform)
● automate workflow for all provisioning steps, including push
notification on ACS
● change app structure to use dynamic data rather than static
configuration
● provide a customer sign up and configuration process
JavaScript
Calabash
Xcode
● App uses single code base with
multiple themes
● Grunt task runner loads correct
tiapp.xml and config.json
● tiapp.xml node package used to
inject common values
● Grunt tasks use same
convention to aid ease of use
o grunt build:school:android,
o grunt build:school:ios,
o grunt build:school
o grunt build
o grunt test:school:android,
o grunt test:school:ios
o etc.
Assembla is used as
Source Code Repo and
Project Collaboration
Tool
Go Server used as CI
server
Merge/Pull request
approvals in assembla
trigger builds on the go
server
● Google PublisherAPI used to deliver .apk
updates, screenshots and meta data updates.
● Screenshot production automated with
Grunt.
● Release to beta track on playstore
● Google Plus community used for alpha
members (invite only)
● fastlane tools used for
iTunes Connect (ITC)
automation
https://fastlane.tools/
● provisioning profiles
created/updated on the fly
using fastlane/sigh
● screenshots created using
fastlane/screenshots and
instruments
● updates can optionally to
testflight release
● cloud enable new ti apps from command line
● fastlane/pem used to automate push
notification certificate creation
● phantomjs/casperjs used to add push
certificates to app on ACS
● App changed to reduce static config settings
with dynamic data
● Appropriate fallback to maintain user
experience
● Give customer facility to choose (limited)
colours and icons
● Generate alloy theme on the fly and apply it
at build time
● Apple and Google regulations for what can
and cannot be automated
● Testflight switch off /Testflight on iTunes
Connect (ITC)
● Appcelerator 4.0 / Platform changes
● Maturity of third party solutions
● Target environments not static
 Initially running on shared hosting, ok for 30
back-ends.
 Moved to a ManagedCloud Server
 New backends created from a backup seed
file.
 Scripted deployment
 A reliable and automated CI build system is
very complex to create
 ManyApp 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
 Develop with the future in mind
 Try not to accumulate technical debt
 App developers are not back end developers
 Ci / Cd is a specialism
 Users are typically quite non-technical, so
keep UI simple - things need to “just work”
 Write a good base API and evolve it
 APIs are just awesome
 “Shell” scripting in JavaScript / Node.js is
quite nice actually
Presentations are available from Slideshare
Slides
http://www.slideshare.net/nuxnix
Commercial Hackathon
Possibly 25-26 July – London - PAID
email me : angusf@piota.co.uk
King's Place, LONDON, UK
https://www.eventbrite.co.uk/e/the-art-of-customer-satisfaction-2015-london-
tickets-16893983359
Email me

More Related Content

What's hot

Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
Ted Chien
 
Roadmap to Development
Roadmap to DevelopmentRoadmap to Development
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
rihannakedy
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
Chris Bailey
 
Google App Engine (Introduction)
Google App Engine (Introduction)Google App Engine (Introduction)
Google App Engine (Introduction)
Praveen Hanchinal
 
AWS re:Invent "The secrets to building and delivering amazing apps at scale"
AWS re:Invent "The secrets to building and delivering amazing apps at scale"AWS re:Invent "The secrets to building and delivering amazing apps at scale"
AWS re:Invent "The secrets to building and delivering amazing apps at scale"
💻 Javier Garza
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
Tee Malapela
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
e-Legion
 
Appcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-DevelopmentAppcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-Developmenth_marvin
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible
 
Ionic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassleIonic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassle
Ionic Framework
 
Flutter
FlutterFlutter
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Prateek Jain
 
Flutter vs React Native | Edureka
Flutter vs React Native | EdurekaFlutter vs React Native | Edureka
Flutter vs React Native | Edureka
Edureka!
 
Offline Storage: Build secure, offline-first apps
Offline Storage: Build secure, offline-first appsOffline Storage: Build secure, offline-first apps
Offline Storage: Build secure, offline-first apps
RachelAshton5
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase Experiences
Isatu Conteh
 
Flutter workshop @ bang saen 2020
Flutter workshop @ bang saen 2020Flutter workshop @ bang saen 2020
Flutter workshop @ bang saen 2020
Anuchit Chalothorn
 
Internet (Intelligence) of Things (IOT) with Drupal
Internet (Intelligence) of Things (IOT) with DrupalInternet (Intelligence) of Things (IOT) with Drupal
Internet (Intelligence) of Things (IOT) with Drupal
Prateek Jain
 
Deploying Apps Heroku
Deploying Apps HerokuDeploying Apps Heroku
Deploying Apps Heroku
Ajit N K
 

What's hot (19)

Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
 
Roadmap to Development
Roadmap to DevelopmentRoadmap to Development
Roadmap to Development
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
 
Google App Engine (Introduction)
Google App Engine (Introduction)Google App Engine (Introduction)
Google App Engine (Introduction)
 
AWS re:Invent "The secrets to building and delivering amazing apps at scale"
AWS re:Invent "The secrets to building and delivering amazing apps at scale"AWS re:Invent "The secrets to building and delivering amazing apps at scale"
AWS re:Invent "The secrets to building and delivering amazing apps at scale"
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
Appcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-DevelopmentAppcelerator Titanium - Hybrid App-Development
Appcelerator Titanium - Hybrid App-Development
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
 
Ionic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassleIonic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassle
 
Flutter
FlutterFlutter
Flutter
 
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
 
Flutter vs React Native | Edureka
Flutter vs React Native | EdurekaFlutter vs React Native | Edureka
Flutter vs React Native | Edureka
 
Offline Storage: Build secure, offline-first apps
Offline Storage: Build secure, offline-first appsOffline Storage: Build secure, offline-first apps
Offline Storage: Build secure, offline-first apps
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase Experiences
 
Flutter workshop @ bang saen 2020
Flutter workshop @ bang saen 2020Flutter workshop @ bang saen 2020
Flutter workshop @ bang saen 2020
 
Internet (Intelligence) of Things (IOT) with Drupal
Internet (Intelligence) of Things (IOT) with DrupalInternet (Intelligence) of Things (IOT) with Drupal
Internet (Intelligence) of Things (IOT) with Drupal
 
Deploying Apps Heroku
Deploying Apps HerokuDeploying Apps Heroku
Deploying Apps Heroku
 

Similar to Building a scalable app factory with Appcelerator Platform

Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
wesley chun
 
Google Cloud Platform Update
Google Cloud Platform UpdateGoogle Cloud Platform Update
Google Cloud Platform Update
Ido Green
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
wesley chun
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2
Olivier Eeckhoutte
 
Manoj singhal resume
Manoj singhal resumeManoj singhal resume
Manoj singhal resume
Manoj Singhal
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
wesley chun
 
presentaion.pptx
presentaion.pptxpresentaion.pptx
presentaion.pptx
mehulmaheshwari3
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
samuel segal
 
Internship Presentation 1 Web Developer
Internship Presentation 1 Web DeveloperInternship Presentation 1 Web Developer
Internship Presentation 1 Web Developer
Hemant Sarthak
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Boydlee Pollentine
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
LetsConnect
 
Resume - Alsey Coleman Miller - iOS Developer
Resume -  Alsey Coleman Miller - iOS DeveloperResume -  Alsey Coleman Miller - iOS Developer
Resume - Alsey Coleman Miller - iOS Developer
Alsey Miller
 
codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010Intland Software GmbH
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Steve Drucker
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015
gjuljo
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
Wee Witthawaskul
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015
Dominique Boutin
 
Internship Presentation 2 Web Developer
Internship Presentation 2 Web DeveloperInternship Presentation 2 Web Developer
Internship Presentation 2 Web Developer
Hemant Sarthak
 

Similar to Building a scalable app factory with Appcelerator Platform (20)

Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
 
Google Cloud Platform Update
Google Cloud Platform UpdateGoogle Cloud Platform Update
Google Cloud Platform Update
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2
 
Manoj singhal resume
Manoj singhal resumeManoj singhal resume
Manoj singhal resume
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
 
presentaion.pptx
presentaion.pptxpresentaion.pptx
presentaion.pptx
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
Internship Presentation 1 Web Developer
Internship Presentation 1 Web DeveloperInternship Presentation 1 Web Developer
Internship Presentation 1 Web Developer
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
Resume - Alsey Coleman Miller - iOS Developer
Resume -  Alsey Coleman Miller - iOS DeveloperResume -  Alsey Coleman Miller - iOS Developer
Resume - Alsey Coleman Miller - iOS Developer
 
codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015
 
Internship Presentation 2 Web Developer
Internship Presentation 2 Web DeveloperInternship Presentation 2 Web Developer
Internship Presentation 2 Web Developer
 

More from Angus Fox

#TapIntoTwitter - London - 15 May 2018
#TapIntoTwitter - London - 15 May 2018#TapIntoTwitter - London - 15 May 2018
#TapIntoTwitter - London - 15 May 2018
Angus Fox
 
Titanium London Lightning Talk - Building Titanium from the source
Titanium London Lightning Talk - Building Titanium from the sourceTitanium London Lightning Talk - Building Titanium from the source
Titanium London Lightning Talk - Building Titanium from the source
Angus Fox
 
London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016
Angus Fox
 
Social Developers London update for Twitter Developers
Social Developers London update for Twitter Developers Social Developers London update for Twitter Developers
Social Developers London update for Twitter Developers
Angus Fox
 
Social Developers London - Facebook F8 and Twitter Developer comparison
Social Developers London - Facebook F8 and Twitter Developer comparisonSocial Developers London - Facebook F8 and Twitter Developer comparison
Social Developers London - Facebook F8 and Twitter Developer comparison
Angus Fox
 
Mz sdl-140331
Mz sdl-140331Mz sdl-140331
Mz sdl-140331
Angus Fox
 
Mz sdl-130917
Mz sdl-130917Mz sdl-130917
Mz sdl-130917
Angus Fox
 
Twitter Update for Social Developers London - May 2013
Twitter Update for Social Developers London - May 2013Twitter Update for Social Developers London - May 2013
Twitter Update for Social Developers London - May 2013
Angus Fox
 
Open social mobile apps increase community involvement in policing and confid...
Open social mobile apps increase community involvement in policing and confid...Open social mobile apps increase community involvement in policing and confid...
Open social mobile apps increase community involvement in policing and confid...
Angus Fox
 
Social Developers London - Twitter Cards Update
Social Developers London - Twitter Cards UpdateSocial Developers London - Twitter Cards Update
Social Developers London - Twitter Cards UpdateAngus Fox
 
Twitter Update for Social Developers London - March 2013
Twitter Update for Social Developers London - March 2013Twitter Update for Social Developers London - March 2013
Twitter Update for Social Developers London - March 2013
Angus Fox
 
Social Developers London - Twitter
Social Developers London - Twitter Social Developers London - Twitter
Social Developers London - Twitter Angus Fox
 
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Angus Fox
 
Tayside Police Mobile App launch presentation
Tayside Police Mobile App launch presentationTayside Police Mobile App launch presentation
Tayside Police Mobile App launch presentation
Angus Fox
 
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
Angus Fox
 
Mz twitter-1.1-sdl
Mz twitter-1.1-sdlMz twitter-1.1-sdl
Mz twitter-1.1-sdl
Angus Fox
 
Mz mps-120704-published
Mz mps-120704-publishedMz mps-120704-published
Mz mps-120704-published
Angus Fox
 
Mz digitalsurrey-120125-published
Mz digitalsurrey-120125-publishedMz digitalsurrey-120125-published
Mz digitalsurrey-120125-published
Angus Fox
 
Devnest 111115
Devnest 111115Devnest 111115
Devnest 111115
Angus Fox
 
Mz bcl9-20111029-published
Mz bcl9-20111029-publishedMz bcl9-20111029-published
Mz bcl9-20111029-published
Angus Fox
 

More from Angus Fox (20)

#TapIntoTwitter - London - 15 May 2018
#TapIntoTwitter - London - 15 May 2018#TapIntoTwitter - London - 15 May 2018
#TapIntoTwitter - London - 15 May 2018
 
Titanium London Lightning Talk - Building Titanium from the source
Titanium London Lightning Talk - Building Titanium from the sourceTitanium London Lightning Talk - Building Titanium from the source
Titanium London Lightning Talk - Building Titanium from the source
 
London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016
 
Social Developers London update for Twitter Developers
Social Developers London update for Twitter Developers Social Developers London update for Twitter Developers
Social Developers London update for Twitter Developers
 
Social Developers London - Facebook F8 and Twitter Developer comparison
Social Developers London - Facebook F8 and Twitter Developer comparisonSocial Developers London - Facebook F8 and Twitter Developer comparison
Social Developers London - Facebook F8 and Twitter Developer comparison
 
Mz sdl-140331
Mz sdl-140331Mz sdl-140331
Mz sdl-140331
 
Mz sdl-130917
Mz sdl-130917Mz sdl-130917
Mz sdl-130917
 
Twitter Update for Social Developers London - May 2013
Twitter Update for Social Developers London - May 2013Twitter Update for Social Developers London - May 2013
Twitter Update for Social Developers London - May 2013
 
Open social mobile apps increase community involvement in policing and confid...
Open social mobile apps increase community involvement in policing and confid...Open social mobile apps increase community involvement in policing and confid...
Open social mobile apps increase community involvement in policing and confid...
 
Social Developers London - Twitter Cards Update
Social Developers London - Twitter Cards UpdateSocial Developers London - Twitter Cards Update
Social Developers London - Twitter Cards Update
 
Twitter Update for Social Developers London - March 2013
Twitter Update for Social Developers London - March 2013Twitter Update for Social Developers London - March 2013
Twitter Update for Social Developers London - March 2013
 
Social Developers London - Twitter
Social Developers London - Twitter Social Developers London - Twitter
Social Developers London - Twitter
 
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
 
Tayside Police Mobile App launch presentation
Tayside Police Mobile App launch presentationTayside Police Mobile App launch presentation
Tayside Police Mobile App launch presentation
 
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
 
Mz twitter-1.1-sdl
Mz twitter-1.1-sdlMz twitter-1.1-sdl
Mz twitter-1.1-sdl
 
Mz mps-120704-published
Mz mps-120704-publishedMz mps-120704-published
Mz mps-120704-published
 
Mz digitalsurrey-120125-published
Mz digitalsurrey-120125-publishedMz digitalsurrey-120125-published
Mz digitalsurrey-120125-published
 
Devnest 111115
Devnest 111115Devnest 111115
Devnest 111115
 
Mz bcl9-20111029-published
Mz bcl9-20111029-publishedMz bcl9-20111029-published
Mz bcl9-20111029-published
 

Recently uploaded

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 

Recently uploaded (20)

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 

Building a scalable app factory with Appcelerator Platform

  • 1. Angus Fox - @nuxnix CTO, Piota, @Piotasocial, http://www.piota.co.uk Director, @Multizone, http://www.multizone.co.uk Secretary, Social Developers London, @socdevlon https://uk.linkedin.com/pub/angus-fox/0/b16/457 LondonTitanium User Group 9 June 2015
  • 2. Background Objectives Solutions Challenges Conclusions Questions / Discussion Zendesk ticket giveaway
  • 3.  Multizone is an award winning software company providing  CTO-to-go and mobile app development services for startups and enterprises working in mobile, social, collaboration and eDiscovery  Product management using talented community specialists for development ▪ FirstAutomatedTest system for native phone apps 2004, Symbian) ▪ Our first Mobile Back End as a Service (MBaaS) built in 2008 on Appcelerator ▪ First MBaaS on the UK governmentG-Cloud supplier list  Piota, is a privately funded early stage startup based in London.  Idea genesis in 2014  Piota required native mobile apps for the Education sector.  Need to scale to support thousands of individually branded mobile apps each supporting hundreds of users  First app published December 2014 to App Store and Google Play  Three dozen now in the stores, not all production yet
  • 4.
  • 5.
  • 6.  App has to be better than good  Don’t build an app that loads foreign content like HTML or PDF  Don’t build a web site on a phone  Do make it disruptive  Do get the right team  Do build the right features (that’s the art of product management bit)
  • 7. App Screens  Home  News  Events / Calendar  Info  Contacts  Push notification  Forms  Surveys
  • 8.  Any item can be a push notification  Push goes via Appcelerator cloudAPI endpoint, mapped to Apple and Google push API  Custom code runs as a cron job  And, yes, it does work on an AppleWatch
  • 9.  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
  • 10.  Uses Joomla! Front-end  EachApp 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
  • 11.  Use as much of the core functionality as possible  Keep the number of extensions low  Make the template adaptable and responsive
  • 12. Paul Ryan, Angus Fox, Bronwyn Goodwin, Andy Gaskell Not as illustrated 
  • 13. So we made Apps...lots of ‘em
  • 14.  Founder, Intensely involved in school governance, Likes Apps,Wants to build a business  CTO, 30 years in Product management at Oracle, Microsoft, HP, Startups  App Dev: General + UI +Web  App Dev: General + CI/CD Delivery  Web Dev: PHP, JavaScipt, CSS etc  Sales and Marketing Director: Experienced in education apps  All remote  Assembla + Skype, little or no email  Weekly conf call – ticket review  Monthly meetings  2 week development cycles, mostly  Front end and back-end working closely  agile but not Agile  Auto prioritisation of the work – no surprises
  • 15. ● simplify development processes for adding new schools via task automation ● daily builds of app using Continuous Integration (CI) ● automate workflow of app release to beta testers (cross platform) ● automate workflow for all provisioning steps, including push notification on ACS ● change app structure to use dynamic data rather than static configuration ● provide a customer sign up and configuration process
  • 17. ● App uses single code base with multiple themes ● Grunt task runner loads correct tiapp.xml and config.json ● tiapp.xml node package used to inject common values ● Grunt tasks use same convention to aid ease of use o grunt build:school:android, o grunt build:school:ios, o grunt build:school o grunt build o grunt test:school:android, o grunt test:school:ios o etc.
  • 18. Assembla is used as Source Code Repo and Project Collaboration Tool Go Server used as CI server Merge/Pull request approvals in assembla trigger builds on the go server
  • 19. ● Google PublisherAPI used to deliver .apk updates, screenshots and meta data updates. ● Screenshot production automated with Grunt. ● Release to beta track on playstore ● Google Plus community used for alpha members (invite only)
  • 20. ● fastlane tools used for iTunes Connect (ITC) automation https://fastlane.tools/ ● provisioning profiles created/updated on the fly using fastlane/sigh ● screenshots created using fastlane/screenshots and instruments ● updates can optionally to testflight release
  • 21.
  • 22. ● cloud enable new ti apps from command line ● fastlane/pem used to automate push notification certificate creation ● phantomjs/casperjs used to add push certificates to app on ACS
  • 23. ● App changed to reduce static config settings with dynamic data ● Appropriate fallback to maintain user experience
  • 24. ● Give customer facility to choose (limited) colours and icons ● Generate alloy theme on the fly and apply it at build time
  • 25. ● Apple and Google regulations for what can and cannot be automated ● Testflight switch off /Testflight on iTunes Connect (ITC) ● Appcelerator 4.0 / Platform changes ● Maturity of third party solutions ● Target environments not static
  • 26.  Initially running on shared hosting, ok for 30 back-ends.  Moved to a ManagedCloud Server  New backends created from a backup seed file.  Scripted deployment
  • 27.  A reliable and automated CI build system is very complex to create  ManyApp 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
  • 28.  Develop with the future in mind  Try not to accumulate technical debt  App developers are not back end developers  Ci / Cd is a specialism  Users are typically quite non-technical, so keep UI simple - things need to “just work”  Write a good base API and evolve it  APIs are just awesome  “Shell” scripting in JavaScript / Node.js is quite nice actually
  • 29. Presentations are available from Slideshare Slides http://www.slideshare.net/nuxnix Commercial Hackathon Possibly 25-26 July – London - PAID email me : angusf@piota.co.uk
  • 30. King's Place, LONDON, UK https://www.eventbrite.co.uk/e/the-art-of-customer-satisfaction-2015-london- tickets-16893983359 Email me

Editor's Notes

  1. Just add water ? Not exactly.
  2. Lots of moving parts in an app