This commit is contained in:
Михаил Капелько
2026-02-15 06:45:27 +03:00
parent 90683d2b77
commit 493863ae5a
16 changed files with 1590 additions and 308 deletions

406
kmp/2026-Q1.md Normal file
View File

@@ -0,0 +1,406 @@
https://jira.iva.ru/browse/VCSMOB-13473
[KMP] Отображать аватарки
12.02: 155
* изучить про AsyncImage
https://swiftwithmajid.com/2021/07/07/mastering-asyncimage-in-swiftui/
нет возможности задать заголовки HTTP
хотя я ведь могу для всех сессию задать!!
нет, в shared URLSession нет возможности настройки
возможно, это намеренно
* изучить Kingfisher вместо AsyncImage
https://stackoverflow.com/a/79837058/3404710
kingfisher может конфликтовать
попробую сначала Nuke
он очеть похож на то, что можно делать на Android
* изучить библиотеку для отображения картинок в One
Nuke
вроде есть возможность задать заголовки
* проверить текущее состояние приложений
заметил лишь добавление вёрстки экрана информации о контакте на Android
* проверить изменения в ava* с моего влития
onPainterLoaded
спросил у Дениса, зачем нам это надо
видимо, опять какая-то неясная экономия и оптимизация
* добавить зависимость Nuke
* отображать квадратные изображения в iOS
* привести изображение к круглому виду
* завязать на состояние загрузки
* починить расширение изображения
11.02: 105
* отобразить заготовки аватарок в iOS
* отобразить заглушки в iOS
* вынести contUI.swift
после подлития main
ибо сильно крупный шаг
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/37
* сообщить о ЗС
Сливаю ЗС об отображении заглушек аватарок на iOS: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/37
√ 583, main, >=2
* влить ЗС
* записать в таблицу
10.02: 190
* переиспользовать ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/27
* ввести mutableState для ав
чтобы из VM получать флаг для отображения заглушки в нужный момент
avaShouldResetPlaceholderVisibility
* отображать заглушку
лишь до успешной загрузки
лишь на неудачную загрузку изображения
* сделать цветовую заглушку по известным функциям
* сделать инициалы
* починить отображение авы в списке чатов
нужна Session? ибо 403 возвращает сервер
поправил
* проверить iOS
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/27
* сообщить о ЗС
Сливаю ЗС об отображении заглушек аватарок на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/27
√ 262, main, >=2
* влить ЗС
* добавить в таблицу
09.02: 150
* починить загрузку аватарок после изменений Ильи
что-то поменялось сильно
теперь нихера нет контактов именно в моей сборке
у Ильи есть
надо сделать заново на основе последних изменений
это как-будто дешевле всего
т.е. нужен новый ЗС
этот позже переиспользую
* повторить частичный накат
√ util/other
√ README
√ ava.kt
√ avaUI.kt
√ const.kt
√ other.kt
√ gradle
~ entities.yml
* восстановить иконку в списке контактов
* проверить работопособность в iOS
* оформить ЗС
√ описать изменения gen-entities
√ упомянуть о рассмотрении Glide
√ упомнять об avaUI
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/16
* сообщить о ЗС
Сливаю ЗС об отображении аватарок в списке контактов на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/16
√ 219, main, >=2
* влить ЗС
* отметить ЗС в таблице
* сообщить Денису о починке cld translator и необходимости ручных изменений для этого
* восстановить иконку в инфе о выбранном контакте
* вынести contUI.kt
* подлить main
* оформить ЗС
~ сообщить Олегу убрать шуды на каждое поле контакта
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/28
* сообщить о ЗС
Сливаю ЗС об отображении аватарки в инфе о контакте на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/28
√ 278, main, >=2
* влить ЗС
* отметить ЗС в таблице
07.02: 90
* ввести в VM contInfoItem
* добавить аву в инфу о контакте
* добавить аву в список чатов
06.02: 190
* проверить запуск KOM на Xcode 13 на 10.12.2.184
kotlin 2.1.21
json 1.8.0
xcodegen 2.35.0
не удалось в Package.swift сослаться на zip xcframework
хотя вроде как должно было бы работать в Xcode 13
не выгорело: 1.5 часа потратил
* починить CLD tr на Linux
1. надо поменять руками для CLD tr версию java version с 8 на 21
сделать патч по версии java?
да не, пусть руками, это один раз же
в будущем надо переделать translator на nodejs
но это потом
написать в README KOM заметку для CLD в Linux
2. далее sed -i.backup + rm $file.backup
* ознакомиться с примером AvatarLoader + Compose от Дениса
не очень понятно
смущает @OptIn и странная ситуация с API в Glide
итог: попробую Coil
* изучить загрузку картинок в Compose по URL
тут вся суть Session на сервер отправить
без него не будет картинки
Coil выглядит приятнее, чем Glide
хотя по факту работает и так
* добавить зависимость Coil
* отобразить картинку в Compose
https://ivcs.hi-tech.org/services/resource?resourceId=e64bf0bf-442b-4370-894a-8f7f827c7866&width=100
* закруглить изображение
* сделать заглушки-изображения?
это уже можно не мне
хотя у нас же заглушка-текст по ivac!
тогда мне
* заменить ContItem.avaId -> avaURL
* отследить неудачную загрузку авы
onError
* улавливать состояние загрузки
onState
* создать компонент аватарок
05.02: 140
* создать ветку по авам
* изучить Glide и Coil
https://bumptech.github.io/glide/int/compose.html
https://coil-kt.github.io/coil/compose/
* узнать URL запроса в Ucim/Ava
ИГР Shortcuts.loadRI url: 'https://ivcs.hi-tech.org/services/resource?resourceId=e64bf0bf-442b-4370-894a-8f7f827c7866&width=100'
ИГР ImageCS.retrieve url/token: 'Optional(https://ivcs.hi-tech.org/services/resource?resourceId=e64bf0bf-442b-4370-894a-8f7f827c7866&width=100)'/'8ccabf0b-73ed-43c3-add7-969b9c727f05'
* определиться с заголовками
Серёга сказал, что Session нужно отправлять
* скачать Ubuntu 25.10
===
https://jira.iva.ru/browse/VCSMOB-13464
[KMP] Создать заготовку информации о контакте для Android
04.02: 130
* создать ветку
andinf
сделал
* добавить /* 1 */ в if своих шудах в контактах
забыл первоначально
* восстановить упущенные Ильёй поля в
стоп, подлить от Ильи сначала ветку
да, Илья исправил
мне не надо восстанавливать
* улавливать выбор контакта
* отображать экран-заглушку
* возвращаться назад
* переименовать ContactInfo -> Info
* локализовать confInfoTitle
как раз в эффекте contLocalize
* отображать имя выбранного контакта
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/10
* сообщить о ЗС
Сливаю ЗС об отображении заготовки информации о контакте: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/10
√ 163, main, >=2
* влить ЗС
* отметить ЗС в таблице
===
https://jira.iva.ru/browse/VCSMOB-13334
[KMP] Создать заготовку списка контактов
03.02: 270
* создать ветку
paste
* сделать значения по умолчанию для хоста для Android
чтобы достаточно было нажать на кнопки Далее без ввода
делать по аналогии с вводом в GitBudget через Paste
* переименовать DBGFillHostInput -> DBGHost
* продублировать для iOS
надо замутить свой Binding как-будто, чтобы разделить getter и setter
https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-custom-bindings
* оформить ЗС
√ фотки переделать
√ записать видео
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/6
* сообщить о ЗС
Сливаю ЗС об отладочной кнопке заполнения поля ввода хоста: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/6
√ 127, main, >=2
* влить ЗС
* отметить в таблице КЗС
* Илья:
выдать кнопку заполнения username/password
* создать ветку
* разобраться с двойной передачей login из AC в CC
два раза был вызов MainComponent.setupEffects
закомментировал
* сделать запрос контактов
* разобраться с ошибкой запроса контактов
loadURL без установки заголовков ещё
добавить
* разбирать контакты
* отображать заглушки контактов
* отображать список контактов с настоящими именем и почтой
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/8
* сообщить о ЗС
Сливаю ЗС об отображении заготовки списка контактов на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/8
√ 193, main, >=2
* влить ЗС
* отметить в таблице КЗС
02.02: 130
* отображать заглушку списка контактов на Android
* продублировать заглушку списка контактов на iOS
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/5
* сообщить о ЗС
Сливаю ЗС о создании заглушки списка контактов: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/5
√ 473, main, >=2
* влить ЗС
* отметить в таблице КЗС
===
https://jira.iva.ru/browse/VCSMOB-13302
[KMP] Создать заготовку авторизации для iOS
27.01: 170
* создать заготовку экрана логина
* сообщать об ошибке логина/пароля
* добавить Starscream
* добавить websocket на основе Starscream
https://dev.to/fassko/websockets-in-ios-using-swift-276l
* подключиться к WS
* ознакомитья с Task
https://habr.com/ru/articles/762148
* восстановить пинги
тут как раз нужен Task sleep
* A: вынести resetWebSocket в эффекты
* продублировать авторизацию для iOS
* README: отметить авторизацию iOS
* обдумать внутреннюю статью про KOM
хотя внутреннюю статью как-будто публиковать-то и нельзя
ведь на KOM добро не все давали
можно ли рассмотреть этой статьёй основные моменты с тем,
чтоб потом быстрее написать про git-budget?
итог: нет смысла, лучше время на код потратить
* сделать видеозапись
ввести неверный хост
увидим алёрт
ввести верный хост
передём на логин пароль
ввести неверные логин и пароль
увидим алёрт
ввести верные логин и пароль
увидим пустое окно
* подготовить видеодемонстрацию
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/4
* влить ЗС
26.01: 185
* создать заготовку sdk-ios
* сделать заготовку скрипта gen-ios
* создать заготовку ver-ios
* сделать видеодемонстрацию
показать util/gen-ios
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/3
* влить ЗС
* создать заготовку экрана хостов
* придать вид карточки
* добавить тень
* делать запрос
* сообщать об ошибке хоста
* скрывать экранр хоста после успешного ввода
===
https://jira.iva.ru/browse/VCSMOB-13212
[KMP] Создать заготовку авторизации для Android
24.01: 100
* перенести UI авторизации
* перенести VM авторизации
* перенести auth/Fun.kt
* исправить невозможность сделать запрос
вернуть serialization plugin
* перенести авторизацию для Android
* записать видео авторизации
ввести неверный хост
увидим алёрт
ввести верный хост
передём на логин пароль
ввести неверные логин и пароль
увидим алёрт
ввести верные логин и пароль
увидим пустое окно
* подготовить видео с титрами
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/2
добавить видео
* влить ЗС
23.01: 45
* исправить генерацию entities.kt
обновить и пересобрать cld
* копировать CLDController/Context из CLD в Android
* перенести CLD
entities.yml
√ отметить /*@JsExport*/
√ добавить клонирвание translator куда-нибудь в ~/iva-smth
√ сделать запуск translator из ~/iva-smth
√ заменить generate-entities на какой-либо один скрипт в util/
причём его надо будет вызывать всегда для всех платформ
* кратко описать CLD translator в README
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/1
* влить ЗС
22.01: 75
* создать репозиторий KOM
* описать в таблице README готовую функциональность
* генерить entities.kt в корень проекта временно
* создать заготовку Android HW
на основе git-budget
* генерить entities.kt в ver-android
===
https://jira.iva.ru/browse/VCSMOB-13190
[KMP] Описать движение данных в архитектуре CSE
21.01: 180
* создать динамический пример движения данных архитектуры CSE
~/m/p/svg
выдал Ване KaiSD проверить 21.01.26
* от Вани получил следующий отзыв
Выглядит как пошаговый визуализатор исполнения кода,
но при этом разделение на блоки не очень понятно.
И логика движения кружка тоже.
Можно увидеть куда он двигался, но нельзя понять куда он должен двигаться.
Возможно, нужны точки соединения и линии между ними.
20.01: 90
* ознакомитья с SVG
https://www.w3schools.com/graphics/svg_animation.asp
* от руки нарисовать схему с авториацией текущей
слева - контроллер / контекст
справа-вверху - шуды
справа-внизу - эффекты
полоски должны путешествовать ctx -> should -> ctx, effect -> ctx, ctx -> effect
полоски и будут отображать движение данных
* найти редактор SVG
https://freesvgeditor.com/en/svg-editor-online
* набросать пример
~/c/svg(4).svg

