trikot.foundation

Introduction: Core utilities for Kotlin Multiplatform
More: Author   ReportBugs   OfficialWebsite   
Tags:

See the new trikot repository for releases starting from 3.0.0.

Trikot.foundation

Kotlin Multiplatform implementation of threads, timers, atomic references, string utilities and iso8601 dates.

AtomicReference and AtomicListReference

AtomicReference implementation on all platform

val atom = AtomicReference("a")
atom.compareAndSet("a", "b")
atom.setOrThrow("c", "b") // Will throw

val list = AtomicListReference<String>()
list.add("a") // Thread safely adds "a"
list.remove("a") // Thread safely removes "a"

Timers

Single and repeatable multiplatform timer implementations

 val doOnceTimer = TimerFactory.single(12.seconds) { doSomething() }
 val repeatTimer = TimerFactory.repeatable(12.seconds) { doSomething() }
 repeatTimer.cancel() // stop the timer

Strings

Multiplatform string extensions for formating, normalizing

val string = "Où sont les bûches de Noël durant l'été?".normalize()
string == "Ou sont les buches de Noel durant l'ete?" // true

Dates (Basic from and to ISO8601)

Multiplatform iso date implementation

val now = Date.now()            // GMT
val date = now + 5.seconds
val isoDate = date.toISO8601()  // yyyy-MM-dd:mm:dd:ssZ
val otherDate = Date.fromISO8601(isoDate)
otherDate == date               // true

Multiplatform freezing

Allow freezing in common code. Does nothing in js and JVM.

freeze(objectToFreeze)

In swift, use access freeze via MrFreezeKt class helper to freeze object.

MrFreezeKt.freeze(objectToFreeze: objectToFreeze)

Dispatch Queues

While waiting for Sharing of coroutines across threads in Kotlin/Native to work correctly. Trikot.foundation provide a standard Thread model based on queues. When this issue will be resolved, DispatchQueues will be converted to Coroutines.

See: Dispatch Queues

Installation

Import dependencies
    api "com.mirego.trikot:trikotFoundation:$trikot_foundation_version"
    jvm "com.mirego.trikot:trikotFoundation-jvm:$trikot_foundation_version"
    js "com.mirego.trikot:trikotFoundation-js:$trikot_foundation_version"
    android "com.mirego.trikot:trikotFoundation-android:$trikot_foundation_version"
    iosx64 "com.mirego.trikot:trikotFoundation-iosx64:$trikot_foundation_version"
    iosarm64 "com.mirego.trikot:trikotFoundation-iosarm64:$trikot_foundation_version"
    iosarm32 "com.mirego.trikot:trikotFoundation-iosarm32:$trikot_foundation_version"
    tvosx64 "com.mirego.trikot:trikotFoundation-tvosx64:$trikot_foundation_version"
    tvosarm64 "com.mirego.trikot:trikotFoundation-tvosarm64:$trikot_foundation_version"

License

Trikot.foundation is © 2018-2019 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We’re a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools