Skip to content
Sample project created to show some of the best Android practices to work in the Android UI Layer. The UI layer of this project has been implemented using MVP or MVVM (without binding engine) to show how this patterns works. This project is used during the talk "EffectiveAndroidUI".
Branch: master
Clone or download
hugoangeles0810 and pedrovgs Fix #23 error inflating in ChapterRenderer (#28)
* Fix #23 error inflating in ChapterRenderer

* Reformat code
Latest commit 605c107 Jun 28, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Fix #23 error inflating in ChapterRenderer (#28) Jun 28, 2017
art
config Fix FindBugs settings, with one issue pending. Jun 23, 2016
gradle/wrapper Update Android Gradle Plugin from 0.13.0 to 1.0.1 to fix issue #5 Jan 18, 2015
.gitignore Update .gitignore and add gradle wrapper files Aug 21, 2014
.travis.yml Fix Travis yml. Jun 23, 2016
LICENSE.txt Add apache v 2 license file Jun 25, 2014
README.md Update README.md May 12, 2016
build.gradle Update Android Gradle Plugin from 0.13.0 to 1.0.1 to fix issue #5 Jan 18, 2015
gradle.properties Create empty project with Android gitignore and Android checkstyle Jun 14, 2014
gradlew Update .gitignore and add gradle wrapper files Aug 21, 2014
gradlew.bat Update .gitignore and add gradle wrapper files Aug 21, 2014
settings.gradle Create empty project with Android gitignore and Android checkstyle Jun 14, 2014

README.md

Effective Android UI Build Status Android Arsenal

Sample project created to reinforce some of the main concepts described in the tech talk "Effective Android UI".

In this repository you are going to find some interesting samples like:

  • MVP and MVVM (without data binding engine) samples.
  • How to use fragments.
  • How to use Dagger to implement dependency injection.
  • Use resource qualifiers to change the layout used in different screen sizes.
  • Use resource qualifiers to change the layout used in different screen densities.
  • Use resource qualifiers to change the layout in different Android version.
  • How to use styles and themes.
  • How to communicate fragments in the same activity.
  • Butterknife library usage to avoid UI duplicated code.
  • Uniform naming for Android resources.
  • How to use Navigator or ActionCommands to implement the navigation inside the application.
  • Use resource custom qualifiers to split resource files by domain.
  • Different layout usage: RelativeLayout, LinearLayout, FrameLayout.
  • Usage of merge, include and view stub.
  • Correct ListView implementation with view recycle using Renderers.
  • Interactor implementation described in the talk "Software Design Patterns on Android".
  • Usage of Dagger to implement two different scopes: Application scope and Activity scope.

Implementation description

EffectiveAndroid UI Video - Spanish

EffectiveAndroid UI Slides - English

Screenshots

Demo Screenshot 1 Demo Screenshot 2 Demo Screenshot 3

Libraries used on the sample project

Developed By

Follow me on Twitter Add me to Linkedin

License

Copyright 2014 Pedro Vicente Gómez Sánchez

Licensed 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.
You can’t perform that action at this time.