Skip to content
CAI
Software that uses CAICheck a score

2697a/bujuan

54.0

Adequate · 19 September 2026

6.8k

lines of production code

Dart

with C++

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Bujuan is a cross-platform music player application built with Flutter, supporting Android, iOS, macOS, Windows, and Linux. It features background audio playback, media notifications, and lock-screen controls via a local proxy service and the just\_audio engine. The app includes a Material 3 UI with sliding panels, user authentication, and navigation for home, search, and settings, while currently relying on placeholder data access layers.

Features

Add sliding panel UI components and placeholder data access layer

This change introduces a new set of Flutter widgets for a draggable, snapping sliding panel interface, including \SlidingPanelBuilder\, \SlidingPanelBody\, \SlidingPanelHandle\, and \SlidingPanelExtent\ for managing panel positions and snap points. Additionally, a new \lib/dao\ directory is added containing \played\_info\_entity.dart\ (which currently holds commented-out example code from \just\_audio\) and \dao.dart\ (which contains a fully commented-out SQLite database implementation for tracking played media). These DAO files appear to be scaffolding or placeholders and do not yet provide active data persistence functionality.

lib/dao, lib/widgets/panel · high confidence

Added subproject reference for bujuan\_music\_api plugin

The plugin directory now includes a new submodule entry for 'bujuan\_music\_api', pointing to commit dff61e6. This integrates the external music API plugin into the project structure, making it available for use within the application's plugin system.

plugin · high confidence

App initialization, splash screen, and slide-up panel widget added

The application now includes a SplashPage that checks for cached user info to route users to Home or Login. The main entry point has been updated to initialize media services (AudioService), register slide-up panel controllers via GetIt, and configure edge-to-edge display modes on Android and window management on desktop platforms. A new reusable WeSlide widget has been introduced, allowing panels to slide up over the main content with customizable animations, blur effects, and parallax scaling.

lib · high confidence

Initial release with multi-platform support and DMG packaging

This entry marks the initial public release of the 'bujuan' music player, a Flutter-based application supporting Android, iOS, macOS, Windows, and Linux. The release includes an MIT license, updated documentation with platform-specific screenshots, and a new macOS DMG packaging script (dmg.sh) to streamline desktop distribution. Additionally, the .gitignore file has been updated to exclude the FVM version cache directory.

(repo-wide) · high confidence

New music player architecture with local proxy and background service

This change introduces the core music playback infrastructure for the application. It adds a \BujuanMusicHandler\ that bridges the \just\_audio\ engine with \audio\_service\ to enable background playback, media notifications, and lock-screen controls. A \LocalProxyService\ is added to run a local HTTP server on port 8848, which caches and streams audio URLs to ensure compatibility with the player. The diff also includes the initial UI pages for the app, such as login, home, playlist, and playback views, which consume these new services.

lib/pages · high confidence

Behavioural changes

Added CocoaPods workspace integration and 3D model viewer script

The macOS build configuration now includes the CocoaPods dependency workspace (Pods.xcodeproj), ensuring native dependencies are properly linked during compilation. On the web platform, a deferred script for the 3D model viewer library (model-viewer.min.js) has been added to index.html, enabling 3D asset rendering capabilities within the application.

macos/Runner.xcworkspace, web · high confidence

Android audio service integration and build updates

The Android app now supports background audio playback via the AudioService framework, requiring new permissions (WAKE\_LOCK, FOREGROUND\_SERVICE, RECORD\_AUDIO, MODIFY\_AUDIO\_SETTINGS, and FOREGROUND\_SERVICE\_MEDIA\_PLAYBACK) and registering the AudioService and MediaButtonReceiver components in the manifest. The main activity has been switched to extend AudioServiceActivity to enable this functionality. Additionally, the launch splash screen background is now transparent, and the Gradle wrapper has been upgraded from version 8.3 to 8.7.

android · high confidence

CocoaPods integration and GPU validation enabled for macOS

The macOS project now integrates CocoaPods, adding build phases to check the Pods manifest lock and embed Pods frameworks, along with references to the Pods\_Runner and Pods\_RunnerTests frameworks and their associated configuration files. Additionally, GPU validation mode is enabled in the Runner scheme to assist with graphics debugging during development.

