-
-
Notifications
You must be signed in to change notification settings - Fork 656
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
Add splash screen for before React has started up #2756
Comments
That is true. A splash screen would look exactly as our current loading screen but without the spinning progress indicator. So a green screen with a centered Zulip logo. |
Ok, so I would get started with the android part. |
@zulipbot claim |
Hello @prateek3255, it looks like you've currently claimed 1 issue in this repository. We encourage new contributors to focus their efforts on at most 1 issue at a time, so please complete your work on your other claimed issues before trying to claim this issue again. We look forward to your valuable contributions! |
@borisyankov I have already solved that issue #2705 and submitted a pull request #2743 for the same and I think that it's ready to be merged. |
added splash screen for android- zulip#2756 Used PureComponent for travis CI build updated ZulipMobile.js to pass the travis CI test Updates to pass the travis CI tests
It'd definitely be good to add a splash screen, for the reasons said above. Here's some notes on how to approach this, adapted from #2804 (comment) :
When the library is this small, our experience has been
I'd be glad to see a PR doing this for either Android, or iOS, or both. (The work will be pretty independent for each platform.) For Android, this means reading Android and Android Studio docs, explaining what you find, and using Android Studio to make a splash screen. For iOS, ditto with iOS and Xcode docs and using Xcode. |
For iOS, this looks like the right starting point. I believe the "storyboard" feature uses Xcode's UI pretty heavily (a main challenge being to make the layout work on any size screen) and doesn't really rely on code, so this might be a nice (and rare) opportunity for a non-code contribution 🙂. |
This package lets us control when the splash/launch screen hides. Soon, we may want it to show during the Redux store rehydration time [1]. On iOS, we've stuck to the term "launch screen", since Apple uses it consistently [2]. I don't see a clear pattern for Android, so we've kept to "splash screen" to match `expo-splash-screen`. Finish following the extra instructions for bare React Native apps [3], linked to from the main Expo doc [4]. Most of it is setup that's not specific to `expo-splash-screen` and has been done in recent commits. Here, we do the steps that involve invoking code from `expo-splash-screen`. On iOS, this package removes the need to set RCTRootView's `loadingView` property, which we started using in a recent commit -- it seems that `expo-splash-screen` automatically makes sure that the splash screen persists until our React Native views have first rendered. [1] https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/React.20Navigation.20v5/near/1039507 [2] https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/launch-screen/ [3] https://github.com/expo/expo/tree/master/packages/expo-splash-screen#-installation-in-bare-react-native-projects [4] https://docs.expo.io/versions/latest/sdk/splash-screen/ Fixes: #2756
This package lets us control when the splash/launch screen hides. Soon, we may want it to show during the Redux store rehydration time [1]. On iOS, we've stuck to the term "launch screen", since Apple uses it consistently [2]. I don't see a clear pattern for Android, so we've kept to "splash screen" to match `expo-splash-screen`. Finish following the extra instructions for bare React Native apps [3], linked to from the main Expo doc [4]. Most of it is setup that's not specific to `expo-splash-screen` and has been done in recent commits. Here, we do the steps that involve invoking code from `expo-splash-screen`. On iOS, this package removes the need to set RCTRootView's `loadingView` property, which we started using in a recent commit -- it seems that `expo-splash-screen` automatically makes sure that the splash screen persists until our React Native views have first rendered. [1] https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/React.20Navigation.20v5/near/1039507 [2] https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/launch-screen/ [3] https://github.com/expo/expo/tree/master/packages/expo-splash-screen#-installation-in-bare-react-native-projects [4] https://docs.expo.io/versions/latest/sdk/splash-screen/ Fixes: zulip#2756
Using `expo-splash-screen`'s Android-specific setup instructions [1], but with some important exceptions: - We don't (currently) intend to actually use `expo-splash-screen` [2], which means - Don't name a color "splashscreen_background". The API looks for that particular resource name. But we don't like its capitalization, which is inconsistent with the surrounding names [3]. - Don't use an image; we can add one later if we want. - Don't do anything marked "optional". - Don't go through a `splashscreen.xml` file; this extra indirection is unnecessary for us [4]. - Don't add an `android:theme="@style/AppTheme"` attribute to the `activity` element in our `AndroidManifest.xml`; it's redundant, with the same attribute already present in its parent `application` element. What's left is extremely small, and hard to describe, really, as "adding a splash screen". We're setting a background color, which will be what shows before our React elements have mounted and are showing. [1] https://github.com/expo/expo/tree/master/packages/expo-splash-screen#-configure-android [2] https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/React.20Navigation.20v5/near/1042794 [3] zulip#4279 (comment) [4] zulip#4279 (comment) Fixes: zulip#2756
When the app loads it displays a white screen which seems a bit odd, so I guess you guys should add a splash screen. I would be happy do it for the android (since I don't have a mac) part using this blog, because I have done it once before.
The text was updated successfully, but these errors were encountered: