u2020 alternatives and similar packages
Based on the "Demo" category.
Alternatively, view u2020 alternatives based on common mentions on social networks and blogs.
-
android-best-practices
Do's and Don'ts for Android development, by Futurice developers -
android-proguard-snippets
Proguard configurations for common Android libraries -
Android-Material-Examples
[Deprecated] Little bites of Material Design -
MovieGuide
Movie discovery app showcasing MVP, RxJava, Dagger 2 and Clean Architecture -
Android-ItemTouchHelper-Demo
Basic example of using ItemTouchHelper to add drag & drop and swipe-to-dismiss to RecyclerView. -
CardSlidePanel
enable users to slide card to the left or right smoothly and continuously -
socket.io-android-chat
A simple chat demo for socket.io and Android -
kotlin-sample-app
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack. -
android-basic-samples
Google Play game services - Android samples -
BlurEffectForAndroidDesign
Sample to show how to implement blur graphical tricks -
android-demo
Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description -
Android-LollipopShowcase
A simple app to showcase some of the cool new cool stuff in Android L. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar -
rx-android-architecture
RxJava architecture library for Android -
AndroidPushNotificationsDemo
A example of an android app that receives push notifications using MQTT. -
Android-WizardPager
Android pager-style wizard flow sample code -
Quality-Tools-for-Android
This is an Android sample app + tests that will be used to work on various project to increase the quality of the Android platform. -
MaterialTransitions
Sample material transition animations for Android -
android-layout-samples
Explorations around Android custom layouts -
android-support-23.2-sample
Sample Project for Android Support Library 23.2 -
Watch
A project which demonstrate how to develop a custom client on android for dribbble.com -
Android-AOPExample
This is a simple example of Aspect Oriented Programming in Android -
android-movies-demo
Sample application demonstrating Android design and animation -
ProgrammingAndroidExamples
This repo contains example code for O'Reilly's "Programming Android" by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura -
ProgrammingAndroid2Examples
This repo contains example code for O'Reilly's "Programming Android" by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura -
LearningAndroidYamba
This is the code that goes along with Learning Android book. -
u2020-mvp
[DEPRECATED] Port of Jake Wharton's U2020 sample app with use of MVP and Dagger 2 -
maven-android-plugin-samples
DEPRECATED! Usage examples for Android Maven Plugin -
googletv-android-samples
Source for many GoogleTV Example applications. -
Material-Animation-Samples
Samples in Material Animation (Deprecated) -
RoboDemo
RoboDemo is a ShowCase library for Android to demonstrate to users how a given Activity works. -
Android-Notification-Example
A simple sample showing the different types of notifications on Andoid -
android_L_preview_example
This project is focused on the sample using the API's new preview version of Android-L, use of transitions, shadows etc... -
RoomDb-Sample
A simple notes app to demo Room + LiveData implementation in Android -
AndroidTVExplorer
A sample project which can be used as a base in order to develop Media Library applications for Android TV. Follow the series of blogs starting at http://www.malmstein.com/blog/2014/10/21/building-applications-for-android-tv/ in order to keep up to date with the process -
PlayPauseDrawable
This is a sample Play & Pause Drawable with morphing animation for Android -
Curve Bottom Bar
Create curve bottom navigation using this library -
CustomFontView
Custom View classes for TextView, EditText & Buttons - to set custom fonts -
GameOfThronesTrivia
An open source app that is refactored to demo ViewModel and LiveData -
Inshorts
A demo app news app for a hackathon - includes MVP architecture example
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of u2020 or a related project?
README
U+2020
A sample Android app which showcases advanced usage of Dagger among other open source libraries.
Watch the corresponding talk or view the slides.
The ObjectGraph
is created in the U2020App
's onCreate
method. The Modules
class provides a
single method, list
, which returns the list of module instances to use.
In order to add functionality in the 'debug' version of the app, this class is only present in the
release/
and debug/
build type folders. The 'release' version only includes the U2020Module
while
the 'debug' version includes both U2020Module
and DebugU2020Module
, the latter of which is only
present in the debug/
build type folder and is an override module.
Through the use of Dagger overrides, the 'debug' version of the app adds a slew of debugging features to the app which are presented in the Debug Drawerâ„¢. The drawer is opened by a bezel swipe from the right of the screen. From here you can change and view all of the developer options of the application.
The drawer is provided by the simple interface ViewContainer
. This is an indirection that the
single activity uses to fetch its container into which it can place its content. The default
implementation returns the Android-provided content view. The 'debug' version overrides this with
DebugViewContainer
which is responsible for creating the drawer, adding it to the activity, and
returning its content view group. It also injects all of the developer objects and binds them to
controls in the drawer.
The most notable feature the 'debug' version exposes is the concept of endpoints. Using the spinner at the top of the drawer, you can change the endpoint to which the app communicates. We also expose a false endpoint named "Mock Mode" which simulates an in-memory server inside the app. This "Mock Mode" eases manual testing and also provides a static set of data to write instrumentation tests against.
"Mock Mode" can be queried when modules are configuring their dependencies which is what allows simulating the remote server in-memory.
@Singleton class MockFoo() {
@Inject MockFoo() {}
// ...
}
@Provides @Singleton Foo provideFoo(@IsMockMode boolean isMockMode, MockFoo mockFoo) {
return isMockMode ? return mockFoo : new RealFoo();
}
See DebugDataModule
and DebugApiModule
to see this in action in the real app.
The mock implementations of these types are some of those injected into the DebugViewContainer
for
binding in the drawer. This allows us to do things like control their fake network behavior and
alter their behavior.
In order to keep the shared state which represents the server-side data we use a ServerDatabase
singleton. At present this is only done with a combination of in-memory collections and images in
the debug/assets/
. In a more complex app you could even use a full database. This class is
injected into each mock service which uses its methods to query and mutate state
(e.g., MockGalleryService
).
[Debug drawer](u2020.gif)
Libraries
- Dagger - http://square.github.io/dagger
- ButterKnife - http://jakewharton.github.io/butterknife
- Retrofit - http://square.github.io/retrofit
- Moshi - https://github.com/square/moshi
- Picasso - http://square.github.io/picasso
- OkHttp - http://square.github.io/okhttp
- RxJava - https://github.com/ReactiveX/RxJava
- Timber - http://github.com/JakeWharton/timber
- Madge - http://github.com/JakeWharton/madge
- ProcessPhoenix - https://github.com/JakeWharton/ProcessPhoenix
- Scalpel - http://github.com/JakeWharton/scalpel
- LeakCanary - http://github.com/square/leakcanary
- Telescope - https://github.com/mattprecious/telescope
To Do
- Something with animations to showcase animation control.
- Network errors probably crash the app.
- Add another part of the app other than 'trending' so we can demo child graphs.
License
Copyright 2014 Jake Wharton
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.
*Note that all licence references and agreements mentioned in the u2020 README section above
are relevant to that project's source code only.