超级好用Android MVP 快速搭建框架

2,987 阅读2分钟
原文链接: github.com

MVPArms

Chrome Web Store License API

a common Architecture for Android Applications developing based on MVP,integrates many Open Source Projects( like Dagger2,Rxjava,Retrofit... ),to make your developing quicker and easier.

中文说明

Usage

New Project

If you are building a new project, directly to the entire project clone (or download), as Demo as the main module, then the package name into their own package name , Demo contains the package structure can be used directly, a mainstream MVP +Dagger2 + Retrofit +Rxjava framework so easy to build successful, and now you refer Demo Mvp Package under the UserActivity format,Use Template to automatically generate MVP, Dagger2 related classes under the corresponding package,With access to Wiki documents slowly grasp the framework to see more articles as soon as possible in the project to use it, in practice, learning is the fastest

Old Project

Old projects would like to introduce this framework, you can refer to the Wiki documentation, written in great detail

Wiki

Detailed usage reference Wiki

Notice

  • The use of these technologies for the latter part of the project maintenance and iterative, especially large projects is very helpful, but is to develop a pre-write a page to write a lot of MVP,Dagger2 class and interface, which is indeed a headache for the development of pre- Now the framework has been able to mvp_generator_solution automatically generate some MVP,Dagger2 template code, and now we can very easily use the framework.

  • First run app, the cold start will be a long time, this is not because of this framework, because the Instant run in Debug mode will start the first deployment of some resources, if the signature to play Release package is not There will be a cold start is very slow, so do not worry about affecting the user experience.

  • If you rename WEApplication, the following error occurs in the startup app: Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication, please close the instant run.

  • AppComponent is a management of all single-instance object class, the use of dagger2 management, DaggerAppComponent for Dagger2 automatically generated using apt if missing, the first part of the error comment out, and then compile the project, DaggerAppComponent automatically generated, this time to open the Notes on Can, the specific use of dagger2 please refer to the document.

  • Use this frame comes with automatic adaptation function, please refer to AndroidAutoLayout.

  • This framework uses RxPermissions for rights management (adaptation android6.0), and provides a PermissionUtil tool class line of code to implement the permission request.

  • This framework does not provide any third-party libraries associated with the UI(except for the AndroidAutoLayout screen adaptation scheme).

Functionality & Libraries

  1. Mvp Google's officialMvp architecture project, which contains several different schema branches (this is the Dagger branch).
  2. Dagger2
  3. Rxjava
  4. RxAndroid
  5. Rxlifecycle
  6. Rxbinding
  7. RxCache
  8. Retrofit
  9. Okhttp
  10. Autolayout
  11. Gson
  12. Butterknife
  13. Androideventbus
  14. Timber
  15. Glide
  16. LeakCanary
  17. RxErroHandler

Update

TODO

  • Improve RxErrorHandler
  • Improve RequestIntercept

Acknowledgements

Thanks to all the three libraries used in this framework Author, and all for the 'Open Sourece' selfless contributions Developer and Organizations, so that we can better work and study, I will also spare time return to the open source community

About Me

License

 Copyright 2016, jessyan       

   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.