From 444bcf03b5881ed1c72077e7c5fda964106e6d5a Mon Sep 17 00:00:00 2001 From: alexander Date: Sun, 28 Nov 2021 11:48:51 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9E=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D0=B4=D1=83=D1=80=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a632cd67..74745d62 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,41 @@ * Client - часть с клиентским кодом. В большинстве своём включает работу с сервером, MVVM часть (View при этом должны находиться в платформенной части, если их нельзя вынести в сommon часть клиента) * Client - итоговый клиент. На момент написания этой доки (`Пн окт 25 12:56:41 +06 2021`) предполагается два варианта: - * Мультиплатформенный проект со сборкой каждого таргета. Скорее всего, не будет использован в силу сложности настройки + * Мультиплатформенный проект со сборкой каждого таргета. Скорее всего, не будет использован в силу сложности настройки части клиентов (например, андроид) * Мультимодульный проект * Server - пока что JVM-only модуль, включающий все необходимые для сервера фичи + +____ +## Как создать контент? +К примеру требуется создать контент Binary. Для этого необходимо выполнить следующие действия +1. Скопировать папку template из core/features в core/features/content +2. Переименовать эту папку в binary +3. Внутри папки binary заменить все вхождения template на content.binary +4. В файле settings.gradle в массив includes добавить +```kt + ":features:content:binary:common", + ":features:content:binary:client", + ":features:content:binary:server", +``` +5. В папке core/features/content/binary/common/src создать серию вложенных ддруг в друга папок commonMain/kotlin/dev/inmo/postssystem/features/content/binary/common +6. В последней папке common создать по ниже приведенным примерам data class +```kt + @Serializable + data class BinaryContent( + val bytes: ByteArray + ) : Content +``` +и конфигуратор +```kt +object BinaryContentSerializerModuleConfigurator : ContentSerializersModuleConfigurator.Element { + override fun PolymorphicModuleBuilder.invoke() { + subclass(BinaryContent::class, BinaryContent.serializer()) + } +} +``` +7. В двух файлах Di, расположенных в core/client/src/commonMain/kotlin/dev/inmo/postsystem/client и core/server/src/main/java/dev/inmo/postsystem/client соответственно +```kt + singleWithRandomQualifier { BinaryContentSerializerModuleConfigurator } +``` +8. Наверное нужно написать что делать с этим теперь можно? \ No newline at end of file From a1ea6a08fa484de13c2119144039c0d083606867 Mon Sep 17 00:00:00 2001 From: alexander Date: Sun, 5 Dec 2021 13:35:38 +0000 Subject: [PATCH 2/3] I changed readme content --- README.md | 34 ---------------------------------- features/content/README.MD | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 34 deletions(-) create mode 100644 features/content/README.MD diff --git a/README.md b/README.md index 74745d62..060faacc 100644 --- a/README.md +++ b/README.md @@ -12,37 +12,3 @@ части клиентов (например, андроид) * Мультимодульный проект * Server - пока что JVM-only модуль, включающий все необходимые для сервера фичи - -____ -## Как создать контент? -К примеру требуется создать контент Binary. Для этого необходимо выполнить следующие действия -1. Скопировать папку template из core/features в core/features/content -2. Переименовать эту папку в binary -3. Внутри папки binary заменить все вхождения template на content.binary -4. В файле settings.gradle в массив includes добавить -```kt - ":features:content:binary:common", - ":features:content:binary:client", - ":features:content:binary:server", -``` -5. В папке core/features/content/binary/common/src создать серию вложенных ддруг в друга папок commonMain/kotlin/dev/inmo/postssystem/features/content/binary/common -6. В последней папке common создать по ниже приведенным примерам data class -```kt - @Serializable - data class BinaryContent( - val bytes: ByteArray - ) : Content -``` -и конфигуратор -```kt -object BinaryContentSerializerModuleConfigurator : ContentSerializersModuleConfigurator.Element { - override fun PolymorphicModuleBuilder.invoke() { - subclass(BinaryContent::class, BinaryContent.serializer()) - } -} -``` -7. В двух файлах Di, расположенных в core/client/src/commonMain/kotlin/dev/inmo/postsystem/client и core/server/src/main/java/dev/inmo/postsystem/client соответственно -```kt - singleWithRandomQualifier { BinaryContentSerializerModuleConfigurator } -``` -8. Наверное нужно написать что делать с этим теперь можно? \ No newline at end of file diff --git a/features/content/README.MD b/features/content/README.MD new file mode 100644 index 00000000..de7f58c5 --- /dev/null +++ b/features/content/README.MD @@ -0,0 +1,37 @@ +## How to create content? + +For example, you want to create content named "MyFormat". To do this, you must perform the following actions: +1. Copy "template" folder from "core/features" in "core/features/content" +2. Rename this folder in "myformat" +3. Inside the "myformat" folder rename all the "template" on "content.myformat" +4. In the "settings.gradle" file in the "includes" array add the following code: + +```kotlin + ":features:content:myformat:common", + ":features:content:myformat:client", + ":features:content:myformat:server", +``` + +5. In the "core/features/content/myformat/common/src" folder create folders with appropriate subfolders "commonMain/kotlin/dev/inmo/postssystem/features/content/myformat/common": +6. In the last folder "сommon", create a data class and the configurator as shown below: + +```kotlin + @Serializable + data class MyFormatContent( + // Your code + ) : Content +``` + +```kotlin +object MyFormatContentSerializerModuleConfigurator : ContentSerializersModuleConfigurator.Element { + override fun PolymorphicModuleBuilder.invoke() { + subclass(MyFormatContent::class, MyFormatContent.serializer()) + } +} +``` + +7. In two "di.kt" file located in "core/client/src/commonMain/kotlin/dev/inmo/postsystem/client" and "core/server/src/main/java/dev/inmo/postsystem/client" respectively add the following string: + +```kotlin + singleWithRandomQualifier { MyFormatContentSerializerModuleConfigurator } +``` \ No newline at end of file From 20024d65d9bc1062bd6ca7485a5e562088fb8e85 Mon Sep 17 00:00:00 2001 From: alexander Date: Sun, 5 Dec 2021 13:47:54 +0000 Subject: [PATCH 3/3] edited --- features/content/README.MD | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/features/content/README.MD b/features/content/README.MD index de7f58c5..3a2c1774 100644 --- a/features/content/README.MD +++ b/features/content/README.MD @@ -1,20 +1,18 @@ ## How to create content? For example, you want to create content named "MyFormat". To do this, you must perform the following actions: + 1. Copy "template" folder from "core/features" in "core/features/content" 2. Rename this folder in "myformat" 3. Inside the "myformat" folder rename all the "template" on "content.myformat" 4. In the "settings.gradle" file in the "includes" array add the following code: - ```kotlin ":features:content:myformat:common", ":features:content:myformat:client", ":features:content:myformat:server", ``` - 5. In the "core/features/content/myformat/common/src" folder create folders with appropriate subfolders "commonMain/kotlin/dev/inmo/postssystem/features/content/myformat/common": 6. In the last folder "сommon", create a data class and the configurator as shown below: - ```kotlin @Serializable data class MyFormatContent( @@ -29,9 +27,7 @@ object MyFormatContentSerializerModuleConfigurator : ContentSerializersModuleCon } } ``` - 7. In two "di.kt" file located in "core/client/src/commonMain/kotlin/dev/inmo/postsystem/client" and "core/server/src/main/java/dev/inmo/postsystem/client" respectively add the following string: - ```kotlin singleWithRandomQualifier { MyFormatContentSerializerModuleConfigurator } ``` \ No newline at end of file