Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikepenz/storyblok-mp-sdk
Storyblok Kotlin Multiplatform SDK (Android, JVM, JS, iOS, ...)
https://github.com/mikepenz/storyblok-mp-sdk
android hacktoberfest kotlin kotlin-multiplatform kotlin-native storyblok storyblok-client
Last synced: 3 months ago
JSON representation
Storyblok Kotlin Multiplatform SDK (Android, JVM, JS, iOS, ...)
- Host: GitHub
- URL: https://github.com/mikepenz/storyblok-mp-sdk
- Owner: mikepenz
- License: apache-2.0
- Created: 2019-12-25T09:10:10.000Z (about 5 years ago)
- Default Branch: develop
- Last Pushed: 2024-06-17T15:38:13.000Z (7 months ago)
- Last Synced: 2024-10-30T01:56:04.792Z (3 months ago)
- Topics: android, hacktoberfest, kotlin, kotlin-multiplatform, kotlin-native, storyblok, storyblok-client
- Language: Kotlin
- Homepage: https://www.storyblok.com/
- Size: 545 KB
- Stars: 22
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
storyblok-mp-SDK
... a Storyblok Client SDK written using Kotlin Multiplatform. (Android, JVM, JS, iOS, ...)
-------
What's included 🚀 •
About Storyblok •
Setup 🛠️ •
Usage 🛠️ •
License 📓-------
### What's included 🚀
- Super simple setup
- Cross-platform ready
- Lightweight-------
## About Storyblok
- **WEBSITE** https://www.storyblok.com/
- **API DOC** https://www.storyblok.com/docs/api/content-delivery/v2-------
## Setup
### Using GradleMultiplatform
For multiplatform projects specify this single dependency via [Maven Central](https://search.maven.org/artifact/com.mikepenz/storyblok-mp-sdk):
```kotlin
dependencies {
implementation("com.mikepenz:storyblok-mp-sdk:${version}")
}
```JVM
To use the storyblok SDK on JVM, you have to include:
```kotlin
dependencies {
implementation("com.mikepenz:storyblok-mp-sdk-jvm:${version}")
}
```Android
For Android a special dependency is provided:
```kotlin
dependencies {
implementation("com.mikepenz:storyblok-mp-sdk-android:${version}")
}
```iOS
For iOS you will have to use the Kotlin Native [support](https://github.com/JetBrains/kotlin-native) and use the following dependency:
```kotlin
dependencies {
implementation("com.mikepenz:storyblok-mp-sdk-ios:${version}")
}
```JS
For JS (node-js) applications you will have to use the Kotlin JS [support](https://kotlinlang.org/docs/tutorials/javascript/kotlin-to-javascript/kotlin-to-javascript.html) and the following dependency:
```kotlin
dependencies {
implementation("com.mikepenz:storyblok-mp-sdk-js:${version}")
}
```-------
## Usage
### Init client```kotlin
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
```kotlin
client.fetchStory("full_slug:id:uuid")
// All storyblock params are supported, see javadoc for more information
```### Load a list of stories
```kotlin
client.fetchStories()
// All storyblock params are supported, see javadoc for more information
```### Load current space
```kotlin
client.fetchCurrentSpace()
```### Load a list of datasources
```kotlin
client.fetchDatasources()
// All storyblock params are supported, see javadoc for more information
```### Load a map of datasource entries
```kotlin
client.fetchDatasourceEntries()
// All storyblock params are supported, see javadoc for more information
```### Load a list of map of links with their uuid as key
```kotlin
client.fetchLinks()
// All storyblock params are supported, see javadoc for more information
```### Load a list of tags
```kotlin
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](http://mikepenz.com) -
* [paypal.me/mikepenz](http://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](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 athttp://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.