macos/Runner.xcodeproj · high confidence

Introduction of Material 3 theming and app configuration values

The application now uses Material 3 design principles for its visual appearance, enabled via \useMaterial3: true\ in the \AppTheme\ definitions for both dark and light modes. This includes specific styling for the bottom navigation bar (transparent background, green accent color \#1ED760) and app bars. Additionally, new configuration files define the bottom navigation items (Home, User, Search, Settings), top home page items (Daily Recommendations), and asset paths for logos and images.

lib/common/values · high confidence

Replaces audioplayers with a new audio and system plugin stack

The application has replaced the previous audioplayers plugin with a new set of plugins across Linux, macOS, and Windows. On macOS, the audio handling now relies on audio\_service, audio\_session, connectivity\_plus, just\_audio, and sqflite\_darwin, alongside nb\_utils, screen\_retriever, and window\_manager. Linux and Windows platforms have similarly switched from audioplayers to connectivity\_plus, nb\_utils, screen\_retriever, and window\_manager. This change updates the underlying audio playback and system integration capabilities for the desktop and mobile platforms.

linux, macos/Flutter, windows · high confidence

Updated macOS app configuration for network access and sandboxing

The macOS application configuration has been updated to support broader network capabilities and proper asset handling. The app bundle now explicitly references the 'AppIcon' for its icon file. To enable network communication, the 'com.apple.security.network.client' entitlement has been added to both Debug and Release profiles, and the Info.plist now includes NSAppTransportSecurity settings allowing arbitrary loads and client network access. Additionally, the Release entitlements have been expanded to allow Just-In-Time (JIT) compilation and network server access, which are required for the underlying media playback engine to function correctly within the sandbox.

macos/Runner · high confidence

iOS deployment target raised to 13.0 with updated signing and background audio support

The iOS build now requires iOS 13.0 or later (updated in AppFrameworkInfo.plist and project.pbxproj), and the app bundle identifier has changed to com.lizong.bujuan with a new development team (ZSCR6PZ5LY) and automatic code signing. The app now declares the audio background mode, enabling playback to continue when the app is in the background, and includes settings for indirect input events and embedded view preview. Additionally, the app icon assets have been updated to use universal idiom entries with platform-specific filenames.

ios · high confidence

Dependencies

Audio engine migration and dependency upgrades

The app switches its audio playback engine from audioplayers to the just\_audio and audio\_service plugins, enabling background playback and system media controls. This change is accompanied by a major upgrade of the Flutter SDK requirement to version 3.10+, updating the Android build to Java 17 and Kotlin 2.2.20, raising the minimum iOS platform to 13.0 and macOS to 10.15, and upgrading core libraries such as Riverpod, GoRouter, and the analyzer suite.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 54.

Lenses

  • Code Health 96
  • Architecture 100
  • Maturity 46
  • Readiness 33
  • Security 93
  • Domain Modelling 100

Changes since last survey

  • 28 commits — 28 feature/other, 0 fixes

By area

  • lib/pages — 20 commits
  • (root) — 3 commits
  • ios/Runner — 2 commits
  • lib/main.dart — 1 commit
  • macos/.gitignore — 1 commit
  • macos/Runner — 1 commit

Notable commits

  • change: Create LICENSE
  • change: Update README.md
  • change: init
  • change: init
  • change: phone端修改
  • change: phone端修改
  • change: phone端修改
  • change: phone端修改
  • change: phone端修改
  • change: 优化布局和性能 增加m3设计
  • change: 优化布局和性能 增加m3设计
  • change: 优化性能
  • change: 优化性能
  • change: 优化性能
  • change: 切换音乐播放为media_kit mpv播放器 优化布局和性能
  • change: 新增循环模式(单曲 列表循环 随机) 更换音频播放插件
  • change: 歌单列表优化
  • change: 正常开发
  • change: 正常开发
  • change: 正常开发
  • …and 8 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

2697a/bujuan was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 44698e454d84d3f9dc68ce06c578781d05f3bc1a — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.