mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2024-11-22 16:23:50 +00:00
Collection of tools for coding in Kotlin
complex-moduleshacktoberfesthacktoberfest2020kotlinkotlin-androidkotlin-jskotlin-librarykotlin-multiplatformkotlin-multiplatform-library
.github/workflows | ||
android | ||
common | ||
coroutines | ||
crypto | ||
dokka | ||
fsm | ||
gradle | ||
koin | ||
ktor | ||
language_codes | ||
matrix | ||
mime_types | ||
pagination | ||
repos | ||
selector/common | ||
serialization | ||
_config.yml | ||
.gitignore | ||
build_and_publish.sh | ||
build.gradle | ||
changelog_parser.sh | ||
CHANGELOG.md | ||
defaultAndroidSettings.gradle | ||
extensions.gradle | ||
github_release.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
mppAndroidProject.gradle | ||
mppJavaProject.gradle | ||
mppProjectWithSerialization.gradle | ||
mppProjectWithSerializationAndCompose.gradle | ||
publish.gradle | ||
publish.kpsb | ||
README.md | ||
settings.gradle |
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 projectselector
contains tools to useSelector
interface with things likeRecyclerView
in android or other selection needscoroutines
is a module forKotlin Coroutines
with different things like subscribing on flows (onEach
+launchIn
shortcut :) )ktor
is a set of modules forclient
s andserver
smime_types
is NOT lightweight set ofMimeType
s with a lot of different objected and serializable (withKotlin Serialization
) mime typespagination
is a complex of modules (explanation in Complex modules structure section) for lightweight paginationserialization
is a collection of projects with serializers forkotlinx.serialization
repos
is a complex of modules (explanation in Complex modules structure section) forKeyValue
/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 forAPI
things which are common for all platformsexposed
submodule contains realizations for exposed tablesktor
submodule is usually unavailable directly, because it contains its own submodules for clients and serverscommon
part contains routes which are common for clients and serversclient
submodule contains clients which are usually usingUnifiedRequester
to make requests using routes fromktor/common
module and some internal logic of requestsserver
submodule (in most casesJVM
-only) contains some extensions forRoute
instances which usually will give opportunity to proxy internet requests fromktor/client
realization to some proxy object