Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for...

Preview:

Citation preview

Developing the Open Days mobile appITLT – December 13, 2019

Alex Iribarren, Harris Tzovanakis

Goals

• Help visitors make the most of their visit• What to see & do• How to move around• How to get here

• Offline first, but allow updates when online• Waiting times, point status• Organizer messages, emergency notifications

• Cross-platform & bilingual

13/12/2019 ITLT – Developing the Open Days mobile app 2

13/12/2019 ITLT – Developing the Open Days mobile app 3

13/12/2019 ITLT – Developing the Open Days mobile app 4

13/12/2019 ITLT – Developing the Open Days mobile app 5

App Stats

• Total number of users: 26,000 (1 out of 3 visitors)

• Total number of favourites: 50,000

• Total app interactions: 6,300,000

• Total data updates (waiting times & messages): 5,300

• Ratings: 4.8/5 (Android, 42

ratings), 4.4/5 (iOS, 21 ratings)

Basic Building Blocks

• React Native– Cross-platform framework for

developing mobile apps with React (JavaScript)

• Mapbox– Mapping library with RN bindings

• PouchDB– Data storage and synchronization

13/12/2019 ITLT – Developing the Open Days mobile app 6

Server Architecture

13/12/2019 ITLT – Developing the Open Days mobile app 7

OD Flow CouchDBCouchDB Cluster

Internal

Google Firebase

Notifications

(Some) Lessons Learnt● No plan survives first contact with the enemy

– Really difficult to create realistic load– CouchDB Cluster created more problems than it solved– OpenShift/Kubernetes created an additional level of uncertainty

● Optimizing React Native performance is really hard● There may be a RN component, but it may not be a good one

– Mapbox component old and buggy, had to fork many others

13/12/2019 ITLT – Developing the Open Days mobile app 8

Repos

• App: https://gitlab.cern.ch/opendays/opendays2019-app

• OpenShift templates: https://gitlab.cern.ch/opendays/openshift-appds

• API Server: https://gitlab.cern.ch/opendays/openshift-appds/tree/master/ingestion

• Scraping tools: https://gitlab.cern.ch/opendays/opendays2019-tools

• Web page scrape: https://github.com/alexiri/about_pages

• Various forked components:• https://github.com/alexiri/react-native-mapbox-gl• https://github.com/alexiri/react-native-image-viewer• https://github.com/alexiri/react-native-immutable-list-view• https://github.com/alexiri/react-native-modal-dropdown• https://github.com/alexiri/react-native-parallax-scroll-view

13/12/2019 ITLT – Developing the Open Days mobile app 9

New users acquisition

13/12/2019 ITLT – Developing the Open Days mobile app 11

● First social media push for the app: 6th● Email to all ticket holders: 11th, 12th

13/12/2019 ITLT – Developing the Open Days mobile app 12

Unique active users over time

13/12/2019 ITLT – Developing the Open Days mobile app 13

Users by Country

User Retention

13/12/2019 ITLT – Developing the Open Days mobile app 14

People did their homework before the visit

User Characteristics

13/12/2019 ITLT – Developing the Open Days mobile app 15

OpenShift Metrics

13/12/2019 ITLT – Developing the Open Days mobile app 16

RAM

CPU

CERN vs External users

13/12/2019 ITLT – Developing the Open Days mobile app 17

Recommended