Design WanAndroid

screenshot of Design WanAndroid

WanAndroid的最佳Material Design实践,严格遵循Material设计,完美支持其Dynamic Colors等新特性,MVVM架构,保证UI风格、逻辑设计的一致性。全盘采用Jetpack,只为解决某些特定问题而引入其他依赖,避免大材小用,且尽可能均自己实现

Overview:

Design WanAndroidCompose化部分页面 is an Android client for the WanAndroid website that has been redesigned using Material Design 3. It offers a complete implementation of the original WanAndroid API functionalities in a visually cohesive and standardized design. With its use of Material Symbols for icons and adherence to the Material Design 3 Color system, the app provides a modern and consistent user experience. Additionally, it supports dynamic theming, adapting to the system's theme color and dark mode for a seamless visual experience.

Features:

  • Material Design 3: The app adopts the Material Design 3 style throughout, avoiding the disjointed UI often associated with incomplete Material themes.
  • Iconography: All icons in the app are sourced from Material Symbols, ensuring a unified and standardized design.
  • Theming: The app follows the Material Design 3 Color system, with support for dynamic theming that automatically adjusts the theme color based on the system theme color and adapts to dark mode.
  • Ripple Effect: Interactive UI components in the app feature a ripple effect, clearly indicating their interactive nature. The ripple color is derived from the current dynamic theme color.
  • Dependency Management: The app utilizes buildSrc for global and unified dependency management, following strict adherence to Android Architecture Components.
  • Architecture: The app follows a layered architecture approach, separating the UI layer, domain layer (optional), and data layer. It recommends using UseCase for combining data from different sources and follows the repository pattern for data management.
  • Networking: Retrofit and OkHttp are used as the common network request libraries, with a custom Retrofit NetworkResponseAdapterFactory and GsonConverterFactory to handle network exceptions and parse responses.
  • Dependency Injection: The app incorporates Hilt for dependency injection, enhancing reusability and reducing strong dependencies.
  • Concurrency and Data Handling: Kotlin coroutines are used for network request threading. Flow is utilized for complex and transformative data flows, and LiveData is used for one-shot data. DataStore and Kotlin Serialization are integrated for persisting small-scale data such as login status and Key-Value data.
  • RecyclerView and Paging: The app implements Paging3 for efficient loading and state handling of lists. It also introduces and customizes MultiType adapters to support multiple types of items in conjunction with Paging3.
  • Additional Functionality: The app includes Banner and AgentWeb as additional dependencies, while implementing the rest of the functionalities itself.

Summary:

Design WanAndroidCompose化部分页面 is an Android client for the WanAndroid website that offers a redesigned and visually cohesive user experience. It follows the principles of Material Design 3, ensuring a modern and standardized UI. The app includes features such as dynamic theming, dependency management, layered architecture, efficient networking, dependency injection, and advanced data handling. With its implementation of various libraries and customizations, Design WanAndroidCompose化部分页面 aims to provide a comprehensive and user-friendly Android app for browsing the WanAndroid website.