Skip to content

Anthony17serrato/Phovo

Repository files navigation

Phovo

Self hosted Photo/Video backup

This is a Kotlin Multiplatform project targeting Android, iOS, Desktop and WASM(WEB) clients. Phovo is intended to be a self hosted cloud storage client that enables seamless access to photos and videos on all compatible target devices. While initially support for 4 clients is planned, if there is strong market demand for this product Wear OS, Android XR, and Android TV may eventually be targeted.

iOS, Android, Browser and Desktop Applications

All applications are developed within a single codebase using Kotlin Multiplatform technology. The UI is implemented using Compose Multiplatform UI framework.

Screenshots

Android

iOS

Desktop

How to build and run

Learn more about Kotlin Multiplatform

Modular Design Strategy

The Phovo project follows the modular design guidelines published by Google for mobile development:

https://developer.android.com/topic/modularization/patterns

As mentioned in the guidelines modularization can be done by feature or by layer. Due to the flexibility of the gradle build system, projects can also adopt a flexible modular design where modularization is done by both feature and layer. A flexible modular design is required for the Phovo project as there are currently 4 target platforms(Android, IOS, Web, Desktop).

  • For cases where a feature is small and all platforms may adopt the same UI, the module in the feature directory will contain UI, Domain, and Data layers
  • For cases where a feature is large and/or specific targets require different UI layer implementations, modularization will be done by both feature and layer.

Troubleshooting WASM issues

When adding new dependencies WASM may require a yarn lock upgrade

./gradlew kotlinUpgradeYarnLock

About

A multiplatform photo/video backup solution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages