preface

What is componentization?

The original goal was code reuse, with relatively single or independent functionality. At the bottom of the code hierarchy of the entire system, it is dependent on other code, so componentization is vertically layered.

Why use componentization?

As our projects get bigger and bigger, it becomes harder to maintain when we have the time, and sometimes when we have to change something, it’s not possible to implement it, and it’s better to write the code all over again than to have us fix it.

In fact, whether it is a large project or a small or medium project, it is very difficult to give up componenting because it brings a lot of benefits to your development, including some decoupling and some reuse.

Benefits of componentization

  • Components can be used as both library and application, facilitating separate compilation and testing, greatly improving compilation and development efficiency;
  • (business) components that can have their own versions, separate lines of business that can be compiled, tested, packaged, and deployed separately
  • Common modules shared by all lines of business are developed into components, which are used as dependency libraries for all lines of business to call, reducing repetitive code writing, reducing redundancy and facilitating maintenance
  • Gradle configuration files centrally manage the introduction of third-party libraries to avoid version conflicts and reduce redundant libraries
  • Gradle configuration files can be used to easily switch between library and application and load projects on demand

How to learn componentization?

There are a lot of articles on the Internet about learning componentization development, componentization principle is very simple, but the real implementation is still very difficult, there is no corresponding actual combat + source code reference ready to step on the pit.

Recently, bytedance was lucky enough to pick up this “componentized Learning manual” in the hands of a senior engineer, who led the development of several componentized APP projects. Now I just want to blow! The boss stayed up for half a month, summarized the accumulated experience and the pits, and organized into a 220-page learning manual, which included the popular componentization project of Dachang, from the novice to the architect, this learning manual is enough.

Click on the blue font here to get the full document.

Chapter 1 Understanding the componentization of Android

  • Difference between componentization and modularization
  • The difference between componentization and plug-in
  • Advantages of componentized development
  • Business logic layer
  • Componentized development to encounter problems
  • From the componentized actual combat to solve the problem
  • Android componentization foundation

Chapter two: Android componentization

  • Componentized demonstration case

Modularization and componentization Componentized Demo components Application and Library dynamic switching……

  • WanAndroid APP componentization project with demo

Version update Effect picture Main Functions Item Directory Structure Main Open source framework……

Chapter 3 Evolution of Architecture (Dachang)

  • Componentized Architecture practice from Zhixing Android Project

Reasons and objectives of componentized adjustment Overall planning of componentized architecture adjustment Some problems encountered in componentized architecture adjustment

  • Get the App

Android fully componentized Demo Release JIMU Usage Guide Componentized Split Feeling……

Click on the blue font here to get the full document.

  • WeChat App

Wechat Android modular architecture reconstruction practice wechat Android architecture history why to reconstruct wechat again……

  • Mushroom street App

Componentized implementation of Mogujie App Component life cycle management shell project Problems encountered continuous integration of surrounding facilities……

  • IQIYI App

Andromeda Architecture Analysis of the Core Appeal of Service-based IPC Communication Componentization and Cross-process Communication

  • Meituan App

Evolution of takeout client containerization architecture Panorama of Takeout cross-end container construction Takeout page Container construction Measurement indicators of takeout container architecture Monitoring of takeout container architecture Operation and maintenance Of takeout container architecture publishing capability……

  • Meituan Android componentized solution and component message bus Modular – Event actual combat
  • Evolution of Meituan Android Message Bus: Replace RxBus and EventBus with LiveDataBus
  • WMRouter: Meituan Takeaway Android open source routing framework
  • Meituan Cat’s Eye Android modular combat – probably the most detailed modular combat

  • Ctrip App
  • Pay treasure to App

.

That’s the 220-page Android componentization manual byteDance has been up all night putting together. Click on the blue font here to get the full document.

conclusion

Now componentization is really not a new thing, large companies are familiar with, that is, now part of the medium-sized projects and small projects in componentization efforts on the road.

So guys, componentize if you haven’t played it, if you’re not familiar with it, get up to it, and by the way, you don’t componentize, release shadow projects and it’s a nightmare for you. Any technological advance is essentially a matter of scratching one’s head and using up a lot of hair in the face of real demands.

So the componentalization of this thing out for so long, page development for so long, with more and more people, it is certainly beneficial to our development, partners will not, not familiar with grasp, or the interview ask you how do you answer it!