Этот список Android-приложений с открытым исходным кодом может пригодиться вам, если вы уже поняли все необходимые концепции разработки и думаете, что готовы работать над приложением, которое соответствует отраслевым стандартам. То есть приложением с хорошей архитектурой, масштабируемым и поддерживаемым в долгосрочной перспективе.
Вот список open source приложений, которые вам стоит изучить, чтобы понять как от концепций перейти к настоящим продуктам.
1. Android Architecture Blueprints v2
Это официальное приложение Google, которое демонстрирует использование некоторых ключевых компонентов Jetpack для создания устойчивого приложения. Это хорошая отправная точка для понимания того, как создавать архитектуру приложения.
- Язык: Kotlin
- Архитектура: MVVM
- Инъекция зависимостей: Dagger
- Навигация: Jetpack Navigation
- Юнит-тесты: JUnit and Espresso
- Исходники: https://github.com/android/architecture-samples
2. Plaid 2.0
В первой версии Plaid (созданный в 2014 году) был приложением Ника Бутчера, где он демонстрировал, как материальный дизайн и анимации могут улучшить приложение для Android. После нескольких лет улучшений приложение Plaid пришло к тому, что стало эталонным приложением и в 2019 году Ник переместили репозиторий Plaid в официальный репозиторий Google. Вот статья, объясняющая это.
Plaid 2.0 все еще находится в стадии интенсивной разработки, что дает вам возможность узнать, как приложение переносится на современную архитектуру и Kotlin.
- Ключевые особенности: материальный дизайн, темы, темный режим, многомодульность, анимации
- Язык: Kotlin
- Архитектура: MVVM
- Инъекция зависимостей: Dagger
- Навигация: Plain (на интентах)
- Юнит-тесты: JUnit и Espresso
- Исходники: https://github.com/android/plaid
3. Sunflower
Это еще одно официальное приложение Google, которое демонстрирует множество компонентов Jetpack в одном приложении. Это простое приложение, которое отлично подходит для обучения.
- Ключевые особенности: темный режим, анимации, Room (база данных), WorkManager
- Язык: Kotlin
- Архитектура: MVVM (LiveData, ViewModel, Lifecycle, Data Binding)
- Инъекция зависимостей: Dagger
- Навигация: Jetpack Navigation (Single Activity)
- Юнит-тесты: JUnit и Espresso
- Исходники: https://github.com/android/sunflower
4. CatchUp
Это приложение агрегирует статьи и посты с различных сайтов, таких как Hackernews, Medium, Reddit, Slashdot, Dribble, Uplabs и так далее. Это новое приложение от Зака Свирса, который потратил значительное время на его разработку. Архитектура приложения основана на приложениях Plaid и U+2020. CatchUp активно разрабатывается, вы можете клонировать и собрать локально, чтобы опробовать его работу.
Обратите внимание, что это довольно большое и сложное приложение, которое хорошо сделано и содержит много передовых техник. Так что, если вы новичок, я бы отложил его рассмотрение до конца вашего обучения ^ _ ^
- Ключевые особенности: темный режим, анимации, Advanced Dagger
- Язык: Kotlin
- Архитектура: мне неизвестна, надо изучить
- Инъекция зависимостей: Dagger
- Навигация: Basic (интенты)
- Юнит-тесты: JUnit
- Исходники: https://github.com/ZacSweers/CatchUp
5. Showcase
Это еще один пример приложения сообщества, который я недавно обнаружил. Приложение разработано Игорем Войдой, автором книги «Android-разработка с Kotlin». Приложение демонстрирует множество лучших практик.
- Ключевые особенности: Kotlin и корутины, Gradle KTS, статический анализ кода
- Язык: Kotlin
- Архитектура: Clean Architecture
- Инъекция зависимостей: нет (вручную)
- Навигация: Jetpack Navigation
- Юнит-тесты: JUnit
- Исходники: https://github.com/igorwojda/android-showcase
Почетное упоминание
Вот еще несколько проектов, которые вы можете изучить на досуге для понимания современных реалий Android-разработки: