Hippy is a cross-platform mobile application framework developed by Tencent that enables developers to build native mobile apps using JavaScript with React or Vue. It provides a JS driver layer that communicates with native renderers on Android, iOS, OpenHarmony, and Web via a bridge system. The architecture is modular: a DOM layer manages the virtual tree and layout (using Taitank or Yoga), native renderers create platform-specific UI components, and a virtual file system (VFS) handles resource loading. The framework includes a full devtools backend implementing Chrome DevTools Protocol for debugging, performance monitoring, and DOM inspection. Key entry points include the JS bootstrap (hippy.js), native engine managers (HippyEngine on Android, HippyBridge on iOS), and the JS framework adapters (hippy-react, hippy-vue, hippy-vue-next). External dependencies include V8, Hermes, JSC, or JSH JavaScript engines, and platform-specific SDKs (AndroidX, UIKit, ArkUI). The codebase is large and actively maintained, with multiple renderer implementations and both Vue 2 and Vue 3 support, though some duplication and deprecated code exist.
AgentWeb is an Android WebView wrapper library that provides a fluent builder API (AgentWeb.with()) to configure and manage WebView instances with features like progress indicators, file upload, JavaScript bridge, video fullscreen, URL interception, and security controls. The architecture follows a modular design with core (agentweb-core), file chooser (agentweb-filechooser), and optional third-party downloader modules. Key architectural patterns include: builder pattern for configuration, middleware/decorator pattern for WebViewClient and WebChromeClient interceptor chains, and a reflection-based decoupling approach for the file chooser to avoid mandatory dependencies. The library abstracts common WebView pain points such as lifecycle handling, memory leaks, multi-process support, and device-specific bugs (e.g., Huawei, Android 5.0/5.1). The accompanying sample app demonstrates 20+ use cases including pull-to-refresh, VasSonic pre-rendering, IPC with separate processes, and custom indicators. The codebase shows strong engineering practices with clean separation of interfaces and default implementations, though it relies on some deprecated Android APIs and reflection that may require ongoing maintenance.