Collection of tools for coding in Kotlin
Go to file
InsanusMokrassar 123b848d74 update matrix test 2021-02-11 15:12:21 +06:00
.github/workflows add build workflow 2021-01-27 23:56:03 +06:00
android replaces 2020-11-23 18:32:14 +06:00
common fill changelog, deprecate base64 in common and update serialization dependencies 2021-01-23 11:56:58 +06:00
coroutines add inline functions in DoWithFirstBuilder 2021-02-05 16:09:08 +06:00
crypto copy base64 test in crypto 2021-01-23 12:02:19 +06:00
dokka Update build.gradle 2020-11-23 18:46:52 +06:00
gradle/wrapper update wrapper 2021-01-27 23:57:21 +06:00
ktor add defaultSafelyExceptionHandler and SafelyExceptionHandler 2020-12-22 15:16:06 +06:00
matrix update matrix test 2021-02-11 15:12:21 +06:00
mime_types remove kotlin android extensions 2020-11-23 17:27:52 +06:00
pagination change order in iterable to skip changing of pagination on no left elements error 2020-12-01 15:48:37 +06:00
repos safely fixes 2020-12-22 15:42:11 +06:00
selector/common add functionality to selector 2020-12-14 20:01:37 +06:00
serialization add Base64BytesToFromStringSerializer 2021-01-28 15:38:22 +06:00
.gitignore successfuly add android project 2020-11-10 14:33:47 +06:00
.travis.yml update kotlin 2020-11-20 13:10:40 +06:00
CHANGELOG.md add matrix 2021-02-11 14:43:07 +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 version of klock and remove gradle bintray plugin 2020-11-22 19:12:10 +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 update ktor 2020-12-02 16:21:31 +06:00
extensions.gradle experimentally update extension internalProject 2020-11-10 23:55:11 +06:00
github_release.gradle Update github_release.gradle 2020-10-16 21:39:52 +06:00
gradle.properties start 0.4.25 2021-02-11 14:31:05 +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
mppAndroidProject fixes in gradle files 2020-11-11 16:06:44 +06:00
mppJavaProject update scripts 2021-02-06 00:51:31 +06:00
mppProjectWithSerialization update scripts 2021-02-06 00:51:31 +06:00
pubconf.kpsb update scripts 2021-02-06 00:51:31 +06:00
publish.gradle update scripts 2021-02-06 00:51:31 +06:00
settings.gradle add matrix 2021-02-11 14:43: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