
What is Blackbox?
A lightweight UI framework that includes a set of architecture tools and approaches for building scalable, fully multiplatform applications (iOS, Android, Desktop) by leveraging Compose Multiplatform.
Motivation
The primary objective of the framework is to ensure scalability of the project, providing high reusability of code hierarchies by decoupling them from each other. This can be especially beneficial for large projects that support parallel development by different teams. For small projects or MVP’s, the framework provides tools, facilitating rapid development by enabling such projects to be scale-ready right from the start.
This is achieved by breaking the application logic down into separate independent parts called black-boxes. Each black-box has a simple and strictly defined interface that hides the implementation from external context. Each black-box can be seen as a sub-application that may be used separately from the app context.
To learn more about concepts, refer to wiki documentation.
Features
- Scalability by breaking an application down into independent components (aka black-boxes) with a simple interface that hides implementation details from the outer context.
- High reusability of the code hierarchies: feature modules, navigation flows and views.
- Easy project modularisation. Black boxes can be easily cohered into independent feature modules within a specific domain. The modules can be easily integrated into existing projects.
- Fully multiplatform UI and business logic, no platform-specific knowledge is required. Supported targets: Android, iOS, Desktop, Web.
Benefits for Android developers
- No iOS and Swift knowledge is required.
- 100% shared UI and business logic with minimum platform specificity.
- Entirely Single Activity approach, without making use of multiple Fragment and Activities.
- Lifecycle aware components and surviving configuration changes.
- Edge-to-edge support.
Benefits for iOS developers
- Only basic Kotlin knowledge. No Android platform knowledge is required.
- Single UIViewController as an entry point.
- Scene based state preservation support.
Setup
Please refer to Setup wiki page.
Sample app
To get familiar with the concept it is encouraged to referer to sample/Movie. The app contains typical use-cases implemented with respect to Blackbox principles. Such as: project modularisation, feature decoupling, complex navigation scenarios, complex Compose Multiplatform views and many more.
Component glossary.