Migration to SDK 3.0

The migration to JOIN Stories SDK 3.0 offers several enhancements and new features that improve the functionality and performance of the experience in your application.

This guide will help you smoothly migrate your existing implementation to JOIN Stories SDK 3.0.

SDK Initialization

When you wanted to initialise the SDK in your AppDelegate class, you had to create a JoinConfiguration object and add it to JoinStories.setConfiguration(configuration). Now you need to use :

JOINStoriesConfiguration.setValues(teamId: "<your_join_team_id>")

UI Customizations

Bubble View

Integration

The integration of a bubble widget has been improved and simplified. Before, you had to integrate BasicThumbViewController and StoryPlayer views like that :

class YourThumbViewController: UIViewController {
   let thumbView = BasicThumbViewController()
   let config = JoinStoriesThumbConfig(alias: "<YOUR_ALIAS>", ...)

   override func viewDidLoad() {
        ...
     		contentView.addSubview(thumbView.view)
        thumbView.startThumbView(config: config)
   }
}

Now you just need to integrate the bubble with BubbleTriggerView. The player is fully managed by the SDK :

let bubbleTriggerView = BubbleTriggerView(alias: "<your_join_alias>")    
view.addSubview(bubbleTriggerView)

πŸ“˜

Info

On the previous SDK, widgets were of type UIViewController. For easier integration, widgets are now of type UIView.

Configuration

To customize bubble and player, you had to use JoinStoriesThumbConfig to customize the widget and player. To simplify reading and configuration management, you now need to use two configuration classes for the widget and the player :

let bubbleConfigurationModel = JoinStoriesBubbleConfigurations(...)
let playerConfiguration = JoinStoriesPlayerConfigurations(...)
let bubbleTriggerView = BubbleTriggerView(bubbleConfigurationModel, playerConfiguration, ...)

Bubble Initialization

To initialize stories data, you just need to add the alias in the BubbleTriggerView constructor :

let bubbleTriggerView = BubbleTriggerView(alias: "<your_join_alias>")

Deeplink

The integration and use of deeplinks has been modified. You can find details of the implementation here: Deeplink.

Configurations changes

Bubble View

ParametersChangesInformations
showPlayButtonNewAllow to display a play button
thumbViewSizeNewBubble thumbview size can now be customized
labelFont (fontName)ModifiedFont size of labels can now be modified (replace the old fontName parameter)
thumbViewOverlayColorRemovedWe now have animations to show clicks on bubbles, overlay is not needed anymore.
loaderInnerViewWidthRemovedAlways the same width to respect UI standards
loaderInnerViewColorRemovedAlways transparent to respect UI standards

Player

ParametersChangesInformations
playerShowShareButtonRemovedThe sharing is now always disabled (may be updated in the future)
playerClosingButtonRemovedThe closing button is now always displayed