surfstudio / ReactiveDataDisplayManager

MIT License
34 stars 13 forks source link

SPT-1002 PoC of decoration #218

Closed NullIsOne closed 1 year ago

NullIsOne commented 1 year ago

Что сделано?

Зачем это сделано?

Доказать возможность декорирования секций типовыми ячейками

На что обратить внимание?

Как протестировать?

https://github.com/surfstudio/ReactiveDataDisplayManager/assets/28707156/f8393856-f138-4bf4-b41b-9caefa39de5d

github-actions[bot] commented 1 year ago
Messages
:book: Great! We didn't found any violations in your changes. Congratulations 🎉

Generated by :no_entry_sign: Danger Swift against 4bbf5930e7c3d3e39954c5f7643cdc17012b88f2

codecov-commenter commented 1 year ago

Codecov Report

Patch coverage: 100.00% and project coverage change: +2.07 :tada:

Comparison is base (88d642d) 69.34% compared to head (4bbf593) 71.41%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #218 +/- ## =========================================== + Coverage 69.34% 71.41% +2.07% =========================================== Files 141 141 Lines 4153 4153 Branches 1876 1876 =========================================== + Hits 2880 2966 +86 + Misses 1175 1080 -95 - Partials 98 107 +9 ``` | Flag | Coverage Δ | | |---|---|---| | uitests | `58.91% <100.00%> (+2.09%)` | :arrow_up: | | unittests | `39.73% <0.00%> (ø)` | | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=surfstudio#carryforward-flags-in-the-pull-request-comment) to find out more. | [Impacted Files](https://app.codecov.io/gh/surfstudio/ReactiveDataDisplayManager/pull/218?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=surfstudio) | Coverage Δ | | |---|---|---| | [...rce/Table/DataSource/DiffableTableDataSource.swift](https://app.codecov.io/gh/surfstudio/ReactiveDataDisplayManager/pull/218?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=surfstudio#diff-U291cmNlL1RhYmxlL0RhdGFTb3VyY2UvRGlmZmFibGVUYWJsZURhdGFTb3VyY2Uuc3dpZnQ=) | `72.34% <100.00%> (ø)` | | ... and [9 files with indirect coverage changes](https://app.codecov.io/gh/surfstudio/ReactiveDataDisplayManager/pull/218/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=surfstudio)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Ikeret commented 1 year ago

В спейсере проблема с констрейнтами. Но анимации не из-за них работают криво, что-то с диффабл датасорсом Посмотрел id из хешера, но с ними все ок

image
Ikeret commented 1 year ago

Конфликт типов: Неудобно, что для включения декоратора пришлось указать явный тип секции в алиасе. Может через extension решить это удастся?

У меня резолв типов работает без typealias

image
NullIsOne commented 1 year ago

Конфликт типов: Неудобно, что для включения декоратора пришлось указать явный тип секции в алиасе. Может через extension решить это удастся?

У меня резолв типов работает без typealias image

Точно. alias можно убирать. Спасибо. Видимо я сам не заметил когда это разрешилось.

NullIsOne commented 1 year ago

Починил diffable example. Int айдишники стали неуникальными после введения декораций, так как HashCombiner мог выдать такое же Int значение. Плюс футер должен иметь uniqueId чтобы diff высчитывался правильно и была красивая анимация.

Для таблицы стало лучше. Для коллекции совсем хорошо.

https://github.com/surfstudio/ReactiveDataDisplayManager/assets/28707156/cadff7aa-90b0-41f1-b0ff-7a61c95b642d

https://github.com/surfstudio/ReactiveDataDisplayManager/assets/28707156/2667bd4d-2b15-4e10-82d4-296b02573b9d

Ikeret commented 1 year ago

Починил diffable example. Int айдишники стали неуникальными после введения декораций, так как HashCombiner мог выдать такое же Int значение. Плюс футер должен иметь uniqueId чтобы diff высчитывался правильно и была красивая анимация.

Для таблицы стало лучше. Для коллекции совсем хорошо.

Simulator.Screen.Recording.-.iPhone.14.Pro.-.2023-05-25.at.15.04.26.mp4

Simulator.Screen.Recording.-.iPhone.14.Pro.-.2023-05-25.at.15.00.58.mp4

У таблицы анимация плохо выглядит из-за прозрачных цветов у ячеек, а так все работает хорошо)