Skip to content

andrewhamilton0/My_Plants

Repository files navigation

My Plants

My Plants helps you remember to water your plants, ensuring they receive the care they need to thrive. Developed using Kotlin Multiplatform Mobile (KMM), it currently supports Android with an iOS version in progress. Future updates will include a backend to enable online data storage and syncing.


List Screen Detail Screen Edit Screen
Screenshot_20240913-180438 Screenshot_20240913-180433 Screenshot_20240913-180444

Tech used:

Kotlin:
•Coroutines: For asynchronous operations and smooth multitasking.
•Flows & StateFlows: To manage and observe state changes in a reactive way.
•Lambda Functions & Higher-Order Functions: For functional programming paradigms and cleaner code.
•Sealed Classes: To model complex state and event hierarchies.
•Channels & Mutex: For concurrent programming and managing thread safety.
•Kotlinx-Serialization: To handle JSON serialization and deserialization.

Android:
•WorkManager: For handling scheduled tasks and background work.
•Alarm Manager: To set up alarms for watering reminders.
•Intents: For communication between different app components.
•Jetpack Compose: For modern, declarative UI development.
•Baseline Profiles: To optimize app performance by reducing method count.
•JUnit: For unit testing to ensure code quality.

Libraries:
•Coil: For efficient image loading and caching.
•Koin: For dependency injection.
•Ktlint: For Kotlin code formatting and linting.
•SQLDelight: For type-safe SQL database access.

Multiplatform:
•Kotlin Multiplatform Mobile (KMM): For shared code across Android and iOS platforms.
•MOKO Resources & MOKO ViewModels: For managing resources and view models in a multiplatform context.

Architecture:
•MVVM (Model-View-ViewModel): For a clean separation of concerns and maintainable code.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published