Описана процедура добавления контента
This commit is contained in:
parent
88967cadf7
commit
444bcf03b5
36
README.md
36
README.md
@ -8,7 +8,41 @@
|
|||||||
* Client - часть с клиентским кодом. В большинстве своём включает работу с сервером, MVVM часть (View при этом должны
|
* Client - часть с клиентским кодом. В большинстве своём включает работу с сервером, MVVM часть (View при этом должны
|
||||||
находиться в платформенной части, если их нельзя вынести в сommon часть клиента)
|
находиться в платформенной части, если их нельзя вынести в сommon часть клиента)
|
||||||
* Client - итоговый клиент. На момент написания этой доки (`Пн окт 25 12:56:41 +06 2021`) предполагается два варианта:
|
* Client - итоговый клиент. На момент написания этой доки (`Пн окт 25 12:56:41 +06 2021`) предполагается два варианта:
|
||||||
* Мультиплатформенный проект со сборкой каждого таргета. Скорее всего, не будет использован в силу сложности настройки
|
* Мультиплатформенный проект со сборкой каждого таргета. Скорее всего, не будет использован в силу сложности настройки
|
||||||
части клиентов (например, андроид)
|
части клиентов (например, андроид)
|
||||||
* Мультимодульный проект
|
* Мультимодульный проект
|
||||||
* Server - пока что JVM-only модуль, включающий все необходимые для сервера фичи
|
* 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<Content>.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<ContentSerializersModuleConfigurator.Element> { BinaryContentSerializerModuleConfigurator }
|
||||||
|
```
|
||||||
|
8. Наверное нужно написать что делать с этим теперь можно?
|
Loading…
Reference in New Issue
Block a user