storyblok-mp-SDK
... a Storyblok Client SDK written using Kotlin Multiplatform. (Android, JVM, JS, iOS, ...)
What's included
🚀
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 storyblock params are supported, see javadoc for more information
Load a list of stories
client.fetchStories()
// All storyblock params are supported, see javadoc for more information
Load current space
client.fetchCurrentSpace()
Load a list of datasources
client.fetchDatasources()
// All storyblock params are supported, see javadoc for more information
Load a map of datasource entries
client.fetchDatasourceEntries()
// All storyblock params are supported, see javadoc for more information
Load a list of map of links with their uuid as key
client.fetchLinks()
// All storyblock params are supported, see javadoc for more information
Load a list of tags
client.fetchTags()
// All storyblock params are supported, see javadoc for more information
Libs used in android sample app:
Mike Penz:
- FastAdapter https://github.com/mikepenz/FastAdapter
- AboutLibraries https://github.com/mikepenz/AboutLibraries
- Android-Iconics https://github.com/mikepenz/Android-Iconics
- MaterialDrawer https://github.com/mikepenz/MaterialDrawer
Developed By
- Mike Penz
- mikepenz.com - [email protected]
- paypal.me/mikepenz
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.
Credits
Some parts of the Kotlin Multiplatform configurations are a result of various great resources on the internet. Including:
- https://github.com/cashapp/sqldelight
- and the official Kotlin multiplatform docs
License
Copyright 2021 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.