GalwayBus
GalwayBus — это пример Kotlin Multiplatform (KMP) проекта, который отображает информацию об автобусных маршрутах в Голуэе (Ирландия). Приложение использует Jetpack Compose на Android и SwiftUI на iOS, демонстрируя возможности KMP для создания кроссплатформенных мобильных приложений.
Примечание: Если вы находитесь не в Голуэе, нажмите на иконку дома в заголовке, чтобы центрировать карту на городе и увидеть актуальные данные.
Возможности
- Отображение автобусных маршрутов на карте Google Maps.
- Поддержка Android (Jetpack Compose) и iOS (SwiftUI).
- Использование общего модуля
ShareCode для бизнес-логики и работы с сетью.
Установка и запуск
- Клонируйте репозиторий:
git clone https://github.com/joreilly/GalwayBus.git
- Откройте проект в Android Studio или IntelliJ IDEA.
- Убедитесь, что у вас установлены необходимые SDK и инструменты для Kotlin Multiplatform.
- Для работы с картами Google Maps требуется задать переменную окружения
GOOGLE_API_KEY или обновить её значение в файле build.gradle.
Конфигурация
- Google Maps API: Приложение использует Google Maps SDK. Укажите ваш API-ключ через переменную окружения
GOOGLE_API_KEY или измените соответствующую строку в build.gradle.
- Платформы: Проект поддерживает сборку для Android, iOS и macOS.
Используемые технологии и библиотеки
- Kotlin — основной язык разработки.
- Kotlin Coroutines — для асинхронных операций.
- Kotlinx Serialization — для сериализации данных.
- Ktor Client — для HTTP-запросов.
- Android Architecture Components — для архитектуры Android-приложения.
- Koin — для внедрения зависимостей.
- Jetpack Compose — UI для Android.
- Maps Compose — интеграция Google Maps с Jetpack Compose.
- SwiftUI — UI для iOS.
- KMP-NativeCoroutines — для работы с корутинами из Swift.
- Multiplatform Settings — для хранения настроек на разных платформах.
Примеры использования
Android (Jetpack Compose)
После запуска приложения на Android вы увидите карту с автобусными маршрутами. Приложение автоматически загружает данные и отображает их на карте.
iOS (SwiftUI)
На iOS интерфейс построен с помощью SwiftUI, но бизнес-логика и работа с сетью выполняются в общем KMP-модуле.
Дополнительные ресурсы
Автор проекта написал несколько статей о своём опыте использования KMP:
Другие примеры KMP-проектов
Автор также создал ряд других проектов, демонстрирующих возможности Kotlin Multiplatform:
Лицензия
Проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
Комментарии
Комментариев пока нет. Будьте первым.