Bruno's TODOs list
Another version of the TODO project from Android tutorials to test publication
This app is not meant to be widely published but is rather a dress rehearsal for other already existing project that I have to now update and maintain.
This version is meant to test full build and publish process using a developer signing key (that is without app bundle and without opt in for Google play store signing).
Please feel free to directly contact me in case it is an issue in anyway.
Thus said, the App provide a basic Todo List tool to create, update and manage a list of tasks.
It is an updated fork of the https://github.com/android/architecture-samples repository and share the same Apache 2 licensing, that is that this App is shared on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
All original work is Copyright 2014 - The Android Open Source Project. Modification by @bsinou.
Android Architecture Blueprints is a project to 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:
- Kotlin Coroutines for background operations.
- A single-activity architecture, using the Navigation component to manage fragment operations.
- A presentation layer that contains a fragment (View) and a ViewModel per screen (or feature).
- Reactive UIs using LiveData observables and Data Binding.
- A data layer with a repository and two data sources (local using Room and remote) that are queried with one-shot operations (no listeners or data streams).
- Two product flavors,
mock
andprod
, to ease development and testing (except in the Dagger branch). - A collection of unit, integration and e2e tests, including "shared" tests that can be run on emulator/device or Robolectric.
This project hosts each sample app in separate repository branches. For more information, see the README.md
file in each branch.
Sample | Description |
---|---|
master | The base for the rest of the branches. Uses Kotlin, Architecture Components, coroutines, Data Binding, etc. and uses Room as source of truth, with a reactive UI. |
dagger-android [compare] |
A simple Dagger setup that uses dagger-android and removes the two flavors. |
usecases [compare] |
Adds a new domain layer that uses UseCases for business logic. |
Blueprints v1 had a collection of samples that are not maintained anymore, but can still be useful. See all project branches.
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.
- A UI/Material Design sample. The interface of the app is deliberately kept simple to focus on architecture. Check out Plaid instead.
- A complete Jetpack sample covering all libraries. Check out Android Sunflower or the advanced Github Browser Sample instead.
- A real production app with network access, user authentication, etc. Check out the Google I/O app, Santa Tracker or Tivi for that.
- Intermediate developers and beginners looking for a way to structure their app in a testable and maintainable way.
- Advanced developers looking for quick reference.
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 usecases sample.
Clone the repository:
git clone [email protected]:googlesamples/android-architecture.git
This step checks out the master branch. If you want to change to a different sample:
git checkout usecases
Note: To review a different sample, replace usecases
with the name of sample you want to check out.
Finally open the android-architecture/
directory in Android Studio.
Copyright 2019 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.