Skip to content

Android, iOS & iPadOS payments & video streaming apps built w/ SwiftUI & Jetpack Compose, the apps persist data locally w/ SQLDelight and Remote w/ Prostgres, Payments w/ Stripe and Caching

License

Notifications You must be signed in to change notification settings

MwaiBanda/Momentum

Repository files navigation

Momentum

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.

How to run

  1. 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
    

Download Via AppStore or PlayStore

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: 5+ Five Star Reviews
✅ Android: 5+ Five Star Reviews

Dependencies, Targets & Stack

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

Architecture

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. momentum_architecture

Android

Lanuch Screen Offer Screen SignUp Screen
SignIn Screen Payment Summary Screen Stripe
Profile Screen Transaction Screen Sermons
Sermon Player

iOS

Lanuch Screen Offer Screen SignUp Screen
SignIn Screen Payment Summary Screen Stripe
Profile Screen Transaction Screen Payment Success
Sermons Sermon Player

About

Android, iOS & iPadOS payments & video streaming apps built w/ SwiftUI & Jetpack Compose, the apps persist data locally w/ SQLDelight and Remote w/ Prostgres, Payments w/ Stripe and Caching

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published