-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
feat: Add Native Splash Screen for Improved Startup UX #7963
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🧙 Sourcery is reviewing your pull request! Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Hi @djeddi-yacine, can you double-check your commits? They include 1 million lines of changes. Please take a video to demonstrate your changes. |
Hi @LucasXu0 , Thanks for taking a look at the PR! You're absolutely right about the large line count in the changes. The vast majority of those lines come from the auto-generated C++/Swift files by the Here's why these files can become very large:
In essence, these large diffs primarily represent the raw pixel data of the splash screen images being included as byte arrays in the source code for each platform and build configuration. This is a deliberate design choice of the The actual manually written code changes to integrate the plugin (e.g., in I will prepare a video to demonstrate the splash screen working on Linux (where I could fully test) to show the intended effect and will post it shortly. This should help visualize the outcome. Please let me know if you have any specific concerns about this approach or if there are preferred methods for handling large, embedded image data within the AppFlowy build system. I'm happy to discuss or adjust if needed! Thanks! |
I've watched your demo videos in your native_splash_screen plugin repository. To be honest, without heavily loading pre-processes, I don't think we need to integrate the native splash screen into our product, and I'll share your idea with our designer. |
PR Checklist
PR details
Hi AppFlowy Team,
This pull request introduces a native splash screen feature, as proposed in issue #7962 (#7962), to enhance the application's startup experience. By providing an immediate visual response, the splash screen aims to reduce perceived jank and improve the overall user experience while the main Flutter application initializes.
Key Changes:
native_splash_screen
package.native_splash_screen.yaml
and CLI-generated native code for Linux, Windows, and macOS.main.cc
for Linux,main.cpp
for Windows, andAppDelegate.swift
for macOS) to display the splash screen as early as possible.Platform Testing:
Request for Reviewers:
I would greatly appreciate it if the team could specifically test the native splash screen functionality on Windows and macOS to ensure it behaves correctly on those platforms before merging. This includes verifying:
1. The splash screen appears immediately on app launch.
2. The configured image and appearance (if customized per platform) are correct.
3. The splash screen closes smoothly when the Flutter UI is ready.
4. There are no adverse effects on the existing startup process for these platforms.
Future Work (Post-Merge):
If this initial implementation is accepted, I plan to investigate further optimizations for the main Flutter window's initialization on macOS and Windows. The goal would be to refine how the main window appears after the native splash screen closes, ensuring the smoothest possible visual transition from the native splash to the Flutter UI (e.g., preventing any brief white flashes or abrupt window appearance).
Thank you for considering this contribution! I believe native splash screens will be a valuable addition to AppFlowy.
Closes #7962