This document summarizes Amit Patel's presentation on the state of mobile development and AWS services for building mobile apps. Patel discussed trends like increasing time spent in mobile apps and more enterprise apps being built with web technologies. He then outlined three simple steps for building cloud-enabled mobile apps using AWS Mobile Hub, native SDKs, and the AWS Mobile CLI. Patel demonstrated how the CLI can be used to set up cloud services like user sign-in and highlighted the AWS Amplify library for connecting apps. He also discussed testing web apps and using the Mobile Hub console. In closing, Patel previewed the new AWS AppSync service for building powerful data-driven apps.
30. Founded in 2010. Head quarters in Bologna, Italy
Lyrics API available to third-party music services and
websites
Mobile apps for Android and iOS
Desktop widget (Floating Lyrics) running on
Windows, Mac, and Linux
A new way to enjoy music
35. Musixmatch plugs in 3rd party music players
(Spotify, iTunes, Youtube etc).
Understanding the music consumption
Over a billion data points processed daily, profile user
musical preferences
Semantic analysis and structural analysis for tailored
recommendation (Q1 2018)
36. 30 million active users per month
0
17,500,000
35,000,000
52,500,000
70,000,000
2010 2012 2014 2016
Monthly Active Visitors Download
ASIA
AMERICAS EUROPE
AFRICA
OCEANIA
37. Over 400k requests per minute, low at 200k
Total spending lowered over time
10x increase in the same period (sessions)
70% 71%
62%
58%
2014 2015 2016 2017
The split between EC2/PaaS services changed over time
38. Over 400k requests per minute, low at 200k
Total spending lowered over time
10x increase in the same period (sessions)
70% 71%
62%
58%
2014 2015 2016 2017
The split between EC2 / PaaS services changed over time
Lessons learned: don’t be scared by continuously
re-engineering your product to exploit new
possibilities
40. PROS
Vibrant ecosystem
Development tools, e.g. Expo
Leverage web skills
Easily pluggable in existing apps
Multidevice development: React Native
CONS
Too many options
Versioning problems
Development tools sometimes difficult to tweak
41. PROS
Vibrant ecosystem
Development tools, e.g. Expo
Leverage web skills
Easily pluggable in existing apps
Multidevice development: React Native
CONS
Too many options
Versioning problems
Development tools sometimes difficult to tweak
Our stack: Typescript, ReactXP, NGROK (for creating our own Expo-like experience)
42. Most users move from mobile to
desktop for editing the lyrics
We already support interprocess
communication (Floating lyrics,
deeplinks)
Enabling multidevice experience 1/2
43. Most users move from mobile to
desktop for editing the lyrics
We already support interprocess
communication (Floating lyrics,
deeplinks)
Enabling multidevice experience 1/2
What we needed:
Extending to multiple device requires
a real-time messaging hub
44. Most users move from mobile to
desktop for editing the lyrics
We already support interprocess
communication (Floating lyrics,
deeplinks)
Enabling multidevice experience 1/2
What we needed:
Extending to multiple device requires
a real-time messaging hub
What we tried:
Open Source tools: SignalR or Socket.IO
45. Most users move from mobile to
desktop for editing the lyrics
We already support interprocess
communication (Floating lyrics,
deeplinks)
Enabling multidevice experience 1/2
What we needed:
Extending to multiple device requires
a real-time messaging hub
What we tried:
Open Source tools: SignalR or Socket.IO
Challenges:
Dealing with mobile connection
reliability is hard
48. Enabling multidevice experience 2/2
Installs/launch app
on desktop
(Project Rome)
User starts
on mobile
Player state saved
(AppSync)
49. Enabling multidevice experience 2/2
Installs/launch app
on desktop
(Project Rome)
User starts
on mobile
Player state saved
(AppSync)
State Sync’d to
desktop
(AppSync)
50. Enabling multidevice experience 2/2
Installs/launch app
on desktop
(Project Rome)
User starts
on mobile
Player state saved
(AppSync)
State Sync’d to
desktop
(AppSync)
Bidirectional in the
future
(AppSync)
51. Enabling multidevice experience 2/2
Installs/launch app
on desktop
(Project Rome)
User starts
on mobile
Player state saved
(AppSync)
State Sync’d to
desktop
(AppSync)
Bidirectional in the
future
(AppSync)
Type UserNowPlaying {
user_id: ID! UserPlayerState
guid: String!
protocolUri: String!
}
The custom protocol
URI contains
q_track
q_artist
duration
position
start_time