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.
Чтобы оценить возможности приложения, достаточно взглянуть на скриншот настроек, которые вызываются по клику на часы:
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
.apkfile incomposeApp/build/outputs/apk/debug/composeApp-debug.apk
Run the desktop application: ./gradlew :composeApp:run
To run the application on iPhone device/simulator:
- Open
iosApp/iosApp.xcprojectin Xcode and run standard configuration - Or use Kotlin Multiplatform Mobile plugin for Android Studio

