Session Title: Make your app modular & test only what’s changed
Session Speaker: Mike Gerasymenko | Staff iOS Engineer | Delivery Hero
One of the most popular sessions at this year’s Mobile DevOps Summit 2023 was Mike Gerasymenko’s (Staff iOS Engineer at Delivery Hero) 15-minute session on Making your App Modular and Testing what has Changed. Mike works for the hugely successful food delivery company, Delivery Hero, which is available in 70-something countries worldwide and serves a staggering million+ delivery drivers a month.
Throughout his session, he used real-life iOS examples but emphasized that the principles he discussed are relevant to both iOS and Android. Let’s dive into why his session was so popular!
To watch the entire session on-demand, register here and all sessions are available to playback: https://summit.bitrise.io/page/2783515/register-on-demand
He starts the session by talking about apps and how no matter what category of app you have, your app will need provide some common functionality. He then talks about the functionality actions any and every app has to undertake like ‘logging in or registering’ and ‘entering in your details’. Over time as the company grows, your app gets bigger as more functions are added. Teams are then usually broken down into smaller teams with key focus areas which brings Mike to modularization. With modularization, each team can set and own a set of modules/parts of the app's code.
“Essentially, modular architecture is a software design approach that prioritizes breaking down a program’s functionality into self-contained modules. Each module encompasses all the required components to execute a specific aspect of the desired functionality”. Mike Gerasymenko, Staff iOS Engineer, Delivery Hero
Mike then talks about the specific modular tools on iOS like Swift Package Manager which supports using local packages and is a lightweight package manager. He goes on to explain how it speeds up your PR checks and at the same time, saves on your CI bill and CO2 emissions.
🚀 Bitrise’s Swift Package Manager integration Step lets you easily this package manager to your Bitrise platform.
3 key takeaways from this session:
1. How to modularize apps with SPM
2. Xcode's project and test plan format
3. Selective testing
Register to watch Mike’s entire ‘Make your app modular and test only what’s changed’ session to learn about what tools he uses for modularization in XCode and how modularization enables you to eliminate complete app testing, saving you time by ensuring you’re only testing what’s changed.
Mike has developed and made available an open-source tool called XcodeSelectiveTesting which allows running tests only relevant to the changes. During his session, he gives a tour of this tool and shows how it can be integrated with any modularized project.