arrow_back Applying Microservice Architecture Principles to split large iOS monolith app codebase
The Art of Scaling Mobile Apps - Tips, Tricks and Strategies learned on App with 20M+ Downloads
Submitted by Amiruddin Nagri (@amir) on Wednesday, 10 August 2016
GO-JEK is Indonesia’s largest startup, growing 900X in the 18 months since launch. GO-JEK’s platform powers the Indonesian equivalents of Ola, PayTM, Swiggy, Grophers, Zomato, Dunzo and UrbanClap - all using a SINGLE app, and at comparable scale. GO-FOOD alone already does more daily orders than all Indian food tech startups combined.
GO-JEK challenges are unique, some of them are -
- Parallel development on diverse set of products
- 50+ mobile developers
- Keeping the Architecture consistent
- Maintaining the quality, stability, security, UX etc.
- People, people, people
The talk will focus on tips & tricks learned scaling up Go-JEK 900x, and unique strategies devised to keep up the quality, stability and continuous parallel development. We will share the tools & processes that helped us to keep moving forward, to organizing and scaling teams to streamline communication.
- 20M+ downloads
- 12+ Products
- 20+ Teams (backend + frontend)
- 20M+ Bookings in June alone
- Agile, Scrum, Just Do It !
- JIRA, Trello, Story Cards
- Must tools for mobile app BA = Zeplin, Apiary, Postman, Swagger
- Android/iOS Architecture using MVP, MVVM, Rx, RAC, VIPER
- Code Quality - Code Conventions, Unit, Instrumentation, Activity, Functional Tests, Espresso, Appium, Cucumber, Jacoco, Coverage
- Build Tools - advance tips & trick on Gradle, Fastlane, Fabric Beta, TestFlight
- Realtime Monitoring - advance tips & tricks on New Relic, Crashlytics, Mixpanel, Firebase
- Parallel Development - Team Branches, Builds, Deployment, Distribution, Feature Flag, Build Flags, Remote Config Flags, Percentile Rollout, Remote Kill
- Jenkins, Jenkins, Jenkins …
- GMail, GDocs, Evernote, Calendar, JIRA, Confluence, Slack, Whatsapp, Hangouts, GoTo
- Git, Git Flow, Feature branches, Team branches
- 2 week release cycles
- Alpha/Dog-Food releases
- Final releases
Other Tips & Tricks
- Realtime Feedback Channels = Crashlytics, Play+App Store Reviews+Ratings, Twitter, Facebook, Datadog, Mixpanel
Amir at core is a Constant Learner, and currently VP of Mobile Engineering at GO-JEK. With over 10+ yrs of experience, most of which was spent at ThoughtWorks, he likes to code and gets excited to see it deployed to production. He has played a wide variety of role from Java/Ruby backend developer to busted Android/iOS bootstrap developer entrepreneur.
He will be co-presenting it with Salis, who is a fellow Android Developer at GO-JEK. He is very passionate about developing Android Apps and is eager to explore Android and beyond.