React Native Shopify App UI Clone #1 : Implementing Splash Screen
Tags: reactnativeshopify
Published: 2019-10-27 14:44:41

---
title: React Native Shopify App UI Clone #1 : Implementing Splash Screen
published: true
date: 2019-10-26 12:49:34 UTC
tags: React Native Shopify
canonical_url: https://kriss.io/react-native-shopify-app-ui-clone-1-implementing-splash-screen/
cover_image: https://kriss.io/wp-content/uploads/2019/10/react-native-shopify.png
---

This tutorial is the first part of our implementation of the React Native Shopify app UI Clone tutorial series. The inspiration for this tutorial series came from the [React Native Shopify template](https://www.instamobile.io/app-templates/react-native-shopify-app/?ref=4094&campaign=dev.to) which provides dynamic and powerful ready to deploy Shopify starter template. Hence, anyone can use the template to build eCommerce startups or sell the application templates. Shopify is a popular eCommerce type app that allows its users to create an online store and sell their products to the customers. So in this tutorial series, we will try to replicate its UI as close to it as possible. In this part, we are going to implement the splash screen in the React Native app using the latest version of React Native and required plugins.

### Overview

In this part, we are going to implement the Splash Screen using the latest version of React Native and plugins. Most of the phases in this tutorial are going to take place in Xcode as we need to configure the iOS part of the app for displaying the Splash Screen. The idea is to add the required splash screen icons and configure the native iOS app directory in the Xcode. We are going to make use of the **react-native-splash-screen** package in the React Native part as well as the iOS part to display the splash screen accurately. Most of the work takes place in Xcode for configuring the splash screen and only some minor part is for the react-native side.

If we realize, there is already a default splash screen from react native project. But we are going to implement our own splash screen with a Shopify logo icon for our React Native Shopify App UI clone project. For now, we have just put some text on the splash screen which is displayed in the emulator simulation below:

![](https://media.giphy.com/media/Tj4BK0fQ3zgE5HhqoG/giphy.gif)

## Downloading Required Logo

For this tutorial series, we have the Shopify logo icon which we are going to place in the splash screen. The download link for the logo is provided below:

> #### [Shopify free vector icons designed by Freepik](https://www.flaticon.com/free-icon/shopify_349284#term=shopify&page=1&position=4)
> 
> Free vector icon. Download thousands of free icons of business and finance in SVG, PSD, PNG, EPS format or as ICON FONT


 

 

 

## Installing Splash Screen package

Here, we are going to install the [react-native-splash-screen](https://github.com/crazycodeboy/react-native-splash-screen) package into our project. The react-native-splash-screen package facilitates the splash screen API for react-native which can handle the hide and show the splash screen. This package works both on iOS as well as Android. All the configuration for the React Native part as well as the native part is provided in the documentation. Now, to install the package, we need to use the following command:

```javascript
>>>yarn add react-native-splash-screen

```

If the installation does not work, we can check the documentation for manual configuration.

Now, we need to update the pod. For that, we need to go to the iOS folder and run the following commands:

```javascript
>>>cd ios 
>>>pod update
```

 

## Configuring Splash Screen in Xcode

In this step, we are going to configure the app in Xcode to implement the splash screen. First,  we need to open our project on Xcode as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3e87bef2b5.png)

Next, we need to add our app logo to the ‘Images.xcassets’ folder. For that, we need to navigation to ‘Images.xcassets’ folder and create **New Image Set** as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3ea33460b6.jpg)

Then, we need to rename the new image set as `SplashScreen`. Next, we need to add our app logo images to the `SplashScreen` image set as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3eb3da2088.png)

 

Now, we need to open ‘LaunchScreen.xib’ file where we can find our default splash screen as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3eb9a152f3.png)

As we can see, all the default setups are shown in the right configuration panel of Xcode.

Now,  we need to remove the default text and navigate to the ‘View” tab of the panel.  Here, we are going to change the background color to light green as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3ee2f8a356.png)

Next, we need to add our app logo by clicking on a `Image View` button in the image as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3ee7036b4a.png)

Now, we will have the `UIImageView` as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3ee9e8d778.png)

