diff options
-rw-r--r-- | ios/Podfile.lock | 6 | ||||
-rw-r--r-- | ios/app/AppDelegate.mm | 7 | ||||
-rw-r--r-- | ios/app/Images.xcassets/Contents.json | 4 | ||||
-rw-r--r-- | ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json | 23 | ||||
-rw-r--r-- | ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg | bin | 0 -> 94459 bytes | |||
-rw-r--r-- | ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg | bin | 0 -> 262189 bytes | |||
-rw-r--r-- | ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg | bin | 0 -> 539273 bytes | |||
-rw-r--r-- | ios/app/LaunchScreen.storyboard | 38 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | src/App.native.tsx | 6 | ||||
-rw-r--r-- | yarn.lock | 5 |
11 files changed, 66 insertions, 24 deletions
diff --git a/ios/Podfile.lock b/ios/Podfile.lock index c7c8247ac..1076a15be 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -226,6 +226,8 @@ PODS: - RCTTypeSafety - React-Core - ReactCommon/turbomodule/core + - react-native-splash-screen (3.3.0): + - React-Core - React-perflogger (0.68.2) - React-RCTActionSheet (0.68.2): - React-Core/RCTActionSheetHeaders (= 0.68.2) @@ -356,6 +358,7 @@ DEPENDENCIES: - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - react-native-splash-screen (from `../node_modules/react-native-splash-screen`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) @@ -422,6 +425,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/logger" react-native-safe-area-context: :path: "../node_modules/react-native-safe-area-context" + react-native-splash-screen: + :path: "../node_modules/react-native-splash-screen" React-perflogger: :path: "../node_modules/react-native/ReactCommon/reactperflogger" React-RCTActionSheet: @@ -485,6 +490,7 @@ SPEC CHECKSUMS: React-jsinspector: c5989c77cb89ae6a69561095a61cce56a44ae8e8 React-logger: a0833912d93b36b791b7a521672d8ee89107aff1 react-native-safe-area-context: dfe5aa13bee37a0c7e8059d14f72ffc076d120e9 + react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457 React-perflogger: a18b4f0bd933b8b24ecf9f3c54f9bf65180f3fe6 React-RCTActionSheet: 547fe42fdb4b6089598d79f8e1d855d7c23e2162 React-RCTAnimation: bc9440a1c37b06ae9ebbb532d244f607805c6034 diff --git a/ios/app/AppDelegate.mm b/ios/app/AppDelegate.mm index 96e1cca1a..ae764ed43 100644 --- a/ios/app/AppDelegate.mm +++ b/ios/app/AppDelegate.mm @@ -9,6 +9,9 @@ // universal links #import <React/RCTLinkingManager.h> +// splash screen +#import "RNSplashScreen.h" + #if RCT_NEW_ARCH_ENABLED #import <React/CoreModulesPlugins.h> #import <React/RCTCxxBridgeDelegate.h> @@ -57,6 +60,10 @@ rootViewController.view = rootView; self.window.rootViewController = rootViewController; [self.window makeKeyAndVisible]; + + // Show the splash screen + [RNSplashScreen show]; + return YES; } diff --git a/ios/app/Images.xcassets/Contents.json b/ios/app/Images.xcassets/Contents.json index 2d92bd53f..73c00596a 100644 --- a/ios/app/Images.xcassets/Contents.json +++ b/ios/app/Images.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json b/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json new file mode 100644 index 000000000..f57e4f49c --- /dev/null +++ b/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "splash.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "splash@2x.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "splash@3x.jpg", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg b/ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg new file mode 100644 index 000000000..9925cd70e --- /dev/null +++ b/ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg b/ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg new file mode 100644 index 000000000..a42cd2ee5 --- /dev/null +++ b/ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg b/ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg new file mode 100644 index 000000000..6382a9e62 --- /dev/null +++ b/ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg Binary files differdiff --git a/ios/app/LaunchScreen.storyboard b/ios/app/LaunchScreen.storyboard index 61f6b47aa..e5542188d 100644 --- a/ios/app/LaunchScreen.storyboard +++ b/ios/app/LaunchScreen.storyboard @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> <device id="retina4_7" orientation="portrait" appearance="light"/> <dependencies> <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/> - <capability name="Safe area layout guides" minToolsVersion="9.0"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/> + <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <scenes> @@ -16,27 +16,17 @@ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="app" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb"> - <rect key="frame" x="0.0" y="202" width="375" height="43"/> - <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> - <nil key="highlightedColor"/> - </label> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-I3-ftu"> - <rect key="frame" x="0.0" y="626" width="375" height="21"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="highlightedColor"/> - </label> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" image="LaunchScreen" translatesAutoresizingMaskIntoConstraints="NO" id="3xW-LZ-8bI"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + </imageView> </subviews> - <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> - <constraint firstItem="Bcu-3y-fUS" firstAttribute="bottom" secondItem="MN2-I3-ftu" secondAttribute="bottom" constant="20" id="OZV-Vh-mqD"/> - <constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/> - <constraint firstItem="MN2-I3-ftu" firstAttribute="centerX" secondItem="Bcu-3y-fUS" secondAttribute="centerX" id="akx-eg-2ui"/> - <constraint firstItem="MN2-I3-ftu" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" id="i1E-0Y-4RG"/> - <constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/> - <constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="x7j-FC-K8j"/> + <constraint firstAttribute="bottom" secondItem="3xW-LZ-8bI" secondAttribute="bottom" id="Qjl-JH-apV"/> + <constraint firstItem="3xW-LZ-8bI" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="c7a-bI-Hl7"/> + <constraint firstAttribute="trailing" secondItem="3xW-LZ-8bI" secondAttribute="trailing" id="vM9-Qy-zds"/> + <constraint firstItem="3xW-LZ-8bI" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="yhO-am-Ve0"/> </constraints> - <viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/> </view> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -44,4 +34,10 @@ <point key="canvasLocation" x="52.173913043478265" y="375"/> </scene> </scenes> + <resources> + <image name="LaunchScreen" width="500" height="750"/> + <systemColor name="systemBackgroundColor"> + <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + </systemColor> + </resources> </document> diff --git a/package.json b/package.json index a8df392df..3b0293601 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "react-native-root-toast": "^3.4.0", "react-native-safe-area-context": "^4.3.1", "react-native-screens": "^3.13.1", + "react-native-splash-screen": "^3.3.0", "react-native-svg": "^12.4.0", "react-native-url-polyfill": "^1.3.0", "react-native-web": "^0.17.7" diff --git a/src/App.native.tsx b/src/App.native.tsx index a220fab3b..e6be77225 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -2,6 +2,7 @@ import 'react-native-url-polyfill/auto' import React, {useState, useEffect} from 'react' import {RootSiblingParent} from 'react-native-root-siblings' import {GestureHandlerRootView} from 'react-native-gesture-handler' +import SplashScreen from 'react-native-splash-screen' import {whenWebCrypto} from './platform/polyfills.native' import * as view from './view/index' import {RootStoreModel, setupState, RootStoreProvider} from './state' @@ -19,7 +20,10 @@ function App() { view.setup() return setupState() }) - .then(setRootStore) + .then(store => { + setRootStore(store) + SplashScreen.hide() + }) }, []) // show nothing prior to init diff --git a/yarn.lock b/yarn.lock index 6f1141a61..399b1c931 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10224,6 +10224,11 @@ react-native-screens@^3.13.1: react-freeze "^1.0.0" warn-once "^0.1.0" +react-native-splash-screen@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/react-native-splash-screen/-/react-native-splash-screen-3.3.0.tgz#3af71ed17afe50fee69590a45aec399d071ead02" + integrity sha512-rGjt6HkoSXxMqH4SQUJ1gnPQlPJV8+J47+4yhgTIan4bVvAwJhEeJH7wWt9hXSdH4+VfwTS0GTaflj1Tw83IhA== + react-native-svg@^12.4.0: version "12.4.4" resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.4.4.tgz#2ba684eaea9a7402fbbe0ed9737e77284631d00e" |