fa
Feedback
Android Live 🤖

Android Live 🤖

رفتن به کانال در Telegram

Самые свежие новости, новинки и тренды Android от практикующего разработчика. Автор: @al_gorshkov, Чат: @android_live_chat Личный блог: @al_gorshkov_blog Рекламу не размещаю

نمایش بیشتر
5 158
مشترکین
-224 ساعت
+17 روز
-1030 روز
آرشیو پست ها
​​10 случаев, когда можно обойтись без мыши при работе с IntelliJ IDEA #tips Тут мне скинули классную статью от JetBrains, где даются советы по работе с IntelliJ IDEA без мыши. Думаю, что это особенно актуально и полезно, когда работаешь с одного ноутбука. Для меня самым крутым советом был пункт 6, где рассказывается о том, как сделать новый класс в нужном тебе пакете без использования мыши. Кажется, что получается даже быстрее, чем пытаться создать его при помощи мыши. В общем, крайне рекомендую, вероятно вы тоже возьмете парочку советов себе в копилку.😎

​​Вы — космический барахольщик, и к вам в руки попадает таинственная коробочка. Откройте её секрет в квесте от Авиасейлс и поучаствуйте в розыгрыше! Пройти квест: https://tprg.ru/XfNG #партнёрский

​​Жизнь в ОАЭ, Дубай #экспаты #interview Те, кто давно на канале, знают, что у нас есть рубрика, где гости, связанные с разработкой, рассказывают о своём опыте переезда и жизни в других странах. И хотя эта рубрика не самая популярная, но лично мне она очень нравится.🤓 Наш следующий гость — Антон Дудаков, который сейчас живёт в ОАЭ, Дубай, а работает в стартапе Ziina Android-разработчиком. Как всегда, свои вопросы вы можете задать в форме, а дальше начнётся формирование уже готового интервью. Кстати, пока ожидаете это интервью, вы можете почитать истории ребят из Израиля и Германии. 😎

​​Кастомные темы в Jetpack Compose #jetpack #compose В Jetpack Compose, мы используем по умолчанию MaterialTheme. Кроме того, у нас есть неплохо гайд о кастомизации её под свои нужды, а также bast practices по настройке цветов. Но если мы говорим про расширение темы, то MaterialTheme может быть не самым удачным решением. В статье автор рассказывает о том, как он улучшил текущую реализацию темы, добавив туда нужные атрибуты для более полной кастомизации. Получилось достаточно лаконично, поэтому если у вас много кастомных штук в приложении подобное решение вполне может вам помочь. ✊🏻

​​Про scope-функции #kotlin В стандартную библиотеку Kotlin включён ряд scope-функций, которые упрощают работу с объектами, особенно с nullable. Но многие из них похожи по функциональности, и разработчики часто используют их не совсем корректно. В документации даётся довольно подробное объяснение, когда какую функцию стоит использовать, а ещё есть неплохая статья, где описывается чуть больше примеров таких функций.

​​Возможность стать разработчиком в Яндексе за один викенд 9-10 октября Яндекс организует Weekend offer для middle/senior мобильных разработчиков. Зовут всех, кто пишет на Java/Objective-C/Swift/Kotlin/Dart Что требуется? 1) Зарегистрироваться и продемонстрировать свои навыки на этапе отбора до 6-го октября включительно. 2) Принять участие в 2-ух сессиях и решить задачи в команде, куда вас определит рекрутер. 3) Показать хороший результат и почти сразу получить оффер. Ловите ссылку на регистрацию, которая уже открыта. #партнёрский

​​Автоматический сброс разрешений #library Начиная с Android 11, был введён автоматический сброс разрешений у приложения, если пользователь не запускал его в течении нескольких месяцев. По сути, это аналог того, если бы пользователь нажал Deny при показе сообщения о запросе разрешений. У Google есть хороший раздел с практиками для показа диалога с разрешениями, и если ваше приложение ему следует, то ничего переделывать не нужно. Однако, есть ряд ограничений. 1️⃣ Во-первых, от подобного сброса освобождаются приложения, установленные производителем смартфонов. Этот пункт нас особо не касается, поэтому переходим ко второму. 2️⃣ А во-вторых — разработчики могут попросить пользователя запретить системе сбрасывать разрешения их приложений. Это важно для приложений, которые в большинстве случаев используются в фоне. Список примеров от Google тут. Например, это приложения для синхронизации данных в фоне или приложения для синхронизации с другими устройствами. Кроме этого, есть методы для того, чтобы понять, было ли отозвано разрешение у вашего приложения. Подробнее можно почитать тут. Обязательно проверьте ваше приложение, так как эта фича будет введена для устройств от Android 6, начиная с 2022 года. 🤓