View File

76
kmp/now.md Normal file
View File

@@ -0,0 +1,76 @@
13.02: 17:15-18:45 90
* проверить тормоза без использования VM
для начала просто проверить тормоза без Ava.View полностью в ячейках
да, без lazy image то же самое еле заметно подёргивание
* изучить изменения в ava после !34
* подлить main
* сделать видеозапись
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/39
* сообщить о ЗС
Сливаю ЗС по отображению изображений аватарок на iOS: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/39
√ 57, main, >=2
* влить ЗС
* записать в таблицу
* сделать отчёт в чат КМП
√ подготовить видео
√ посчитать количество сэкономленных строк кода
√ ввести скрипт
НАДО:
* подготовить документ с графом связей между сущностями
* оформить ЗС
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/43
тут дока больше
* сообщить о ЗС
* влить ЗС
* таблица
* добавить ссылки на API endpoints рядом с сущностями в YML
* попутно удалить shouldResetInfo и соответствующие поля из ContContext
* ввести <PRE>_ACTIVE_SHOULDS и регистрацию отладки сразу внутри <PRE>Fun.kt
* проверить гипотезу кэширования второй Ava одного запроса
чтобы не было двух запросов одной картинки
* сделать комбинацию на Android
* подготовить шпаргалку по Redux / CSE
* ввести линтер с запретом @State и @Binding вне VM.swift
ввести аналогию для Android
* проверить замену на Glide
именно после полной реализации на Coil
чтобы функционально всё удовлетворяло
в Android Connect ведь Glide
чтобы меньше трения было при добавлении
и без увеличения размера
https://bumptech.github.io/glide/int/compose.html
* улавливать изменения в имени контакта по WS
это важно сделать для задания пути работы с WS
* доработать локализацию до генерации нативных файлов Android
* доработать локализацию до генерации нативных файлов iOS
* добавить ширину авы в параметры Ava()
сейчас в инфе о контакте фотка размытая выходит
но тогда будет загрузка вторая
т.е. при переходе на контакт будет сначала видна заглушка
тут прям не так просто
надо подумать
* продулировать авторизацию на Desktop
для Пети:
* описать архитектуру
* кто за что отвечает
* iOS input 2026-01-27:
переключаться на Return с поля username на password
сейчас не надо, ибо SwiftUI поднимает вьюху в свободное пространство при показе клавы
* iOS input 2026-01-27:
скрывать клавиатуру на Return в поле password
сейчас не надо, ибо SwiftUI поднимает вьюху в свободное пространство при показе клавы