Size: a a a

Android Architecture

2020 October 09

GR

Gor Rushanyan in Android Architecture
Quantum Harmonizer
А не надо в него верить, возможности для суперкомпиляции очень, очень ограничены. ProGuard, R8, GraalVM пока только открывают этот путь.
Открывают, но и делают не мало. Плюс есть оптимизация компиляторов. Лейзи не выглядит сверхсложной фичой(возможно для меня в силу ограниченности знаний по данному вопросу)
источник

GR

Gor Rushanyan in Android Architecture
Но терять три кб на 10 лейзи рили странно
источник

A

ABI in Android Architecture
Gor Rushanyan
Но терять три кб на 10 лейзи рили странно
ожидаемо. ибо в котлине просто делегат - а код генерируется огого какой
источник

QH

Quantum Harmonizer in Android Architecture
Gor Rushanyan
Открывают, но и делают не мало. Плюс есть оптимизация компиляторов. Лейзи не выглядит сверхсложной фичой(возможно для меня в силу ограниченности знаний по данному вопросу)
Лейзи не сложно само по себе, но много чего затрагивает.
а) Property delegation. До недавнего времени это вообще работало через рефлекшен, сейчас исправлено.
б) ThreadSafetyMode, по умолчанию там всё синхронизировано.
в) Функция, которая вычисляет лейзи. Компилятор не умеет убирать дубликаты ни лямбд, ни анонимных функций, ни даже методРефов (а это совсем уж тривиально), для каждого такого выражения генерируется отдельный класс.
источник

GR

Gor Rushanyan in Android Architecture
ABI
ожидаемо. ибо в котлине просто делегат - а код генерируется огого какой
Ну тут скорее неожиданность в том что анонимный класс требует 296 байт. Я честно говоря думал что меньше.
источник

QH

Quantum Harmonizer in Android Architecture
(вспомнил лысого и его энамы :)
источник

A

ABI in Android Architecture
Gor Rushanyan
Ну тут скорее неожиданность в том что анонимный класс требует 296 байт. Я честно говоря думал что меньше.
ну в чистой Жаве может и меньше, тут же по любому котлин наворачивает что то "своё"
источник

QH

Quantum Harmonizer in Android Architecture
ABI
ну в чистой Жаве может и меньше, тут же по любому котлин наворачивает что то "своё"
ну, щепотку метадаты, да
источник

GR

Gor Rushanyan in Android Architecture
Quantum Harmonizer
(вспомнил лысого и его энамы :)
Я только про него эти 10 минут и думаю)
источник

S

Sasha in Android Architecture
ABI
я сплеш поставил как главный фрагмент в основном графе (у меня дофига их просто, на каждую кнопку боттом нав. свой граф), во вьюмодельке делаю что нужно с сетью и т.д. потом по глобальному акшену открываю нужный фрагмент(читай граф)
У тебя есть rootActivity (главный апп граф) в котором splash и main (фрагмент с bottomNav и графами для каждой вкладки)? У меня пока bottomnavigation в активити но я не могу в нем переключить вкладу и в ней открыть фрагмент через action.
источник

A

ABI in Android Architecture
Sasha
У тебя есть rootActivity (главный апп граф) в котором splash и main (фрагмент с bottomNav и графами для каждой вкладки)? У меня пока bottomnavigation в активити но я не могу в нем переключить вкладу и в ней открыть фрагмент через action.
у меня в главном графе: сплеш, и подключенные внешние графы (демоанимашка, регистрация, и т.д.) в сплеше проверяется наличие токена, потом логика куда кинуть на регистрацию или нет, если токен есть то открываю граф главного экрана (тут как раз отображается боттом_нав)
источник

A

ABI in Android Architecture
Забыл добавить - у меня отработка навигации не только в мейнактивити, я открываю т.н. хост фрагменты, и там уже отрабатываю навигацию по каждому из графов
источник

S

Sasha in Android Architecture
ABI
Забыл добавить - у меня отработка навигации не только в мейнактивити, я открываю т.н. хост фрагменты, и там уже отрабатываю навигацию по каждому из графов
Нельзя просто в mainactivity программно отрыть вкладку боттом навигейшина -> пришла livedata с navController(с ожидаемым графом в котором есть destination) і через controller уже открыть destination? Я менял через .setSelectedItemId приходит правильный navController но если вызываю на нем .navigate ничего не происходит
источник

Y

Yuriy in Android Architecture
Alex Vayts
Я понял ваше мнение, спасибо за детальное объяснение. В нашей беседе раньше было мало конкретики и причин - поэтому обсуждение казалось бессмысленным продолжать.

Если я верно понял, то вы рассматриваете мобильное приложение исключительно как часть всей системы без возможности рассмотреть его как самостоятельную часть.

Моя точка зрения на проектирование архитектуры идет от конкретики мобильного приложения, а не всей системы в целом. Если следовать правилам слоев - то сначал мы делаем внутренний слой - бизнес-логику, где мы знаем что есть авторизация и для нее юзер отдает нам логин и пароль.

Дальше мы можем собирать несколько версий нашего приложения. Для одной из них мы передадим репозиторий с сервером с шифрованием. Для другой - будем работать с Account Manager’ом. И эта замена ни на что не влияет с точки зрения приложения. Только с точки зрения всей системы.
Плюсую. Единственное бизнес правило здесь это требование авторизации. Как оно будет выглядеть -- детали.
источник

A

ABI in Android Architecture
Sasha
Нельзя просто в mainactivity программно отрыть вкладку боттом навигейшина -> пришла livedata с navController(с ожидаемым графом в котором есть destination) і через controller уже открыть destination? Я менял через .setSelectedItemId приходит правильный navController но если вызываю на нем .navigate ничего не происходит
Хз. Не пробовал. Если у тебя несколько нав.контролеров , то возможно ты не в том открываешь ?
источник

A

ABI in Android Architecture
Можно все в одном графе сделать, но он здоровый будет и неудобно с ним работать. Мне лично
источник

S

Sasha in Android Architecture
ABI
Хз. Не пробовал. Если у тебя несколько нав.контролеров , то возможно ты не в том открываешь ?
В дебаге правильный нав.контроллер Если без .setSelectedItemId то будет exception что вызван екшн на контроллере с другой вкладки
источник

A

ABI in Android Architecture
Sasha
В дебаге правильный нав.контроллер Если без .setSelectedItemId то будет exception что вызван екшн на контроллере с другой вкладки
Ну вот. По моему ты сам и ответил
источник

A

ABI in Android Architecture
Что то не то с навигацией и акшенами у тебя
источник

sd

saidov. developer in Android Architecture
h
источник