Day8
Time : October 29th,2015 / Author : xiaomeixw
library
1.UI:
FoldableLayout --- (From worldline) : An Android demo of a foldable layout implementation,The author say: This code is a demo and not a library. [一个折叠效果].
FoldableLayout --- (From alexvasilkov) : Android widgets to implement folding animation,It was wonderful library. [一个折叠效果,效果很棒].
Android-FoldingLayout --- (From elementsinteractive) : A layout to switch over its children using a page folding animation,LIKE Flipboard application. [一个折叠效果,类似Flipboard的翻页效果].
android-FlipView --- (From emilsjolander) : A small, easy to use android library for implementing flipping between views as seen in the popular Flipboard application,very smoothly. [一个折叠效果,类似Flipboard的翻页效果,很流畅,API比较丰富].
FlipViewPager.Draco --- (From Yalantis) : This project aims to provide a working page flip implementation for usage in ListView. [ListView联系人翻页效果].
android-flip --- (From openaphid) : A component for flip animation on Android, which is similar to the effect in Flipboard iPhone/Android. [一个类似Flipboard翻页效果].
2.Logic:
Favor --- (From soarcn & Tag is Caching) : A easy way to use android sharepreference. [使用注解简单操作sharepreference].
//1 Define a interface. @AllFavor public interface Account { @Default("No Name") String getUserName(); String setPassword(String password); } //2 The FavorAdatper class generates an implementation of the interface. account = new FavorAdapter.Builder(getContext()).build().create(Account.class); account.setPassword("Passw0rd"); String username = account.getUserName();
AndroidChannel --- (From skyfe79 & Tag is AsyncTask) : AndroidChannel is helper library for thread communication between mainthread and workerthread. [异步调度,主线程和工作线程通信].
channel = new AndroidChannel(new AndroidChannel.UiCallback() { @Override public boolean handleUiMessage(Message msg) { if(msg.what == PING) { Log.d("TAG", "PING"); channel.toWorker().sendEmptyMessageDelayed(PONG, 1000); } return false; } }, new AndroidChannel.WorkerCallback() { @Override public boolean handleWorkerMessage(Message msg) { if(msg.what == PONG) { Log.d("TAG", "PONG"); channel.toUI().sendEmptyMessageDelayed(PING, 1000); } return false; } }); channel.toUI().sendEmptyMessage(PING);
3.Architecture:
Backeasy --- (From Pierry) : Android - DI, DDD, Specification Pattern, Repository Pattern, IoC. [探索JAVA成熟模式在Android上的分层架构].
- Domain driven-design start
- Domain entities
- Contracts (Interfaces)
- Repository Pattern
- Specification Pattern
- ActiveAndroid (Database)
- Dependency Injection - IoC (RoboGuice)
- View Injection & Threads (Android Annotations)
- SOLID
droidparts --- (From yanchenko) : a carefully crafted Android framework:DI, ORM, JSON.... [封装一套可复用的Android框架].
a carefully crafted Android framework that includes:
- DI - injection of Views, Fragments, Services, etc.
- ORM - efficient persistence utilizing Cursors & fluent API.
- EventBus for posting event notifications.
- Simple JSON (de)serialization capable of handling nested objects.
- Improved AsyncTask & IntentService with Exceptions & result reporting support.
- Logger that figures out tag itself & logs any object.
- RESTClient for GETting, PUTting, POSTing, DELETing & InputStream-getting, also speaks JSON.
- ImageFetcher to asynchronously attach images to ImageViews, with caching, cross-fade & transformation support.
- Numerous Utils.
article
ANNOTATION PROCESSING 101 --- (From Author sockeqwe blog http://hannesdorfmann.com) --- [Source in Github]
(Editor's note : A wonderful article to learn ANNOTATION PROCESSING in android. A lot of famous library is based on it like ParcelableGenerator、butterknife and androidannotaion).
In this blog entry I would like to explain how to write an annotation processor. So here is my tutorial. First, I am going to explain to you what annotation processing is, what you can do with that powerful tool and finally what you cannot do with it. In a second step we will implement a simple annotation processor step by step.
To clarify a very important thing from the very beginning: we are not talking about evaluating annotations by using reflections at runtime (run time = the time when the application runs). Annotation processing takes place at compile time (compile time = the time when the java compiler compiles your java source code).[Translation:Java注解处理器使用详解].
Chinese Translation Address : Thanks To codeceo
DroidconDE 2015: Hannes Dorfmann – Annotation Processing 101. Want to see the video , See [Youtube](https://www.youtube.com/watch?v=43FFfTyDYEg). Want to see the Author's PDF in [DroidconDE 2015](http://droidcon.de/sites/droidcon.de/files/media/documents/Hannes%20Dorfmann-Annotation%20Processing%20101.pdf).
website
http://droidcon.de/ --- (started in 2008 in Berlin) : Droidcon is the franchise name for a series of commercial conferences in Europe, focused on software development for Google's Android smartphone framework. The Droidcon conferences are the largest Android developer conferences held outside the USA. [Android技术交流公开活动组织].