Skip to content

beeline09/HomeWeatherClock

Repository files navigation

Мультиплатформенное приложение цифровых часов с погодой и производственным календарём

For english-speak users please use Readme_en.MD

Идея создать такое приложение возникла достаточно давно, т.к. дома копится много устаревшей техники, которую жалко выбросить, потому что она все еще работает. Так почему же не повесить какой-нибудь старый планшет на стенку, чтобы он выводил полезную информацию?

Поддерживаемые платформы

  • Android API 21+
  • Apple. iOS, iPadOS, macOS (версия для iPad), VisionOS
  • JVM Desktop. Windows, macOS, Linux

Для разработки приложения использовались следующие технологии:

  • Поход в сеть за погодой и производственным календарём. Использовался ktor-client
  • Кэширование данных о календаре и погоде в БД. SqlDelight
  • Локализованные строки для русского и английского языков, шрифты и raw файлы. ComposeMultiplatformResources ( Alpha)
  • Асинхронная загрузка изображений. Kamel
  • Навигация. Voyager
  • kotlinx.serialization
  • kotlinx.datetime
  • kotlinx.coroutines
  • DI построен на Koin
  • Хранение настроек с помощью Kstore
  • Для JVM Desktop использовалась библиотека VLC for JAVA
  • Работа с файлами осуществлялась с помощью expect/actual. На Android и iOS реализация нативная, а вот для JVM использовалась библиотека Java AppDirs

Хоть оно достаточно простое, но это моё первое приложение подобного рода, где я сразу изучил как Compose, так и мультиплатформу в целом, и смог связать с ней разные технолгии, необходиме для разработки подобного приложения.

Надеюсь, что этот проект поможет многим начинающим с некоторыми трудностями, с которыми они непременно столкнуться в такой молодой штуке, как Compose Multiplatform.

Чтобы оценить возможности приложения, достаточно взглянуть на скриншот настроек, которые вызываются по клику на часы:

Чтобы запустить приложение на соответствующей платформе, воспользуйтесь официальной инструкцией KMM

Android

To run the application on android device/emulator:

  • open project in Android Studio and run imported android run configuration

To build the application bundle:

  • run ./gradlew :composeApp:assembleDebug
  • find .apk file in composeApp/build/outputs/apk/debug/composeApp-debug.apk

Desktop

Run the desktop application: ./gradlew :composeApp:run

iOS

To run the application on iPhone device/simulator:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages