architecture-samples README

The project's README from github.com/android/architecture-samples. As one markdown file: README.md.

Android Architecture Samples

These samples showcase different architectural approaches to developing Android apps. In its different branches you'll find the same app (a TODO app) implemented with small differences.

In this branch you'll find:

Screenshots

Screenshot

Why a to-do app?

The app in this project aims to be simple enough that you can understand it quickly, but complex enough to showcase difficult design decisions and testing scenarios. For more information, see the app's specification.

What is it not?

Who is it for?

Opening a sample in Android Studio

To open one of the samples in Android Studio, begin by checking out one of the sample branches, and then open the root directory in Android Studio. The following series of steps illustrate how to open the sample.

Clone the repository:

git clone [email protected]:android/architecture-samples.git

Finally open the architecture-samples/ directory in Android Studio.

License

Copyright 2024 Google, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for
additional information regarding copyright ownership. The ASF licenses this
file to you under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.

architecture-samples (android/architecture-samples)

Searching Database…

Что это такое?Это набор примеров одного и того же приложения-списка дел, каждый из которых реализован в отдельной ветке с собственным подходом к архитектуре Android. Цель — показать и сравнить архитектурные паттерны, такие как MVVM с Compose, Hilt и Room.
Это стартовый шаблон, на основе которого можно создать своё приложение?Нет — в README прямо сказано, что это не шаблон, не демонстрация UI/Material Design и не продакшен-приложение с реальной сетью или авторизацией. Это эталонная реализация, посвящённая исключительно архитектуре.
Как открыть один из примеров?Склонируйте репозиторий, переключитесь на ветку с нужным вариантом архитектуры, затем откройте директорию architecture-samples/ как проект в Android Studio.
Нужно ли что-то кроме Android Studio?Нет, достаточно только Android Studio — репозиторий самодостаточен и использует Gradle, так что открытие директории обрабатывает всё остальное.
Как на самом деле устроена архитектура в основной ветке main?Для интерфейса используется Jetpack Compose, навигация построена на Navigation Compose с одной Activity, для каждого экрана есть свой ViewModel, реактивность обеспечивается через Flow и корутины, репозиторий опирается на Room и фейковый удалённый источник, а внедрение зависимостей — на Hilt. Реального сетевого слоя нет.
Почему выбрано именно приложение-список дел?Оно достаточно простое, чтобы быстро разобраться, но при этом достаточно сложное, чтобы показать реальные архитектурные и тестовые решения — именно это и демонстрируют примеры.
Есть ли другие варианты архитектуры, кроме основной ветки main?Да — в других ветках то же приложение TODO реализовано с другими архитектурными подходами, так что можно переключаться между ними и сравнивать их бок о бок.
Есть ли в проекте тесты?Да, в нём есть модульные, интеграционные и сквозные тесты, включая общие тесты, которые запускаются на эмуляторе или устройстве.
Где найти готовый стартовый проект?В README указан отдельный проект «Architecture Templates» для создания реальных приложений, а также «Now in Android» — полноценный продакшен-пример с сетью и авторизацией.
Creator
android
Size
13.1 MB
Stars
45.9K
Updated
CommitJul 17
Age
10y
Commits · 90 Days