Multiplatform payments & sermon streaming apps(Android, iOS & iPadOS) for Momentum Church in Indiana. Built in Kotlin Multiplatform Mobile(KMM) with SwiftUI & Jetpack Compose, the apps allow users to make payments to the church, stream past sermons, edit & update account information. Persists data locally with SQLDelight and Remote with Postgres via a Go backend. The apps are architected to emphasize code sharing between Android, iOS & iPadOS, so all core business logic written in the SDK, Android, iOS & iPadOS only contain presentation logic, viewmodels and tests.
- add to your local.properties your GitHub email and a login token this downloads my Firebase authentication wrapper library
GITHUB_EMAIL=YOUR_EMAIL GITHUB_TOKEN=YOUR_TOKEN
The app's are available for download on the app store & playstore for Android & iPhone
Momentum Church: Indiana - Payments & Streaming(Android, iOS & iPadOS) | |
---|---|
✅ iOS & iPadOS: 10+ Five Star Reviews
✅ Android: 10+ Five Star Reviews
Project Structure | Targets |
Kotlin MultiPlatform Mobile | Android, iOS & iPadOS |
Momentum SDK(MultiPlatform) | |
SQLDelight | |
Ktor Http Client | |
Cache4K | |
Koin | |
Firebase Auth | |
Multiplaform Settings | |
Kotlin Serialization | |
Stately | |
Android | iOS & iPadOS |
Jetpack Compose | SwiftUI |
Stripe | Stripe |
Firebase | Firebase |
LottieAnimations | LottieAnimations |
Exoplayer | AVFoundation |
Koin | TinyDi |
Firebase Messaging | Firebase Messaging |
StateFlow |
The project is architected using Clean Architecture
, the SDK is architected using MVC & Usecases
it contains all core business objects/logic. The apps are architected using MVVM
. Each ViewModel depends on a controller(Interface/Protocol), and with Dependency Injection upon creation of a ViewModel a concrete implementation is passed to ViewModel that conforms to the corresponding controller.
Lanuch Screen | Offer Screen | SignUp Screen |
SignIn Screen | Payment Summary Screen | Stripe |
Profile Screen | Transaction Screen | Sermons |
Sermon Player | ||
Lanuch Screen | Offer Screen | SignUp Screen |
SignIn Screen | Payment Summary Screen | Stripe |
Profile Screen | Transaction Screen | Payment Success |
Sermons | Sermon Player | |