Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Недавно в чате вы спрашивали, в чем разница между go_router и auto_route. Рассказываем!
Сходства
Обе этих библиотеки работают на Navigator 2.0, что дает нам больший контроль над навигацией в наших приложениях. Также часть функционала в них совпадает.
Количество кода
В auto_route мы пишем намного меньше кода, так как используется кодогенерация. Но некоторые не любят ее, поэтому используют GoRouter. Также auto_route позволяет нам напрямую передавать нужные аргументы прямо в Route, не используя дополнительный код.
Разберем на примере вот такого экрана:
Для auto_route у нас будет:
А для go_router:
В следующей части поговорим о количестве багов, вложенной навигации и Route Guards.
А пока на этом всё, пишите в чате, было ли полезно?
Сходства
Обе этих библиотеки работают на Navigator 2.0, что дает нам больший контроль над навигацией в наших приложениях. Также часть функционала в них совпадает.
Количество кода
В auto_route мы пишем намного меньше кода, так как используется кодогенерация. Но некоторые не любят ее, поэтому используют GoRouter. Также auto_route позволяет нам напрямую передавать нужные аргументы прямо в Route, не используя дополнительный код.
Разберем на примере вот такого экрана:
class HomePage extends StatelessWidget {
final String appName;
const HomePage({required this.appName, super.key});
…
}
Для auto_route у нас будет:
AutoRoute(page: HomeRoute.page);
context.router.push(HomeRoute(appName: ‘My App Name’));
А для go_router:
GoRoute(
path: ‘/home’,
builder: (context, state) {
final appName = state.queryParams[‘appName’];
return HomePage(appName: appName);
}
);
GoRouter.of(context).push(‘/home?appName=”My App Name”’);
В следующей части поговорим о количестве багов, вложенной навигации и Route Guards.
А пока на этом всё, пишите в чате, было ли полезно?
👍1
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем рассказывать, в чем разница между go_router и auto_route.
Количество багов и костылей
На личном опыте можем сказать, что с go_router костылей и правок, которых нужно исправлять вручную, всегда больше, чем с auto_route. Да, первые версии могли пропускать кадры при переходах, но со временем это исправили.
Вложенная навигация
В auto_route вложенная навигация устроена намного удобнее, чем в go_router. Так как у нас есть возможность создать дополнительный роутер внутри нашего экрана и переходить внутри него.
Да, go_router поддерживает такое, но настройка будет в разы сложнее.
Route Guards
Настройка guards в go_router делается при настройке самого роутера, а перенаправление — при помощи функции redirect.
В auto_route мы можем создавать именно отдельные Route Guards и присваивать их путям в наших настройках.
Было полезно? Если у вас еще остались вопросы, то пишите в чат.
Количество багов и костылей
На личном опыте можем сказать, что с go_router костылей и правок, которых нужно исправлять вручную, всегда больше, чем с auto_route. Да, первые версии могли пропускать кадры при переходах, но со временем это исправили.
Вложенная навигация
В auto_route вложенная навигация устроена намного удобнее, чем в go_router. Так как у нас есть возможность создать дополнительный роутер внутри нашего экрана и переходить внутри него.
Scaffold(
…
body: AutoRoute(),
…
);
Да, go_router поддерживает такое, но настройка будет в разы сложнее.
Route Guards
Настройка guards в go_router делается при настройке самого роутера, а перенаправление — при помощи функции redirect.
В auto_route мы можем создавать именно отдельные Route Guards и присваивать их путям в наших настройках.
Было полезно? Если у вас еще остались вопросы, то пишите в чат.
👍3
Я тут немного заработался, поэтому с постом про изменения рабочего места запаздываю.
Изменение первое - новая клавиатура. Где-то в апреле у меня начала залипать Apple Magic Keyboard. К маю стало еще хуже, поэтому я стал выбирать. Изначально хотелось что-нибудь из Keychron, но у них были проблемы с доступностью в Красноярске. А выбрал я в итоге NuPhy Air75 первого поколения на красных переключателях. Думаю, расскажэу о ней в отдельном посте.
Изменение второе - микрофон. Так как я не профи в записи всякого, хотя и такие планы есть, плюс на работе жаловались на качество звука во время созвонов, решил купить. Заказывал на Али в официальном магазине производителя. Вместе с ним заказал еще 2 вещи. Про это все тоже в отдельном посте.
Изменение третье - коврик от JugRu Group и Geekboards, который подарили как спикеру на конференции Mobius.
Изменение четвертое - то, о чем я давно думал, но скупился - док-станция для Mac. Мой выбор пал на Ugreen, с которыми я очень давно знаком. Тут тоже нужно будет отдельным постом.
Поэтому ждите сегодня и завтра еще 3 поста про новые девайсы)
Изменение первое - новая клавиатура. Где-то в апреле у меня начала залипать Apple Magic Keyboard. К маю стало еще хуже, поэтому я стал выбирать. Изначально хотелось что-нибудь из Keychron, но у них были проблемы с доступностью в Красноярске. А выбрал я в итоге NuPhy Air75 первого поколения на красных переключателях. Думаю, расскажэу о ней в отдельном посте.
Изменение второе - микрофон. Так как я не профи в записи всякого, хотя и такие планы есть, плюс на работе жаловались на качество звука во время созвонов, решил купить. Заказывал на Али в официальном магазине производителя. Вместе с ним заказал еще 2 вещи. Про это все тоже в отдельном посте.
Изменение третье - коврик от JugRu Group и Geekboards, который подарили как спикеру на конференции Mobius.
Изменение четвертое - то, о чем я давно думал, но скупился - док-станция для Mac. Мой выбор пал на Ugreen, с которыми я очень давно знаком. Тут тоже нужно будет отдельным постом.
Поэтому ждите сегодня и завтра еще 3 поста про новые девайсы)
🔥5😎1
Про клавиатуру.
Кто долго читает мой канал помнит, что я рассказывал уже про то, что у меня их было 2 - Apple Magic Keyboard как основная и механическая Durgod для игр.
Почему я не перешел на Durgod после того, как решил менять клавиатуру? Тут все просто и объясняется тремя причинами - отсутствие раскладки под macOS, слишком высокие клавиши, она проводная. Поэтому это первые три критерия выбора у меня были.
Немного о самом выборе. Под все мои критерии подходит продукция 2 компаний - NuPhy и Keychron (не путать с Keyron). Я долго выбирал модель, в итоге после пары роликов и смотря на скорость доставки я выбрал NuPhy Air75 первого поколения на красных переключателях. Второе было ждать в несколько раз дольше.
Переключатели я тоже выбирал. Между красными и коричневыми. Теперь думаю заказать на всякий случай набор коричневых, так как мне они понравились (в наборе идет по 1 штуки каждого типа). Клавиатура очень крутая, но есть несколько минусов:
- Не хватает кнопки переключения языка, как на клавиатурах от Apple. Сначала я к ней привыкал, теперь привыкаю к ее отсутствию. И даже на самом MacBook я периодически пытаюсь сейчас переключать комбинацией клавиш.
- Не хватает TouchID, который был на прошлой клавиатуре. Поэтому пару-тройку раз в день приходится вводить пароль.
Кто долго читает мой канал помнит, что я рассказывал уже про то, что у меня их было 2 - Apple Magic Keyboard как основная и механическая Durgod для игр.
Почему я не перешел на Durgod после того, как решил менять клавиатуру? Тут все просто и объясняется тремя причинами - отсутствие раскладки под macOS, слишком высокие клавиши, она проводная. Поэтому это первые три критерия выбора у меня были.
Немного о самом выборе. Под все мои критерии подходит продукция 2 компаний - NuPhy и Keychron (не путать с Keyron). Я долго выбирал модель, в итоге после пары роликов и смотря на скорость доставки я выбрал NuPhy Air75 первого поколения на красных переключателях. Второе было ждать в несколько раз дольше.
Переключатели я тоже выбирал. Между красными и коричневыми. Теперь думаю заказать на всякий случай набор коричневых, так как мне они понравились (в наборе идет по 1 штуки каждого типа). Клавиатура очень крутая, но есть несколько минусов:
- Не хватает кнопки переключения языка, как на клавиатурах от Apple. Сначала я к ней привыкал, теперь привыкаю к ее отсутствию. И даже на самом MacBook я периодически пытаюсь сейчас переключать комбинацией клавиш.
- Не хватает TouchID, который был на прошлой клавиатуре. Поэтому пару-тройку раз в день приходится вводить пароль.
🔥1
Про микрофон.
Когда я делал серию постов про мои девайсы и не упомянул про запись звука, а это тоже важно, так как программисты часто участвуют в созвонах и мне как спикеру надо иногда записывать прогоны докладов.
Начну с того чем я пользовался.
В основном это были микрофоны от наушников либо от компьютеров. Первый стационарный микрофон я купил в начале 2022 года. Он был достаточно дешевым (около 3000), но с ним в наборе шли поп-фильтр и пантограф (стойка). Прожил я с ним около полугода, потом у меня появились Airpods Max и я перешел на них. Потом я перешел на микрофон от вебкамеры.
В начале этого года у меня появились беспроводные петлички. Хорошая штука, есть требуется быстро и в полевых условиях что-то записать.
А потом я решился. Заказал на Али 3 вещи у Fifine - микрофон AM8, пантограф BM88 и микшер SC3. Обошлось все в 12000, но это со скидками. Сейчас за эти деньги не купить такой набор.
Скажу сразу - микшер оказался не нужен. Я специально докупал для него кабель XLR, но разницы с подключением по USB-C нет.
Сам микрофон динамический и очень стильный. Качество звука меня потрясло, как будто микро для подкастов от Rode или Shure (на них я посматриваю, может через годик-другой и перейду). Для моих целей он меня полностью устраивает.
А вот пантограф я буду менять скорее всего. У него есть одна проблема - не регулируется нижняя часть по высоте.
Когда я делал серию постов про мои девайсы и не упомянул про запись звука, а это тоже важно, так как программисты часто участвуют в созвонах и мне как спикеру надо иногда записывать прогоны докладов.
Начну с того чем я пользовался.
В основном это были микрофоны от наушников либо от компьютеров. Первый стационарный микрофон я купил в начале 2022 года. Он был достаточно дешевым (около 3000), но с ним в наборе шли поп-фильтр и пантограф (стойка). Прожил я с ним около полугода, потом у меня появились Airpods Max и я перешел на них. Потом я перешел на микрофон от вебкамеры.
В начале этого года у меня появились беспроводные петлички. Хорошая штука, есть требуется быстро и в полевых условиях что-то записать.
А потом я решился. Заказал на Али 3 вещи у Fifine - микрофон AM8, пантограф BM88 и микшер SC3. Обошлось все в 12000, но это со скидками. Сейчас за эти деньги не купить такой набор.
Скажу сразу - микшер оказался не нужен. Я специально докупал для него кабель XLR, но разницы с подключением по USB-C нет.
Сам микрофон динамический и очень стильный. Качество звука меня потрясло, как будто микро для подкастов от Rode или Shure (на них я посматриваю, может через годик-другой и перейду). Для моих целей он меня полностью устраивает.
А вот пантограф я буду менять скорее всего. У него есть одна проблема - не регулируется нижняя часть по высоте.
🔥3
Сегодня расскажу про последнюю мою покупку для рабочего места - док-станцию
Я давно хотел себе на стол поставить хорошую док-станцию с большим количеством портов. Долго искал, смотрел все варианты, но они были очень дорогими. В итоге от того, что используют в Европе и США - TS4 - я отказался, так как тратить 400 долларов, не считая доставки из Штатов, не хотелось.
А когда заказывал микрофон подвернулась и станция от Ugreen. Да, это можно сказать минимальная версия - 3 USB-C (один для подключения зарядки, другой для подключения ноута, третий - для всего, что угодно), 3 USB-A, кард-ридер, Ethernet, 2 HDMI, DisplayPort и порт под наушники. Все это в наборе с 2 кабелями USB-C - USB-C и блоком питания GaN на 100 Вт.
После этого я попробовал сделать подключение одним кабелем к MacBook. Все подключил, только была проблема с монитором, но и ее решил простой заменой кабеля HDMI. Вылезла еще одна - регулировать звук только через сам монитор. Специальная программа помогла. Вроде должно быть и все, но не тут то было. Сижу, работаю и в какой-то момент все гаснет. Просто MacBook сел в 0. Пришлось оставаться на 2 кабелях - один от монитора, другой от док-станции.
Я давно хотел себе на стол поставить хорошую док-станцию с большим количеством портов. Долго искал, смотрел все варианты, но они были очень дорогими. В итоге от того, что используют в Европе и США - TS4 - я отказался, так как тратить 400 долларов, не считая доставки из Штатов, не хотелось.
А когда заказывал микрофон подвернулась и станция от Ugreen. Да, это можно сказать минимальная версия - 3 USB-C (один для подключения зарядки, другой для подключения ноута, третий - для всего, что угодно), 3 USB-A, кард-ридер, Ethernet, 2 HDMI, DisplayPort и порт под наушники. Все это в наборе с 2 кабелями USB-C - USB-C и блоком питания GaN на 100 Вт.
После этого я попробовал сделать подключение одним кабелем к MacBook. Все подключил, только была проблема с монитором, но и ее решил простой заменой кабеля HDMI. Вылезла еще одна - регулировать звук только через сам монитор. Специальная программа помогла. Вроде должно быть и все, но не тут то было. Сижу, работаю и в какой-то момент все гаснет. Просто MacBook сел в 0. Пришлось оставаться на 2 кабелях - один от монитора, другой от док-станции.
🔥2🆒1
Мало кто знает, но у меня несколько профессий. Да, кроме основной специальности, я прошел переподготовку (вроде так сейчас дополнительное высшее называется, не путать со вторым высшим) на переводчика.
Так вот. Сейчас у меня появились задачи, на которых я применяю знания, полученные на занятиях. Я не переводил большие тексты с написания диплома, тогда я переводил пару глав из книги Learning Node от издательства O'Reilly (спасибо издательству Питер за то, что иногда оригиналы бесплатно раздают).
В связи с этим, скоро поделюсь тем, что я переводил. Скорее всего, это будет в ближайшие дни.
Так вот. Сейчас у меня появились задачи, на которых я применяю знания, полученные на занятиях. Я не переводил большие тексты с написания диплома, тогда я переводил пару глав из книги Learning Node от издательства O'Reilly (спасибо издательству Питер за то, что иногда оригиналы бесплатно раздают).
В связи с этим, скоро поделюсь тем, что я переводил. Скорее всего, это будет в ближайшие дни.
👍3❤2
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Приготовили для вас серию статей переводов о тестировании в Flutter.
Сегодня первый выпуск, в котором познакомимся с Unit-тестированием, Widget-тестированием, Golden-тестами и интеграционным тестированием (оригинал).
В статье приведено много примеров и часто встречаемых ошибок, с которыми сталкиваются специалисты, когда пишут тесты. Показано, как писать код, чтобы сделать тестирование проще, и как использовать AI-инструменты, такие как ChatGPT или GitHub Copilot для увеличения скорости написания тестов.
Переходите по ссылке. По ходу материала вам будут встречаться мои комментарии.
Приятного чтения! Будем рады вашей обратной связи в чате.
Сегодня первый выпуск, в котором познакомимся с Unit-тестированием, Widget-тестированием, Golden-тестами и интеграционным тестированием (оригинал).
В статье приведено много примеров и часто встречаемых ошибок, с которыми сталкиваются специалисты, когда пишут тесты. Показано, как писать код, чтобы сделать тестирование проще, и как использовать AI-инструменты, такие как ChatGPT или GitHub Copilot для увеличения скорости написания тестов.
Переходите по ссылке. По ходу материала вам будут встречаться мои комментарии.
Приятного чтения! Будем рады вашей обратной связи в чате.
👍2
Хоть статья и вышла еще в среду, только сегодня она была опубликована на Хабре
Читайте, ставьте лайки и т. д. - https://habr.com/ru/articles/829904/
Читайте, ставьте лайки и т. д. - https://habr.com/ru/articles/829904/
Хабр
Полный гайд по тестированию на Flutter. Часть 1: Знакомство с методами тестирования
Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga. Мы с командой подготовили для вас перевод статьи о тестировании во Flutter. Рассмотрим...
👍5
Кстати, в эту среду в Красноярске прошел митап от Т-Банка. Тема была - секция программирования на собеседованиях.
Мы с моим коллегой Михаилом, который вместе со мной перешел из Аспирити в Amiga, посетили это мероприятие. Пообщались с людьми, позадавали вопросы спикерам (к слову, я с 2 из них уже был знаком, так как пересекались на конференциях и не только).
Было очень круто! Уровень с прошлого раза сильно поднялся, как по качеству докладов, так и по организации в целом.
Мы с моим коллегой Михаилом, который вместе со мной перешел из Аспирити в Amiga, посетили это мероприятие. Пообщались с людьми, позадавали вопросы спикерам (к слову, я с 2 из них уже был знаком, так как пересекались на конференциях и не только).
Было очень круто! Уровень с прошлого раза сильно поднялся, как по качеству докладов, так и по организации в целом.
👍4
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем раскрывать тему тестирования в Flutter и сегодня поговорим о модульном (Unit) тестировании.
В данной статье описан простой Unit-тест и использование функций expect и Matcher. Скорее переходите на Habr, чтобы узнать подробности!⬅️
Еще несколько выпусков будут посвящены Unit-тестам, разберем более сложные случаи с использованием продвинутых техник: Mock, Fake и Stub.
Ставьте реакцию, если ждете продолжения!🙂
В данной статье описан простой Unit-тест и использование функций expect и Matcher. Скорее переходите на Habr, чтобы узнать подробности!
Еще несколько выпусков будут посвящены Unit-тестам, разберем более сложные случаи с использованием продвинутых техник: Mock, Fake и Stub.
Ставьте реакцию, если ждете продолжения!
Please open Telegram to view this post
VIEW IN TELEGRAM
Только что завершил перевод 6 части "Полный гайд по тестированию на Flutter" (они будут постепенно выходить в ближайшее время).
Я думал, что это последняя часть, но это оказалось не так. На самом деле, это последняя часть на английском языке, а остальные 3 есть только на вьетнамском. Пожелайте мне удачи с этими переводами
Я думал, что это последняя часть, но это оказалось не так. На самом деле, это последняя часть на английском языке, а остальные 3 есть только на вьетнамском. Пожелайте мне удачи с этими переводами
😁5👍2😱2
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Вот и третья часть перевода подъехала⚙️
В предыдущих статьях мы научились писать модульные тесты для статичных функций, верхнеуровневых функций и расширений. На этот раз напишем Unit-тестыдля методов класса.
Читайте по ссылке на Habr. Пишите комментарии и ставьте реакции, если тема вам интересна!⚙️
В предыдущих статьях мы научились писать модульные тесты для статичных функций, верхнеуровневых функций и расширений. На этот раз напишем Unit-тесты
Читайте по ссылке на Habr. Пишите комментарии и ставьте реакции, если тема вам интересна!
Please open Telegram to view this post
VIEW IN TELEGRAM
А вот и второй сюрприз подъехал.
Я обещал после Mobius, что их будет 2. Первым была книга.
Теперь еще один - вчера я сходил на Flutter Dev Podcast, где мы поговорили про очень интересную тему. Но так как процесс монтажа занимает какое-то время, он выйдет не очень скоро, так что ждите)
Я обещал после Mobius, что их будет 2. Первым была книга.
Теперь еще один - вчера я сходил на Flutter Dev Podcast, где мы поговорили про очень интересную тему. Но так как процесс монтажа занимает какое-то время, он выйдет не очень скоро, так что ждите)
Telegram
Flutter Dev Podcast — анонсы выпусков
Всё что вы хотели узнать про Flutter, но боялись спросить. Обсуждаем новости индустрии, делимся продакшн-опытом внедрения и интересными наблюдениями, приглашаем ярких представителей Flutter-сообщества.
🔥4
Итак. Поступают плохие новости. YouTube все-таки замедляют. У меня это началось где-то неделю назад, может чуть больше. Немного хронологии:
- Начали подтупливать видео раз в несколько минут. "Ну и пофиг"
- Грузит только 720p. "Ок, не страшно"
- Ростелеком заявили о серверах (что оказалось ложью) "Явно врут, не может 1-2 сервера из примерно 1000 влиять на всех в стране"
- Грузит только 480p. "Ну, вспомним 2010"
- Еле грузит 320p. и почти сразу выходит заявление о замедлении "Я же говорил, но что делать то?"
В итоге чисто для просмотра роликов перехожу на Google Chrome, так как там есть метод обхода, надеюсь постоянный. Это экспериментальный протокол QUIC. И это действительно работает.
Чтобы включить у себя в Chrome или любом другом браузере на базе Chromium (Edge, Яндекс.Браузер и т. д.) - перейдите на chrome://flags/#enable-quic и первым в списке будет он. Нужно, чтобы он был Enabled.
- Начали подтупливать видео раз в несколько минут. "Ну и пофиг"
- Грузит только 720p. "Ок, не страшно"
- Ростелеком заявили о серверах (что оказалось ложью) "Явно врут, не может 1-2 сервера из примерно 1000 влиять на всех в стране"
- Грузит только 480p. "Ну, вспомним 2010"
- Еле грузит 320p. и почти сразу выходит заявление о замедлении "Я же говорил, но что делать то?"
В итоге чисто для просмотра роликов перехожу на Google Chrome, так как там есть метод обхода, надеюсь постоянный. Это экспериментальный протокол QUIC. И это действительно работает.
Чтобы включить у себя в Chrome или любом другом браузере на базе Chromium (Edge, Яндекс.Браузер и т. д.) - перейдите на chrome://flags/#enable-quic и первым в списке будет он. Нужно, чтобы он был Enabled.
👍6
Экосистема Apple спасает в самом необычном случае.
Сейчас телега работает еле-еле, но мне нужно было отправить файл. 10 минут ожидания на 0% означают, что нужно искать обходные пути. И им для меня стал AirDrop, так как с телефона в телегу хоть медленно, но заливается.
А как у вас обстоят дела с доступом в телегу?
Сейчас телега работает еле-еле, но мне нужно было отправить файл. 10 минут ожидания на 0% означают, что нужно искать обходные пути. И им для меня стал AirDrop, так как с телефона в телегу хоть медленно, но заливается.
А как у вас обстоят дела с доступом в телегу?
🤯3
На проекте, который сейчас делаю на работе встретился интересный баг.
У нас используется flutter_html, и если мы передадим ему список внутри абзаца (например <p><ul>...</ul></p>), то снизу появится отступ размером с сам список.
В итоге, оказалось, что это баг самой библиотеки, поэтому решение было достаточно быстрым - меняем. Поменял на flutter_widget_from_html. Она, как мне показалось, чуть более удобная даже.
У нас используется flutter_html, и если мы передадим ему список внутри абзаца (например <p><ul>...</ul></p>), то снизу появится отступ размером с сам список.
В итоге, оказалось, что это баг самой библиотеки, поэтому решение было достаточно быстрым - меняем. Поменял на flutter_widget_from_html. Она, как мне показалось, чуть более удобная даже.
👍1
Flutter Tech-Lead Notes
На проекте, который сейчас делаю на работе встретился интересный баг. У нас используется flutter_html, и если мы передадим ему список внутри абзаца (например <p><ul>...</ul></p>), то снизу появится отступ размером с сам список. В итоге, оказалось, что это…
Все стало еще интереснее. Сборка приложения после смены библиотеки не дошла до Test Flight. В чем проблема? В том, что эта библиотека объединяет несколько и ей нужно разрешение микрофона. Поэтому нужно использовать flutter_widget_from_html_core
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Делимся с вами 4 частью полного гайда по тестированию в Flutter, которая посвящена продвинутому модульному тестированию.
Мы уже рассмотрели:
⚙️ Unit-тестирование, Widget-тестирование, Golden-тесты и интеграционное тестирование
⚙️ Простые модульные (Unit) тесты
⚙️ Использование техник Mocking и Stubbing для тестирования классов
В новой статье еще больше усложнен класс LoginViewModel при помощи создания переменной _cache для кеширования результата, полученного от SharedPreferences. Продолжение читайте по ссылке.
Fun fact:думали, что гайд состоит из 6 статей, а оказалось, что есть еще 3, только уже не на английском, а на вьетнамском языке. Пожелайте нам удачи!
Мы уже рассмотрели:
В новой статье еще больше усложнен класс LoginViewModel при помощи создания переменной _cache для кеширования результата, полученного от SharedPreferences. Продолжение читайте по ссылке.
Fun fact:
Please open Telegram to view this post
VIEW IN TELEGRAM