​​Android Academy Global Advanced #beginners #courses Тут ребята из Android Academy запускают новый, продвинутый курс для тех, кто уже что-то понимает в Android-разработке, но хочет выйти на новый уровень. 🤟 Курс будет состоять из нескольких этапов: • архитектура — её выбор, подходы и библиотеки; • тесты — когда и для чего писать, какие виды есть и чем пользоваться для написания; • автоматизация ручной работы — CI, и что он нам даёт; • анализ падений — как ловить, анализировать и отлаживать. Курс бесплатный и начнётся 4 октября, для регистрации напишите сюда с командой academy. А подробнее почитать о программе можно тут.

​​Android Dev Summit #conference Тут Google анонсировали возвращение конференции Android Dev Summit, которая пройдёт 27 и 28 октября. Пока известно не так много: тема конференции — Excellent apps, across devices, где нам расскажут, как писать и адаптировать приложения под любые типы устройств, будь то планшеты или часы. Мероприятие делится на 50-минутную презентацию и целых 30 технических видео от команды Android, связанных с разными кейсами для разработки. Будем ждать, а на канале вы увидите выборку самых интересных и полезных докладов. 😎

​​Создание доступного приложения #tools #view Отличная статья, которая рассказывает о том, как сделать ваше приложение комфортным для использования людьми с разными видами инвалидности. На самом деле, меня радует, что в последнее время появляется много материалов, которые связаны с адаптацией приложений: ведь таких людей очень много, и не адаптируя своё приложение вы заранее вычёркиваете многих пользователей из своего списка. В статье есть примеры кода, связанного с адаптацией View, шрифтов, описания компонентов и т.д. А вот ещё хорошая книга, хотя и из мира iOS, но полезная всем, кто занимается адаптацией интерфейсов, где дано множество полезных и практических советов.

​​System Design Interview #interview Отличная статья, которая будет интересна тем, кто подготавливается к собеседованиям в компании, где одним из шагов является — System Design Interview. По сути, вас просят описать, как разработать какой-то сервис (например приложение Twitter). Решение не должно быть идеальным: никто не ожидает, что вы сможете сделать совершенную систему за полчаса. Важна коммуникация с интервьюером и те мысли, уточняющие вопросы, которые вы задаёте. В статье отлично показан сам процесс собеседования как раз на примере приложения Twitter.

​​Как измерить время старта приложения? #library #performance Для большинства приложений время старта — очень важная характеристика, которая влияет на удовлетворённость пользователя этим приложением. Конечно, это не будет решающей метрикой, благодаря которой пользователь выставит вам негативную оценку в Google Play, но всё же важно, чтобы приложение запускалось как можно быстрее. А измерение этой метрики — довольно нетривиальная задача, и важно сделать это правильно. Вот вам отличная статья, которая рассматривает различные способы для измерения времени запуска приложения. Это и анализ на собственном устройстве, и аналитика, которая собирается при помощи Google Play и Firebase, и кастомные решения.

​​📲 Оффер от Яндекса за выходные! Приглашаем мобильных разработчиков на Weekend Offer: решите две задачи онлайн, пройдите две секции с кодом и получите предложение о работе в Яндексе за одни выходные (9 и 10 октября). Зарегистрироваться: https://yandex.ru/promo/events/weekend-mobile/?from=tg_cpc_androidlive

​​Очищаем build.gradle #gradle Отличная статья, которая расскажет об очистке конфигурации build.gradle, делая её максимально простой. В итоге всё сводится к удалению уже не нужной информации, которая просто так захламляет этот файл. У меня, кстати, обнаружились почти все пункты. 🤫 Ссылка на статью тут.

