Ivansuper
ну так она же осталась, просто в наследниках)
А что мешало писать Наследник<Результат, Ошибка> вместо тех typecheck, которые ты сделал на скрине?
Александр
Он скорее всего учится, а на этой стадии зачастую "архитектура" перевешивает полезный код
Так и есть. Очень многое из этого кода можно убрать, но оно остаётся, в учебных целях.
Iovan
всем привет
Iovan
Iovan
вкатываюсь в андроид
Iovan
подскажите уважаемые что не так, в AS Все гуд на устройстве такая вот шляпа
Hovhannes
Бог тебе судья
Ivansuper
Как - то не осмысливается это, совсем. Для меня интерактор, в данном случае - это сущность, которая может запросить данные из нескольких репозиториев(которые отдадут разные модели), как - то ими поиграться(обьединить/отфильтровать/...) и прокинуть результат дальше. Зачем, и собственно как мне параметризовать интерактор?
Ответ очевиден — ты положил в непараметризованный класс другой тип, который требует параметризацию. Откуда компилятору знать с чем ты будешь работать? Тебе просто надо отдельно поиграться с дженериками. Если с ними есть непонятки, то вот в таким ситуациях как у тебя утопнешь на раз два
Hovhannes
Александр
а если generic убрать из NewResult?
Тогда в NewResult не будет смысла. Для меня NewResult - это модель, которую я могу прокидывать от самого нижнего уровня к самому верхнему, и которая может содержать в себе данные любого типа, который заранее можно определить.
Ivansuper
Iovan
Верстка капец
Не подскажете где можно почитать что нить годное по верстке андроид?
Iovan
просто на React native как то попроще с верстко мне, но хочу вкатится в натив
Iovan
Hovhannes
Крч, сгорел пердак, помохите. Я джун, пишу сетевую часть для своей простенькой апки. Сгорел, когда попытался поработать с типом данных, который способен содержать информацию об ошибке. Either я не осилил(вообще не получается с ним работать, код покрывается тьмой when, не получается по человечески достать данные, короч отгрёб я от Either), поэтому запилил свой простой NewResult: sealed class NewResult<T> { data class Success<T>(val data: T) : NewResult<T>() data class Failure<T>(val error: T) : NewResult<T>() data class FailureWithException<T>(val error: Throwable) : NewResult<T>() } Ну как бы и чего, result и result. И он даже работает, и не поджигает мою джуниорскую жопу(т.к очень прост), однако есть пара нюансов. Первый, наиболее важный: я вынужден писать треш, когда я пытаюсь этот result куда - то выше прокинуть. В частности, 14 - ая строка интерактора: (на код не смотрите, там сейчас война идёт полнейшим ходом, настанет время я сам этот репозиторий вброшу на растерзание ревьюверов) https://github.com/KirstenLy/LibHelper3/blob/master/app/src/main/java/com/kirsten/libhelper/domain/interactors/Interactor.kt Конкретно: suspend fun getAllPatterns(): NewResult<*> Ну вы поняли. У NewResult такая сигнатура, что мне его обязательно нужно параметризовать чем - нибудь, а я ж заранее не знаю, что именно мне придёт - данные или ошибка. Поэтому пишу вот такую дичь, и в дальнейшем я просто делаю каст, узнав инстанс какого наследника мне по факту пришёл. Вопроса как такового нет. Хотелось бы чтобы вы сказали мне, где я больше всего херни наделал в таком подходе, и что мне сделать с моим NewResult, чтобы не писать в интеракторе такие вот вещи.
Завтра меня пингани покажу код на эту тему
Nikita
Ага
спасибо
Ivansuper
я правильно понял, что здесь имеется ввиду что для каждого типа данных своя имплементация интерактора?
Только я не понял почему у него дженерик результат, но жестко типизированные <Word>
Александр
а где происходит работа с уже определнными типами данных?
Эм, на всех уровнях. Интерактор смотрит что ему пришло, и делает что - то своё. Вью модель смотрит что ей пришло, и тоже делает что - то своё.
Iovan
Потому что не надо даже смотреть на реакт нейтив.
подскажите уважаемы как вы определили касательно RN до того как я написал это?
Александр
Только я не понял почему у него дженерик результат, но жестко типизированные <Word>
Word к NewResult не имеет отношения, это эксперименты из другой оперы
Nikita
Окей
поделишься со мной тоже? если не сложно)
Ivansuper
подскажите уважаемы как вы определили касательно RN до того как я написал это?
Потому что ты мастер затирать таскбар, но забыл про путь в тайтле окна андроид студии
Александр
Ответ очевиден — ты положил в непараметризованный класс другой тип, который требует параметризацию. Откуда компилятору знать с чем ты будешь работать? Тебе просто надо отдельно поиграться с дженериками. Если с ними есть непонятки, то вот в таким ситуациях как у тебя утопнешь на раз два
Как - то не получается это принять. Вот есть у меня интерактор, который, условно, стучится в три разных репозитория, собирает с них информацию, и, условно, объединяет результат в одну общую модель. Собственно, такой интерактор не должен нуждаться в параметризации, что ему пришло из репозитория, с тем и работаем.
Ivansuper
Ты их не чувствуешь просто в достаточной мере, чтобы на их основе продумать себе слои : )
Iovan
Arsen
от датасорсов до презентейшина достаточно двух вариантов Result и Error, а в презентейшин слое можно добавить Loading
Ivansuper
Если вам так прямо горит на рассуждение, идите в архитектурный чатик)
Ivansuper
Вам там сразу все расскажут
Arsen
Если вам так прямо горит на рассуждение, идите в архитектурный чатик)
архитектурный чатик это подмножество этого, тут можно обсуждать все, включая архитектуру )
Arsen
а наоборот - нельзя
Arsen
но дельных ответов там действительно больше
Arsen
или меньше тупых вопросов)
Александр
Ты их не чувствуешь просто в достаточной мере, чтобы на их основе продумать себе слои : )
Ну да, тот факт что Either меня разорвал нафиг на куски своей сложностью(кек =( ), намекает что дженерики для меня пока сверхтема. В архитектурный чатик не поедем, думаю на этом можно заканчивать покамест, теперь мне есть над чем подумать и чего поделать. Всем спасибо =)
Дмитрий
Подскажите, почему при запуске не отображаются кнопки ?
Александр
если шаришь в англ. то вот крутой доклад про функциональщину https://www.youtube.com/watch?v=E8I19uA-wGY
Я шарю в английском, не шарю в разработке. Heh. Попробую его посмотреть, через боль что называется. Спасибо.
Udery
добрый вечер, аdaptive icon на каком лаунчере можно потестать, что бы как на анимациях в статье? https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive
Arsen
еще рх - неплохой мостик в функциональный мир, но он сам по себе с большим порогом вхождения)
Arsen
зато на практике)
🗿🗿🗿
Давно знал, что с Android-разработчиками что-то не так
Hovhannes
Мдэ
Hovhannes
Юмор
🗿🗿🗿
Извините, случайно
Iovan
камон
Iovan
Iovan
я в замешательстве
Iovan
я не пойму чем моя верстка отличается от той что на codelabs
Iovan
просто элементарно шрифт bold даже не пашет
Hovhannes
Дружище, юзай пастбин для вставки кода
Alexey 🇪🇸
Дружище, юзай пастбин для вставки кода
а в принципе картинкой вполне удобно если не надо редактировать
Alexey 🇪🇸
а на пастбин это лишняя влкадка в браузере
Hovhannes
Зато весь код видно
Ivansuper
Есть у кого ссылка в реакт нейтив чат? Потому что здесь по нативной разработке
Iovan
https://pastebin.com/V8mLcsta
Ivansuper
подъеб засчитан
Это не прикол. Там ты получишь более продуктивную помощь
Hovhannes
А сам не можешь сравнить что ты написал и что в кодлабс?
Ivansuper
Еще момент — не появляются поля ввода, сделай другую разметку только с полем ввода. И так дебаж
Ivansuper
Почему все встают колом на месте когда что то не получается. Что ж такое
Hovhannes
Что с них взять
Kopusha
разленились играть шрифтами
Iovan
мда, андроидщики оказывается еще те язвы
Ivansuper
мда, андроидщики оказывается еще те язвы
Просто люди устали от того, что каждый день приходят сюда по всякому поводу, пусть даже и малейшему. Поэтому и хотим породить в людях усилие и волю
R
Сидеть и наслаждаться своей важностью и всезнанием?
R
Этож комьюнити..