- Smaller build times - Build times can be as low as ~10-20 seconds for smaller modules - New Features: - Ability to replace & easily introduce new modules - Feature X, Feature Y - Tech debt: - More isolated code - Open possibility of code reuse - Minimize maintenance cost Why? 28
1 full screen. (bookingGo, BP, feature, etc.) - appServices Any logic that should/can be shared between presentation layers. (common UI components, horizontal teams, dataModels, etc.) - coreServices Basics. Things that can be considered to reused in other apps (analytics, localization, network, iconFont) 29
images assistant bookingGo System Core services modules App services modules Presentation modules commons iconfont crashlytics analytics reservation Interface Quality library, localization Core libraries: networking, analytics, etc. network service A Foundations service B A brief overview of our modules service C UGC data UGC components Genius components survey 30 service D service E
price images assistant bookingGo debugFeatures search System Core services modules App services modules Presentation modules commons iconfont crashlytics analytics Service A Module ABC IQ library + localization Core library: networking, squeaks, ET, etc. network GA Debug Booking foundations collections functions Your module doesn’t depend on it - no need to build Your module doesn’t depend on it - no need to build Build just your dependencies BookingGo 36
development times - easier to spot problems when you have 10-100 files instead of 10000…. - Have your own SLAs: X lint warnings, unit tests coverage, UI tests coverage... 42