GitXplorerGitXplorer
a

architecture-samples

public
44673 stars
11696 forks
203 issues

Commits

List of commits on branch main.
Unverified
965314f71955be0a5223837791bbf2f9ca8655b8

Apply suggestions from code review

JJoseAlcerreca committed a month ago
Unverified
63e818919302aac1a069292c999e171d506cec38

Only run :app cC

JJoseAlcerreca committed a month ago
Unverified
613b9b6c5aef8d8f77d9626ce2b9bb2d92878295

Changes jvmargs

JJoseAlcerreca committed a month ago
Unverified
979909ca5cf5966b6de54a9b5ea8c0d6cff020a1

Removes extra workflow

JJoseAlcerreca committed a month ago
Unverified
7f157fcbb004600af13e2060c31f035aa7dbc55a

Fixes issues and updates to M3

JJoseAlcerreca committed a month ago
Unverified
4f738c70ec220212b067316370311faf4d8d762b

Update libs.versions.toml Sdk 35

JJoseAlcerreca committed a month ago

README

The README file for this repository.

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:

  • User Interface built with Jetpack Compose
  • A single-activity architecture, using Navigation Compose.
  • A presentation layer that contains a Compose screen (View) and a ViewModel per screen (or feature).
  • Reactive UIs using Flow and coroutines for asynchronous operations.
  • A data layer with a repository and two data sources (local using Room and a fake remote).
  • Two product flavors, mock and prod, to ease development and testing.
  • A collection of unit, integration and e2e tests, including "shared" tests that can be run on emulator/device.
  • Dependency injection using Hilt.

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?

  • A template. Check out the Architecture Templates instead.
  • A UI/Material Design sample. The interface of the app is deliberately kept simple to focus on architecture. Check out the Compose Samples instead.
  • A real production app with network access, user authentication, etc. Check out the Now in Android app instead.

Who is it for?

  • Intermediate developers and beginners looking for a way to structure their app in a testable and maintainable way.
  • Advanced developers looking for quick reference.

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 git@github.com: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.