Skip to content

Storyblok Kotlin Multiplatform SDK (Android, JVM, JS, iOS, ...)

License

Notifications You must be signed in to change notification settings

mikepenz/storyblok-mp-SDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c773858 · Feb 21, 2025
Feb 21, 2025
Nov 25, 2020
Feb 21, 2025
Feb 21, 2025
Feb 21, 2025
Jun 17, 2024
Feb 6, 2021
Dec 25, 2019
Jan 3, 2021
Dec 25, 2019
Feb 21, 2025
Apr 15, 2022
Feb 21, 2025
Feb 21, 2025
Feb 21, 2025
Feb 21, 2025
Feb 21, 2025

Repository files navigation

Storyblok-mp-SDK

... a Storyblok Client SDK written using Kotlin Multiplatform. (Android, JVM, JS, iOS, ...)



What's included 🚀About StoryblokSetup 🛠️Usage 🛠️License 📓


What's included 🚀

  • Super simple setup
  • Cross-platform ready
  • Lightweight

About Storyblok


Setup

Using Gradle

Multiplatform

For multiplatform projects specify this single dependency via Maven Central:

dependencies {
    implementation("com.mikepenz:storyblok-mp-sdk:${version}")
}

JVM

To use the Storyblok SDK on JVM, you have to include:

dependencies {
    implementation("com.mikepenz:storyblok-mp-sdk-jvm:${version}")
}

Android

For Android a special dependency is provided:

dependencies {
    implementation("com.mikepenz:storyblok-mp-sdk-android:${version}")
}

iOS

For iOS you will have to use the Kotlin Native support and use the following dependency:

dependencies {
    implementation("com.mikepenz:storyblok-mp-sdk-ios:${version}")
}

JS

For JS (node-js) applications you will have to use the Kotlin JS support and the following dependency:

dependencies {
    implementation("com.mikepenz:storyblok-mp-sdk-js:${version}")
}


Usage

Init client

val client = Storyblok("your-storyblok-token")

General

This Kotlin multi platform library uses Kotlin coroutines for the requests (similar to the ktor API). All fetch methods are suspending functions, and need to be called respectively.

Load a story

client.fetchStory("full_slug:id:uuid")
// All Storyblok params are supported, see javadoc for more information

Load a list of stories

client.fetchStories()
// All Storyblok params are supported, see javadoc for more information

Load current space

client.fetchCurrentSpace()

Load a list of datasources

client.fetchDatasources()
// All Storyblok params are supported, see javadoc for more information

Load a map of datasource entries

client.fetchDatasourceEntries()
// All Storyblok params are supported, see javadoc for more information

Load a list of map of links with their uuid as key

client.fetchLinks()
// All Storyblok params are supported, see javadoc for more information

Load a list of tags

client.fetchTags()
// All Storyblok params are supported, see javadoc for more information

Libs used in android sample app:

Mike Penz:

Developed By

Contributors

This free, open source software was also made possible by a group of volunteers that put many hours of hard work into it. See the CONTRIBUTORS.md file for details.

License

Copyright 2025 Mike Penz

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.