欢迎来到Pan!
Pan是一个轻量级的安卓MV*框架,帮助梳理安卓的前端代码。
使用Pan将大大减少Activity的代码,使得Activity的代码缩减到100行甚至50行以内。 同时,大大提升界面代码的可复用性,提升代码的可维护性。
Demo
public class MainActivity extends PanActivity { MainViewModel mMainViewModel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMainViewModel = Pan.with(this, MainViewModel.class) .controlledBy(MainController.class) .getViewModel() .setHelloString("hello Pan!") .render(); } //Done! //No need for more codes! }
还等什么?Getting Started!
Features
- 核心:掏空Activity的代码
- 分离渲染逻辑(ViewModel)、控制逻辑(Controller)
- 复用页面部件,包括XML和ViewModel,且与Activity/Fragment解耦
- 复用业务逻辑,即Controller
- 兼容已有代码,无侵入性
- 插件化,易于拓展,方便
- 模型中立,可以Data-Binding结合拓展成MVVM框架,也可以按照特定的使用习惯当做MVP框架
实际上,由于ViewModel和Activity/Fragment解耦,可以让框架的灵活度直接上一个台阶,完成很多之前难以做到的需求,例如:
- 类似Conductor,全局使用一个Activity,通过路由切换View。这个只需要给Pan写一个路由插件即可,ViewModel对当前所处环境并不关心。
MV*模型
Pan的模型比MVC、MVP、MVVM更务实,只追求实际使用中的易于上手,和上述设计目标的实现,我们可以称之为MVW(Whatever)。
但你仍然可以把Pan当做MVP、MVVM框架使用,例如Pan可以直接等价到Mosby(MVP)的代码。
详细的设计思路和哲学,请参考Pan的简介和设计思路