Collection of tools for coding in Kotlin
Go to file
InsanusMokrassar 269da7f155 update dependencies and fill changelog 2023-04-13 11:20:34 +06:00
.github/workflows remove redundant fix of android 32 dx files from worflows 2022-12-05 07:09:31 +06:00
android migration onto toml 2022-03-10 17:04:05 +06:00
common experimentally add linuxx64 and mingwx64 as target platforms 2023-04-03 22:35:41 +06:00
coroutines add preloadImage 2023-04-07 01:17:04 +06:00
crypto experimentally add linuxx64 and mingwx64 as target platforms 2023-04-03 22:35:41 +06:00
dokka fixes in source roots of dokka 2022-12-05 07:47:35 +06:00
fsm Update DefaultStatesManager.kt 2023-03-02 21:35:59 +06:00
gradle update dependencies and fill changelog 2023-04-13 11:20:34 +06:00
koin add readme to generator and add several fixes in processor 2023-02-22 10:20:15 +06:00
ktor simplify API of MPPFile.input 2023-04-04 01:26:18 +06:00
language_codes Update build.gradle 2023-02-20 00:19:27 +06:00
matrix update matrix test 2021-02-11 15:12:21 +06:00
mime_types experimentally add linuxx64 and mingwx64 as target platforms 2023-04-03 22:35:41 +06:00
pagination improvements in ReadKeyValueFromCRUDRepo 2023-02-17 13:45:22 +06:00
repos update kv and crud tests 2023-03-10 22:08:35 +06:00
safe_wrapper improve default runCatchingSafely/safelyWithResult and add suspend variances of safe/unsafe SafeWrapper interface 2022-12-09 12:14:24 +06:00
selector/common migration onto toml 2022-03-10 17:04:05 +06:00
serialization add android manifest to mapper module 2023-03-09 22:23:56 +06:00
startup improve start launcher plugin logs 2023-02-22 10:28:25 +06:00
.gitignore ignore kotlin-js-store folder 2021-12-28 21:19:47 +06:00
CHANGELOG.md update dependencies and fill changelog 2023-04-13 11:20:34 +06:00
LICENSE Initial commit 2020-09-15 17:57:00 +06:00
README.md update readme 2021-01-14 20:55:32 +06:00
_config.yml Set theme jekyll-theme-cayman 2020-12-05 18:57:46 +06:00
build.gradle update dependencies and fill changelog 2023-04-13 11:20:34 +06:00
build_and_publish.sh update publishing scripts 2020-11-10 20:53:08 +06:00
changelog_parser.sh Update and rename changelog_info_retriever to changelog_parser.sh 2020-10-16 21:37:24 +06:00
defaultAndroidSettings.gradle remove redundant part from defaultAndroidSettings.gradle 2023-02-27 22:46:08 +06:00
extensions.gradle add generator for koin definitions 2023-02-22 01:34:42 +06:00
github_release.gradle Update github_release.gradle 2022-06-30 10:12:54 +06:00
gradle.properties update version 2023-04-03 22:54:57 +06:00
gradlew init with pagination 2020-09-15 18:57:41 +06:00
gradlew.bat init with pagination 2020-09-15 18:57:41 +06:00
jvm.publish.gradle add generator for koin definitions 2023-02-22 01:34:42 +06:00
jvm.publish.kpsb add generator for koin definitions 2023-02-22 01:34:42 +06:00
mppAndroidProject.gradle updates in scripts and update core ktx 2021-11-09 14:03:51 +06:00
mppJavaProject.gradle updates in scripts and update core ktx 2021-11-09 14:03:51 +06:00
mppJsAndJavaProject.gradle start fix startup 2022-12-14 22:26:23 +06:00
mppProjectWithSerialization.gradle experimentally add linuxx64 and mingwx64 as target platforms 2023-04-03 22:35:41 +06:00
mppProjectWithSerializationAndCompose.gradle now all android modules depends on jvm 2023-02-28 19:08:39 +06:00
publish.gradle get back publishing signing 2023-02-27 15:43:52 +06:00
publish.kpsb add gitea repo 2022-11-16 21:35:18 +06:00
settings.gradle add mapper serializer 2023-03-09 21:55:07 +06:00

README.md

MicroUtils

This is a library with collection of tools for working in Kotlin environment. First of all, this library collection is oriented to use next technologies:

Android environment

You always can look at the properties file to get information about current project dependencies, compile and build tools for Android target.

Projects

  • common contains common tools for platform which usually are absent out-of-the-box when you starting project
  • selector contains tools to use Selector interface with things like RecyclerView in android or other selection needs
  • coroutines is a module for Kotlin Coroutines with different things like subscribing on flows (onEach + launchIn shortcut :) )
  • ktor is a set of modules for clients and servers
  • mime_types is NOT lightweight set of MimeTypes with a lot of different objected and serializable (with Kotlin Serialization) mime types
  • pagination is a complex of modules (explanation in Complex modules structure section) for lightweight pagination
  • serialization is a collection of projects with serializers for kotlinx.serialization
  • repos is a complex of modules (explanation in Complex modules structure section) for KeyValue/OneToMany/CRUD repos created to be able to exclude some heavy dependencies when you need some simple and lightweight typical repositories

Complex modules structure

Most of complex modules are built with next hierarchy:

  • common submodule for API things which are common for all platforms
  • exposed submodule contains realizations for exposed tables
  • ktor submodule is usually unavailable directly, because it contains its own submodules for clients and servers
    • common part contains routes which are common for clients and servers
    • client submodule contains clients which are usually using UnifiedRequester to make requests using routes from ktor/common module and some internal logic of requests
    • server submodule (in most cases JVM-only) contains some extensions for Route instances which usually will give opportunity to proxy internet requests from ktor/client realization to some proxy object