The goal of the project is to get first hand experience with building the same mobile app with every available tool and compare them.
Tool | List Screen | Detail Screen | Notes |
---|---|---|---|
Swift | ✅ | ✅ | |
ObjC ARC | ✅ | ✅ | |
ObjC MRR | ✅ | ✅ | |
ComponentKit | ✅ | ✅ | https://whackylabs.com/ios/2018/11/09/hello-component-kit/ |
Flutter | ✅ | ✅ | https://whackylabs.com/flutter/app/cross-platform/2018/12/14/hello-flutter/ |
React Native | ✅ | ✅ | https://whackylabs.com/reactnative/ios/android/js/2024/01/15/hello-react-native-one-more-time/ |
SwiftUI | ✅ | ✅ | |
.NET MAUI | ✅ | ✅ | https://whackylabs.com/maui/ios/android/2024/01/23/hello-maui/ |
Kotlin | ✅ | ✅ | https://whackylabs.com/kotlin/compose/navigation/2024/08/16/jetpack-compose-navigation/ |
React | ✅ | ✅ | https://whackylabs.com/kotlin/compose/navigation/2024/08/16/jetpack-compose-navigation/ |
Ionic | ✅ | ✅ | https://whackylabs.com/js/ionic/ios/android/2024/09/06/hello-ionic/ |
Djinni | ❌ | ❌ | https://whackylabs.com/djinni/cpp/ios/android/2018/11/23/cross-platform-cpp/ |
Boden | ❌ | ❌ | https://whackylabs.com/x-platform/cpp/2019/06/01/cpp-x-platform/ |
The app has 3 screens:
- A loading screen
- A list screen that fetches and draws a list of images (think 2 column UICollectionView)
- A details screen that displays details payload.