​​Немного про Navigation Component #jetpack #navigation #comments Думаю, что многие из вас знакомы с библиотекой Jetpack Navigation Component, которая сейчас является рекомендованным решением для навигации от Google. Я пробовал эту библиотеку как только она появилась, но в самом начале было довольно много багов, которые не позволили использовать её в проде. Сейчас решил снова вернуться к ней, и поговорить о плюсах и минусах этой библиотеки. Начнём с хорошего: 🔹 рекомендованное решение от Google — библиотека входит в комплект Jetpack-библиотек, а это теоретически значит, что она будет поддерживаться, баги будут исправляться, а также будет интеграция с текущими компонентами. 🔹 удобный и красивый граф навигации — наверное, это одна из фич библиотеки, которая вызывает «вау-эффект»: все экраны и отношения между ними видны в одном месте в виде красивых превью; 🔹 хорошая документация — в целом, с компонентом разберётся любой разработчик за достаточно короткий промежуток времени, ведь документация хорошая. Правда, хотелось бы больше примеров кода и приложений; А теперь поговорим о минусах, которые не позволили мне использовать её у себя в проекте. ⭕ отсутсвие кастомизации — у вас мало возможностей для настройки этой библиотеки. Например, я не нашёл как без костылей запретить пересоздавать фрагменты в BottomNavigationView, а ведь если у вас есть экран с картой, то его повторная инициализация занимает много времени; ⭕ навигация возможна только из Fragment — вы должны делать переходы между экранами только через Fragment. С одной стороны, это удобно, ведь, например, можно сразу, при клике на кнопку, вызвать нужный элемент навигации. Но с другой стороны — мы возлагает на Fragment больше ответственности, чем должно с точки зрения архитектуры. Я склоняюсь к тому, чтобы слой View был максимально «глупым» и в нём было минимальное количество логики. А вызвать навигацию с ViewModel проблематично. ⭕ сложность настройки backstack — у вас есть возможность настроить multiple back stack, однако если мы говорим про stack Activity, то фрагменты при нажатии кнопки «назад» также пересоздаются. Возможно, я не нашёл в документации, как поправить это поведение, но мне кажется, что это должно быть кастомизируемым для каждого экрана. Поэтому, пока я остаюсь на Cicerone, которая не имеет подобных минусов и полностью кастомизируется под мои требования. Поделитесь своим мнением про Navigation Component, буду рад поменять своё мнение. 😉

​​Ещё один опрос от JetBrains #kotlin #library Тут ребята из JetBrains ещё больше стараются улучшить свои продукты, и спрашивают тех, кто пользуется Kotlin Scripting. Как всегда, небольшой опрос, который здорово поможет улучшить качество продукта. Ссылка тут, не поленитесь открыть и поучаствовать.😉

​​Background Task Inspector #tools #performance #beginners Попался отличный гайд, который расскажет о том, что из себя представляет Background Task Inspector и как им пользоваться. Вообще в Android Studio есть несколько полезных инструментов, и Background Task Inspector — второй по популярности (после Database Inspector), которым я пользуюсь. Его суть заключается в показе текущего статуса выполнения работ из WorkManager, а также связи, которые имеются между этими работами. Это заметно облегчает отладку, ведь фоновые операции протестировать не всегда просто. Сама статья и примеры приложения тут.

​​Измерение производительности Jetpack Compose #compose #performance Интересная статья, где автор перед добавлением Jetpack Compose в проект решил проверить, насколько хорошо у него с производительностью, тестированием и временем сборки. Было протестировано 4 варианта: • вариант с одним Compose; • xml-файл с базовым ComposeView; • xml-файл с RecyclerView и адаптером; • вариант с одним xml. А прочитать результаты всех измерений и тестирования можно в этой статье.

​​Превью ссылок в Android #security #library Сегодня «шэринг» ссылок — одна из самых важных частей любого мессенджера или приложения, которое связано с лентами сообщений. И приложения, для того, чтобы повысить желание пользователя открыть ссылку и повзаимодействовать с сообщением, добавляют превью этих ссылок. 🤟 Если вы делаете подобные приложения, то есть отличная статья, которая расскажет, как реализовать подобную фичу. Однако, не всё так просто, и спасибо за это бдительному подписчику. 🤝 Дело в том, что при создании этого превью вы в любом случае в фоне открываете эту ссылку за пользователя. Представим сценарий, что какой-то недоброжелатель отправил в чат ссылку, которую по умолчанию открыли все те, кто увидел ленту этих сообщений. При этом недоброжелатель может зашить в ссылку всё что угодно, начиная от получения детальной информации о пользователе и заканчивая каким-то запрещённым контентом. Решение — сделать прослойку между пользователем и ресурсом в виде своего сервера. Это гораздо безопаснее, и защитит ваших пользователей от недоброжелательного контента. Telegram, кстати, именно так и делает, а, например Viber — грузит без прослойки. 😞 Так что будьте внимательны к этой фиче, ведь она не такая простая, как может показаться на первый взгляд. Да и к сообщениям со ссылками, тоже, будьте внимательны. 🤞

​​Опрос от JetBrains #kotlin #library Ребята из JetBrains интересуются вашим мнением, связанным с написанием библиотек. Если вы когда-то писали библиотеки на Kotlin для внутреннего или публичного использования, то пройдите небольшой опрос, связанный с этим по ссылке. Кстати, заполнившие отчёт могут выиграть одну из подписок на JetBrains All Products Pack или сертификат Amazon.🤫