Next, we need to add the SplashScreen image set to the Image View tab of the right panel. The SplashScreen image is to be added to the Image field as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3eec717250.png)

Hence, we will get our Shopify logo into our `UIImageView`. Now, we have successfully completed the styling of the splash screen.

Next, we need to add the react-native-splash-screen package to the Xcode.

 

## Activating splash screen for iOS in Xcode

Here, we are going to integrate the react-native-splash-screen into our Xcode ios project. For that, we need to go to:

`node_modules` ➜ `react-native-splash-screen` ➜ ios

 Then, we need to add `SplashScreen.xcodeproj`file to it as shown in the screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3ef17330b1.png)

Next, we need to go to Build Settings → Search Paths → Header Search Paths of the Xcode and add the following path:

`$(SRCROOT)/../node_modules/react-native-splash-screen/ios`

The visual representation of this step is shown in the screenshot below with arrows. We can following the arrow diagrams to find the exact place to enter the above path.

![](https://kriss.io/wp-content/uploads/2019/10/img_5db3f44a4bbdb.jpg)

Lastly, we need to import the react-native-splash-screen package into the Appdelegate.m file and activate the splash screen. Here, the package is imported as “RNSplashScreen.h“. Now, to trigger the splash screen, we need to add [`RNSplashScreen show`] at the position as shown in the code snippet screenshot below:

![](https://kriss.io/wp-content/uploads/2019/10/img_5da6cf22c0e13.png)

Now, if we re-run the project in our iOS emulator, we will get the following result:

 

![Animated GIF](https://media.giphy.com/media/XI1Suy0wylyBiHCMRK/giphy.gif)

As we can see, the splash screen appears when we launch the app. But, it stays there and does not hide automatically to display the app screen. So, our next step is to hide the splash screen when the react native app screen is mounted.

 

## Hiding the Splash Screen

In this step, we are going to hide the splash screen after the react native app screen successfully mounts. For that, we need to go back to the App.js file of our React Native project and make use of the react-native-splash-screen package. First, we need to import the react-native-splash-screen package as a `SplashScreen` module in our App.js file as shown in the code snippet below:

```javascript
import SplashScreen from 'react-native-splash-screen';
```

Then, we need to call the `hide()` function provided by `SplashScreen` module inside the `componentDidMount()` function as shown in the code snippet below:

```javascript
export default class App extends React.Component {
  componentDidMount() {
    // do stuff while splash screen is shown
    // After having done stuff (such as async tasks) hide the splash screen
    SplashScreen.hide();
  }
```

This will help to hide the splash screen as soon as the app screen mounts.

Now, if we re-run our project in the emulator, we will get the following result:

> #### [Animated GIF – Find & Share on GIPHY](https://giphy.com/gifs/TIdeeFnYy7zq0IQx03)
> 
> Discover & share this Animated GIF with everyone you know. GIPHY is how you search, share, discover, and create GIFs.


 

As we can see, the splash screen appears when we launch the app and then successfully hides after the component is mounted.

Finally, we have successfully completed the implementation of the Splash Screen in our React Native Shopify app UI clone.

 

 

## Conclusion

This tutorial is the first part of the React Native Shopify app UI clone tutorial series. Here, we learned how to add the logo as an image set to the required folder in the Xcode in order to implement the splash screen. Then, we got the step by step guide on how to configure the iOS part in the Xcode in order to display the splash screen. Lastly, we also learned how to make use of the react-native-splash-screen package in both the React Native part as well as the native iOS part in XCode for showing and hiding the splash screen.

_Note that the tutorial for the configuration of **the splash screen in the Android platform** is available in a separate [tutorial article](https://dev.to/absek/build-react-native-e-commerce-app-2-splash-screen-in-android-52de). We can follow the steps in that tutorial in other to implement the same splash screen for the Android platform._

Moreover, in the upcoming parts, we will build some cool walkthrough screens that introduce our app to the users.

The post [React Native Shopify App UI Clone #1 : Implementing Splash Screen](https://kriss.io/react-native-shopify-app-ui-clone-1-implementing-splash-screen/) appeared first on [Kriss](https://kriss.io).


## Disclosure
This post includes affiliate links; I may receive compensation if you purchase
products or services from different links provided in this article.