# Quick Start

This walkthrough shows how to add Storyly to your React Native application and show your first story in it.

You can also check out the demo on GitHub

Storyly Demo for React Native (opens new window)

Before you begin

This walkthrough contains sample instance information. However, if you want to work with your own content as well, please login into Storyly Dashboard (opens new window) and get your instance token.

The sample instance information for testing purposes;

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY2NfaWQiOjc2MCwiYXBwX2lkIjo0MDUsImluc19pZCI6NDA0fQ.1AkqOy_lsiownTBNhVOUKc91uc9fDcAxfQZtpm3nj40

# Installation

Storyly React Native package is available through npm (opens new window). Source code is also available through the Storyly React Native Github page. (opens new window), contributions are more than welcomed 🙂

    # Android Installation

    Storyly SDK is developed using Kotlin language. So, there are some requirements to use Kotlin plugin in the project. Especially if you're encountering a Plugin with id 'kotlin-android' not found. error, this part fixes that.

    You need to add kotlin-gradle-plugin to Android project's main Gradle file (android/build.gradle)



     



    buildscript {
        dependencies {
            classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30")
        }
    }
    

    Moreover, Storyly SDK is developed using the AndroidX library package instead of the Support Library. So, you need to ensure that your project also supports these packages. You can do this check and add related lines if it's missing in the application's Android project's Gradle properties file (android/gradle.properties)

    android.useAndroidX=true
    android.enableJetifier=true
    

    WARNING

    Storyly SDK targets Android API level 17 (Android 4.2, Jelly Bean) or higher.

    # iOS Installation

    Storyly React Native contains platform-specific (native) code. Autolinking is needed to be done so that your project can discover and use this code. If your application depends on react-native 0.60+, Autolinking is handled by react native as is mentioned in autolinking in react-native (opens new window). Otherwise, react-native 0.60-, please refer for detailed explanation Linking Libraries in iOS (opens new window) for correct handling of autolinking.

    // react-native 0.60-
    react-native link storyly-react-native
    

    After linking, you need to update Pods of the app;

      WARNING

      Please note that you need to use Storyly with use_frameworks! option in Podfile. If you need to add it without using use_frameworks! option, add following lines to your Podfile before updating Pods

      dynamic_frameworks = ['Storyly', 'SDWebImage']
      pre_install do |installer|
        installer.pod_targets.each do |pod|
          if dynamic_frameworks.include?(pod.name)
            def pod.dynamic_framework?;
              true
            end
            def pod.build_type;
              Pod::BuildType.dynamic_framework
            end
          end
        end
      end
      

      WARNING

      Storyly SDK targets iOS 9 or higher.

      WARNING

      Please note that CocoaPods (opens new window) version should be 1.9+

      # Import Storyly

      Importing Storyly in your React Native application is quite easy:

      import { Storyly } from 'storyly-react-native';
      

      # Initialize Storyly

      Storyly extends Component so that you can use inherited functionality as it is. You can add the following lines inside any view of your app;

      <Storyly
        style={{ width: '100%', height: 120 }}
        ref={ref => { this.storyly = ref }}
        storylyId=STORYLY_INSTANCE_TOKEN/>      
      

      WARNING

      storylyId: It's required for your app's correct initialization.

      TIP

      Please do not forget to use your own token. You can get your token from the Storyly Dashboard -> Settings -> App Settings (opens new window)

      Just hit the run. Now, you should be able to enjoy Storyly 🎉!

      WARNING

      If you can't see Storyly in your application, please check that your token is correct. For more details please check console logs.