Shield:美团点评的模块化UI开发框架
项目基础介绍和主要编程语言
Shield是由美团点评到店综合团队开发的一个模块化UI界面解决方案。它不仅仅是一个Native(Android & iOS)的UI开发框架,而是基于团队自身复杂的业务场景沉淀出来的UI开发最佳实践。Shield框架主要使用Java和Kotlin两种编程语言进行开发,其中Java占比74.2%,Kotlin占比25.8%。
项目核心功能
-
模块独立性:每个模块具备完整的页面能力(生命周期、Context等),模块可以在不同的页面中自由组合,模块与页面高度解耦,模块不关心具体在哪个页面中运行,模块之间需要解耦,模块只关心自己涉及的状态和数据。
-
数据驱动:模块的表现只取决于所依赖的数据,而与具体的行为无关。
-
接口设计:整个模块化框架通过抽象接口进行交互,通过接口规范行为,通过接口的不同实现达到多态的目的。
-
页面管理:一个典型的模块化页面主要由页面和多个模块构成,页面通过模块配置(Config)确定加载哪些模块构成页面。模块又分为业务逻辑(Agent)和视图逻辑部分(SectionCellInterface,包括Section和Row)。
-
管理器机制:页面包含两个管理器,模块管理器(AgentManager)和视图管理器(CellManager)。模块管理器决定了如何创建、更新、恢复及销毁模块以及如何将模块添加到页面中。视图管理器则决定了页面使用何种视图容器管理视图以及模块中的视图组件(SectionCellInterface)如何添加到视图容器中。
-
数据交互:页面还持有一个支持数据订阅和通知的白板(WhiteBoard),用于模块与页面、模块与模块之间的数据交互。
项目最近更新的功能
-
RecyclerView容器支持设置是否可以滚动:新增了对RecyclerView容器滚动特性的设置支持。
-
HeaderCell & FooterCell新增置顶置底支持:为HeaderCell和FooterCell新增了置顶和置底的功能支持。
-
HeaderCell & FooterCell新增上下分割线完善:进一步完善了HeaderCell和FooterCell的上下分割线功能。
-
优化模块配置方式:对模块配置方式进行了优化,提升了配置的灵活性和易用性。
-
优化模块曝光计算逻辑:对模块曝光的计算逻辑进行了优化,提高了计算的准确性和效率。
-
基于Kotlin的全面重构:项目进行了基于Kotlin的全面重构,提升了代码的可读性和维护性。
-
新的视图管理器ShieldNodeCellManager:引入了新的视图管理器ShieldNodeCellManager,增强了视图管理的灵活性。
-
新的生命周期路由ShieldLifeCycler:新增了生命周期路由ShieldLifeCycler,优化了模块生命周期的管理。
-
新的ShieldSectionCellItem视图层表达方式:引入了新的视图层表达方式ShieldSectionCellItem,提升了视图层的表达能力。
通过这些更新,Shield框架在模块化UI开发方面提供了更加强大和灵活的解决方案,满足了复杂业务场景下的开发需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考