PixelWanker накладывает измерительную сетку поверх любого приложения. Можно выбрать размер ячейки от 4 до 400 px/dp и базовый цвет линий (белый, чёрный, зелёный, красный). Дополнительно включается второй цвет, который рисуется «двойной» линией рядом с основной — можно выбрать отсутствие второго цвета или любой из вариантов: белый, чёрный, зелёный, красный, жёлтый, синий. Сетка состоит из вертикальных и горизонтальных полос, их количество зависит от выбранного размера ячейки. В оверлее есть быстрые кнопки скрытия сетки, смещения по шагу и выхода. Также доступен список установленных приложений — откройте карточку и запустите приложение вместе с сеткой.
- **Использовал для написания кода chatgpt, Codex.
- Язык и сборка: Kotlin 2.2, Java 17, Gradle (Kotlin DSL).
- UI: Jetpack Compose + Material/Material3, собственная тема и компоненты.
- Локализация: 7 языков (русский, английский, испанский, хинди, французский, португальский, японский).
- Навигация: Navigation Compose.
- Асинхронность и состояние: Kotlin Coroutines, StateFlow, ViewModel.
- Работа с разрешениями: Accompanist Permissions, Peko.
- Изображения: Coil.
- Эффекты UI: Haze (blur).
- Системный слой: AndroidX, overlay через
WindowManager+TYPE_APPLICATION_OVERLAY. - Хранение настроек: SharedPreferences (GridSettingsStore).
- Single-Activity: входная точка
MainActivity, весь интерфейс в Compose. - MVVM: экраны используют
ViewModel, состояние передаётся черезStateFlow, события обрабатываются в UI-слое. - Repository слой:
InstalledAppsRepositoryизолирует работу сPackageManagerи отдаёт модели домена. - Навигация по экранам:
NavGraphна базе Navigation Compose. - Сервис оверлея:
PixelWankerOverlayServiceсоздаёт и управляет сеткой черезWindowManager, а также кнопками управления (сдвиг, скрытие, выход). - Хранилище настроек сетки:
GridSettingsStoreсохраняет параметры сетки и восстанавливает их при запуске.
https://play.google.com/store/apps/details?id=com.pavlovalexey.pavlovAlexeySandbox
- Jenkins: в репозиторий
Jenkinsfileс базовыми Android/Gradle проверками. - Базовый пайплайн публикует JUnit XML и отчёты из
build/reportsкак артефакты. - Jenkins проверяет то же самое, что и локальный JUnit