open days mobile app€¦ · basic building blocks •react native – cross-platform framework for...

17
Developing the Open Days mobile app ITLT – December 13, 2019 Alex Iribarren, Harris Tzovanakis

Upload: others

Post on 24-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

Developing the Open Days mobile appITLT – December 13, 2019

Alex Iribarren, Harris Tzovanakis

Page 2: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Page 3: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Page 4: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Page 5: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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)

Page 6: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Page 7: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

Server Architecture

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

OD Flow CouchDBCouchDB Cluster

Internal

Google Firebase

Notifications

Page 8: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

(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

Page 9: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Page 10: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with
Page 11: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Page 12: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Unique active users over time

Page 13: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

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

Users by Country

Page 14: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

User Retention

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

People did their homework before the visit

Page 15: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

User Characteristics

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

Page 16: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

OpenShift Metrics

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

RAM

CPU

Page 17: Open Days Mobile App€¦ · Basic Building Blocks •React Native – Cross-platform framework for developing mobile apps with React (JavaScript) •Mapbox – Mapping library with

CERN vs External users

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