Upload
others
View
5
Download
0
Embed Size (px)
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