Size: a a a

Android Architecture

2020 February 21

I

Igor in Android Architecture
Unat
Слабых мест не так много - можно облажаться при проектировании стейта, тогда будет очень тяжело вытянуть это костылями в момент, когда лажа всплывёт; много кода, но с помощью дженериков, фантазии и возможностей котлина дублирование можно очень сильно подрезать; и в целом наличие проблем сильнее зависит от опыта разработчика, т.к. из-за более жесткой завязки на типы уменьшается пространство для костылей. Если в MVP можно было спорную ситуацию "разрулить" положившись, например, на то, что первый отправленный запрос и вернётся первым, то в MVI это не будет так работать.
вот с этим то и проблема, людей, которые набили руку в MVI не так много и вероятность вновь прибывших или начинающих работать с MVI сделать ошибку очень высока и как вы правильно сказали, работ по исправлению ошибки будет куда больше, чем при других паттернах, ну а для любителей костылей это вообще беда))) спасибо)
источник

ML

Mikhail Levchenko in Android Architecture
Очень хочу ворваться в обсуждение, но не понимаю о каком MVI вы рассуждаете)
источник

U

Unat in Android Architecture
Mikhail Levchenko
Очень хочу ворваться в обсуждение, но не понимаю о каком MVI вы рассуждаете)
О любом, где стейт не размазан по "контроллеру", а собран в один объект
источник

ML

Mikhail Levchenko in Android Architecture
Unat
О любом, где стейт не размазан по "контроллеру", а собран в один объект
так, а при чём тогда Rx?
источник

ML

Mikhail Levchenko in Android Architecture
и как происходят обновления стейта?
источник

ML

Mikhail Levchenko in Android Architecture
в одном месте или размазанно по контроллеру?
источник

U

Unat in Android Architecture
Mikhail Levchenko
и как происходят обновления стейта?
У меня - последовательно
источник

ML

Mikhail Levchenko in Android Architecture
Unat
У меня - последовательно
а они не могут конкурентно происходить, если стейт в одном атоме
источник

U

Unat in Android Architecture
Mikhail Levchenko
а они не могут конкурентно происходить, если стейт в одном атоме
когда я первый раз присел - смог сделать конкурентно, выстрелить в ногу, проклясть всё на свете и призывать силы тьмы на помощь.
источник

U

Unat in Android Architecture
А теперь у меня даже контроллера нету
источник

ML

Mikhail Levchenko in Android Architecture
Unat
когда я первый раз присел - смог сделать конкурентно, выстрелить в ногу, проклясть всё на свете и призывать силы тьмы на помощь.
ну то есть не смог
источник

U

Unat in Android Architecture
Mikhail Levchenko
ну то есть не смог
оно работало по схеме "размазано по контроллеру", а там адок с асинхронностью подоспел и всё сломал
источник

U

Unat in Android Architecture
ну, не то чтобы сломал, просто в редких случаях проходило два апдейта и один из них терялся.
источник

T

Tepex in Android Architecture
Нет контроллера — нет проблемы (размазанности, асинхронности)
источник

ML

Mikhail Levchenko in Android Architecture
Unat
ну, не то чтобы сломал, просто в редких случаях проходило два апдейта и один из них терялся.
ну типа - а зачем тебе конкурентно обновлять стейт?
источник

U

Unat in Android Architecture
Mikhail Levchenko
ну типа - а зачем тебе конкурентно обновлять стейт?
Да не было в этом самоцели, просто не знал как сделать и получилось конкурентно
источник

(

( in Android Architecture
Unat
Да не было в этом самоцели, просто не знал как сделать и получилось конкурентно
Кек
источник

U

Unat in Android Architecture
К слову, я сейчас открыл для себя (слоупок.жпг) inline class. Господи, как же это офигенно упрощает жизнь, когда есть 100500 всяких интеграций с их fooToken: String, barToken: String, gooToken: Int и т.п.
источник

АЕ

Алексей Ершов in Android Architecture
Флорина недавно круто их расписала: https://medium.com/androiddevelopers/zero-cost-abstractions-in-kotlin-19b953f3a936
источник

I

Igor in Android Architecture
Кстати, как справляетесь с тем что в экранах где надо загружать данные из room(дб) - может произойти рейс-кондишинами из-за асинхронности?
Те вначале отрисовка будет без данных и только через ~100мс стейт актуализируется (а на дешевых девайсах еще дольше).
источник