Brifing

Revisiting the JET iOS Modular Architecture in 2026

The evolution of modular architecture in iOS development and new solutions.

Alberto De Bortoli2 min

1The Beginning of Modular Architecture

When we introduced modular architecture at Just Eat in 2019, it was still a novel concept in iOS development. The need to unify country apps onto a single platform and apply Conway's Law drove this approach. The modular architecture took shape after three years of iteration.

2The Resilience of Core Rules

The core rules of the 2019 model remained unchanged for six years. Dependencies between modules had to be unidirectional and acyclic. Feature modules could not depend on each other, and each module had to have a deep structure with a narrow interface.

3The Role of Demo Apps

Every module having its own demo app was a critical practice for improving API design and providing quick feedback. This approach greatly facilitated the development process.

4The CountdownTimer Problem

In 2025, a UI component called CountdownTimer couldn't find a place in the existing model. This component was used by both the Checkout and Restaurant modules but didn't fit the existing rules. This issue revealed a conceptual ambiguity in the model.

5The Cross-Domain Proposal

A colleague proposed a new layer called cross-domain, sitting between domain and shared. Components like CountdownTimer were moved to this layer, and rules were managed via a YAML file.

6The Issue with Positional Labels

The cross-domain layer labeled components based on their position rather than their purpose. For example, if CountdownTimer were used by only one module, it would be moved back to the domain layer. This showed the categorization was meaningless.

7Purpose-Based Categorization

The 2026 model categorizes components by their purpose rather than their position. This approach ensures the dependency graph is a result of the rules. Five main categories were defined: App, Core, Shared, Domain, and Third-Party.

8First-Party Categories

The App category defines the main structure of the application. The Core category includes fundamental functionalities. The Shared category covers utility tools used by multiple modules. The Domain category contains feature modules.

9Third-Party Packages

The Third-Party category includes external dependencies. These packages extend the application's functionality but are kept separate from first-party modules.

10Advantages of the New Model

Purpose-based categorization allows for more meaningful organization of modules. This provides clearer understanding and less complexity in the development process.

11Future Flexibility

The 2026 model offers a flexible structure to adapt to future needs. This enhances the application's scalability and sustainability.

12Conclusion and Importance

The 2026 refresh of the JET iOS modular architecture showcases the evolution of modular architecture. Purpose-based categorization enables more effective management in the development process and prepares for future challenges.

Original article: Alberto De Bortoli — 2026'da JET iOS Modüler Mimarisine Yeniden Bakış