Mobile Development 19 min read

Componentization of Live Streaming App Architecture

To combat rapid iteration‑induced code bloat and tangled dependencies in live‑streaming apps, the article proposes a lightweight component architecture centered on an IComponent lifecycle, dynamic registration via IComponentRegister, nested components, LiveData communication, and ViewStub‑based on‑demand loading, delivering unified style, better readability, maintainability, and performance.

DeWu Technology
DeWu Technology
DeWu Technology
Componentization of Live Streaming App Architecture

1. Background

Current live room business iterations are frequent, with nearly 90% of developer tasks focused on the live audience page and live host page. The page's code has expanded rapidly.

Previous Layer layer splitting was done by view hierarchy, resulting in coarse granularity and code bloat. Various helper classes were used to manage business logic, but they lacked unified APIs and code standards.

Layer layers reference each other, leading to intertwined dependencies and potential issues when modifying components.

Layout XML is complex with many pre-embedded controls, causing unnecessary performance overhead.

2. Proposed Component Architecture

The goal is to refactor the code to improve clarity, extensibility, and decoupling, while enhancing performance. The new architecture involves:

- Abstracting a lightweight component unit: IComponent with lifecycle methods (onCreate/onStart/onResume/onPause/onStop/onDestroy) and onAttach/onDetach.

- Implementing IComponentRegister for component registration and lifecycle binding.

- Supporting nested components and dynamic registration to enable on-demand loading.

- Using LiveData for component communication to ensure message consistency.

3. Implementation Details

- BaseComponent and BaseLiveComponent classes provide the foundation.

- Components can be registered dynamically, allowing for efficient resource management.

- ViewStub is used for dynamic component loading, reducing initial load times.

4. Benefits

- Unified code style and improved readability.

- Reduced code bloat and better maintainability.

- Improved performance through on-demand loading.

- Clear separation of concerns between components.

5. Conclusion

This componentization approach addresses the challenges of rapid iteration and code complexity in live streaming applications.

Performance OptimizationArchitecturedynamic loadingAndroid DevelopmentcomponentizationLifecycle Management
DeWu Technology
Written by

DeWu Technology

A platform for sharing and discussing tech knowledge, guiding you toward the cloud of technology.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.