Skip to content

Простое Android-приложение, по нажатию на кнопку находит Google Cast устройство и запускает на нем горячее видео по ссылке.

License

Notifications You must be signed in to change notification settings

realism-dev/CastPlay

Repository files navigation

CastPlay - простое Android приложение

Содержит одну Activity с кнопкой по центру, по нажатию на кнопку приложение находит устройство Google Cast в локальной сети и запускает на устройстве воспроизведение видео по ссылке. Приложение разрабатывалось в качестве тестового задания в VK.

Стек технологий:

  • Kotlin — основной язык разработки
  • Kotlin Coroutines — для работы с многопоточностью
  • MVVM — архитектурные паттерны для разделения данных, логики и UI
  • Jetpack Compose - для работы с View-
  • StateFlow / ViewModel — для реактивного обновления UI
  • JUnit4, Robolectric, Mockk - unit-тесты
  • Jacoco - процент покрытия кода unit-тестами
  • Kaspresso, Espresso - UI-тесты

Требования:

  • Android Studio последней версии.
  • JDK 8+ для компиляции проекта.
  • Минимальная версия AndroidAPI 26 (Android 8.0).

Установка и запуск:

1. Клонируйте репозиторий:

git clone https://github.com/realism-dev/castplay.git

2. Откройте проект в Android Studio:

В меню выберите File -> Open и выберите папку с клонированным проектом.

3. Синхронизируйте проект с Gradle:

После того как проект откроется, Android Studio предложит вам синхронизировать Gradle. Нажмите Sync Now.

4. Установите необходимые зависимости:

Проект использует несколько сторонних библиотек, указанных в файле build.gradle. Все они будут автоматически загружены при синхронизации Gradle.

5. Запуск приложения:

Подключите Android-устройство или запустите эмулятор. Нажмите Run в Android Studio.

Запуск тестов:

  • UI-тесты находятся в директории проекта: CastPlay->app->androidTest->kotlin->androidTest
  • Unit-тесты находятся в директории проекта: CastPlay->app->androidTest->kotlin->test[unitTest]

1. Инструментальные(UI) тесты:

  • Run All UI Tests - запуск всех UI-тестов
  • MainActivityTest - тесты для MainActivity
  • CastPlayScreenTest - тесты для Composable-функции CastPlayScreen

2. Unit-тесты:

  • Run All Unit Tests - запуск всех unit-тестов
  • CastUseCaseTest - тестирование бизнес-логики в CastUseCase
  • CastPlayViewModelTest - тестирование viewmodel

3. Unit-тесты с покрытием:

Запускаются аналогично unit-тестам, но нужно выбрать Run->Run имя unit-теста with Coverage в меню Android Studio

Проблемы/вопросы, возникшие в процессе разработки

Тестирование приложения

К сожалению, не удалось найти подходящее устройство-приемник Google Cast, а ценник на рынке ChromeCast MediaPlayer в 10000р совсем не располагает к приобретению. Пробовал решить вопрос через приложения, имитирующие приемники:

Windows 11: X-Mirage, AirServer

устройство обнаруживается, но подключение невозможно

Android 10: CastReceiver, AirReceiverLite

Решили вопрос с тестированием приложения.

Нерелеватная/устаревшая документация

В разработке использовал несколько источников:

About

Простое Android-приложение, по нажатию на кнопку находит Google Cast устройство и запускает на нем горячее видео по ссылке.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages