Prism 是一款开源的 Flutter 壁纸和主屏幕布局软件,适用于 Android 和 iOS,支持社区上传、精选合集以及 AI 壁纸生成。
AI 翻译
Prism is an open-source Flutter wallpapers and home screen setups app for Android and iOS, with community uploads, curated collections, and AI wallpaper generation.
生活方式Dart · TypeScriptGitHub @Hash-Studios自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Prism is an open-source wallpaper app for Android and iOS, built with Flutter and Dart by Hash Studios.
Website · Google Play · Releases · Changelog · Contributing
Prism brings wallpapers from the community, Wallhaven, and Pexels into one feed that learns what you like. Preview a wallpaper with a clock, set it in a few taps, or make it move. Upload your own art, follow creators, make new wallpapers with AI, and earn Prism Coins as you go.
Discover
Preview, set, and edit
Create
Library and app
Prism Coins and Prism Pro
Platform capabilities vary. Android supports home-screen and lock-screen wallpaper actions. iOS supports saving images for manual application. Premium access and coin costs depend on the action. The app shows the applicable gate before proceeding.
See docs/features for a short page on each feature.
Get started
| Welcome | Pick your vibe | Find your people | Tune your feed |
Discover
| Home and trending | Search | Colour results | Collections |
Preview, set, and edit
| Wallpaper | Details and colours | Clock preview | Set wallpaper |
| Filter editor | Live wallpaper | Auto-rotate | iOS Shortcuts |
Create and collect
| AI wallpaper | Upload | Favourites | Downloads |
Profile and rewards
| Profile | Edit profile | Rewards | Daily streak |
| Invite friends | Pro wallpaper | Notifications | Themes and accent |
Light theme (Frost White)
| Home | Wallpaper | Creator profile | Themes |
Get Prism for Android on Google Play. Release notes and build files for each version are on GitHub Releases. The changelog lists every change.
| Path | Purpose |
|---|---|
lib/ and test/ | Flutter app and unit/widget tests |
android/ and ios/ | Native platform projects |
pigeons/ | Source definitions for platform APIs |
functions/ | Firebase Cloud Functions, written in TypeScript |
firestore.rules and firestore.indexes.json | Firestore access rules and indexes |
web/ | Next.js website |
infra/cloudflare/ | Worker for deep links, social previews, and AI requests |
packages/cloud_functions/ | Local FlutterFire plugin fork |
| and |
The app uses BLoC, freezed, get_it/injectable, and auto_route. See architecture guidance for feature structure.
Dependency versions live in pubspec.yaml, functions/package.json, and web/package.json.
Install FVM, Make, and a POSIX shell. Android development needs the Android SDK. iOS development needs macOS, Xcode, and CocoaPods.
Use a shallow, single-branch clone when you do not need old commit history:
git clone --depth 1 --single-branch https://github.com/Hash-Studios/Prism.git
Use a single-branch blobless clone when you need commit ancestry but can fetch file contents on demand:
git clone --filter=blob:none --single-branch https://github.com/Hash-Studios/Prism.git
A full clone fetches every branch, including qa/screenshots, and historical binaries. Sparse checkout limits files in your working tree, but does not avoid fetching history. Fetch another branch when you need it:
git fetch origin branch-name:refs/remotes/origin/branch-name
Keep tracked files at or below 1 MiB. Store APK, AAB, and IPA release files on GitHub Releases. Run make repo-assets-check to check tracked files before opening a pull request; make ci runs the same check.
From the repository root, run:
make setup
fvm flutter doctor -v
make setup installs and selects the Flutter SDK pinned in .fvmrc, then resolves app dependencies.
On macOS, it also prepares iOS pods. Use fvm flutter and fvm dart for subsequent SDK commands.
Prism's Flutter app needs a mobile device, emulator, or simulator. The separate Next.js website runs in a browser.
A fresh checkout has no lib/firebase_options.dart. Create the ignored stub for local analysis and tests:
tool/write_firebase_options_stub.sh
make format-check
fvm flutter analyze --no-pub --no-fatal-infos
make test
The stub script preserves an existing real Firebase options file. Do not commit Firebase configuration files. For a UI-only debug run without Doppler or Firebase access, use:
fvm flutter run --dart-define=SKIP_FIREBASE_INIT=true
Firebase-backed feeds, sign-in, notifications, and rewards need real development service configuration. A run that skips Firebase does not verify those features.
Runtime secrets come from Doppler, using project prism and local configuration dev.
.env.example lists key names for reference. Make targets do not load it as a runtime secrets file.
Obtain development service access and Firebase configuration from a maintainer. The app needs matching local files:
lib/firebase_options.dartandroid/app/google-services.jsonios/Runner/GoogleService-Info.plistReplace any Firebase stubs before a service-backed run. Install the Doppler CLI, then run:
make doppler-login
make setup-dev
make run
make run injects Dart defines from Doppler. If the Android Google Services file is absent, it skips Firebase initialization, including on iOS.
See the Doppler workflow for access checks, secret updates, and troubleshooting.
The contribution guide covers configuration for your own development Firebase project.
Server-side wallpaper storage uses separate private and preview Cloudflare R2 buckets when enabled. The
owned asset delivery guide documents configuration and the
GitHub-to-R2 inventory. It is an operator guide, not permission to configure secrets, deploy, migrate, or
remove public GitHub files.
Run these commands from the repository root:
| Command | Purpose |
|---|---|
make get | Resolve Flutter dependencies with FVM |
make run | Run the app with development secrets from Doppler |
make format / make format-check | Format Dart source / check formatting |
make test | Run Flutter unit and widget tests |
fvm flutter analyze --no-pub --no-fatal-infos | Run static analysis without treating infos as failures |
make file-gen | Regenerate freezed, JSON, route, and dependency injection code |
make pigeon-gen | Regenerate native platform APIs |
make analytics-gen / make analytics-check | Generate typed analytics events / check the generated output |
make ci ANALYZE_FLAGS=--no-fatal-infos | Run the complete local app and worker gate |
The local app gate also needs Node.js 22.6 or newer for worker tests.
Functions, website, and Firestore rules checks run separately. See Contributing for their commands and UI verification requirements.
web/README.md covers website development, and infra/cloudflare/README.md covers the worker.
GitHub CI runs on pull requests that are ready for review and selects jobs by changed paths. Draft PRs skip the checks.
The required ci check aggregates app, functions, website, and rules results. See the CI workflow.
Read CONTRIBUTING.md before submitting a change. Open a focused PR against master with the linked issue and verification results.
Report bugs through the issue templates.
Contact Hash Studios at [email protected], join the Telegram community, or follow Prism Wallpapers. If you like Prism, rate it on Google Play and star this repository. You can support development through Buy Me a Coffee:
See the contributors who maintain Prism.
Prism uses the BSD 3-Clause License.
Google Play and the Google Play logo are trademarks of Google LLC.
Read PRIVACY.md for data collection and third-party services.
tool/| Development commands, generation, and repository checks |