Awesome
Effective Android UI
🔝 Top sponsors 🔝
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
Libraries used on the sample project
Developed By
- Pedro Vicente Gómez Sánchez - pedrovicente.gomez@gmail.com
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.