ch
Feedback
Android Live 🤖

Android Live 🤖

前往频道在 Telegram

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

显示更多
5 158
订阅者
无数据24 小时
+17
-930
帖子存档
Друзья, я решил ввести на канале новую рубрику — тестовые задачи по Android. Подобные тесты часто бывают для отсеивания кандидатов на интервью, а также на конференциях. Итак, начнём с простого задания! 🤓

​​Android ViewModel. Как это работает #статьи #разработка Наиболее популярным решением от Google для взаимодействия между Presenter-слоем и View-слоем — это ViewModel. Самым главным преимуществом является механизм сохранения состояния при пересоздании Fragment или Activity. И кажется, что внутри намешана какая-то магия. 😯 Но если копнуть, то внутри вы обнаружите самый обычный код, где её (магии) «почти» нет. Копнуть и разобраться в деталях поможет эта статья. Начиная от 2017 года, автор копается во внутренностях механизмов ViewModel и рассматривает то, как менялись подходы со временем. Интересно, что в самом начале пути, у ViewModel под капотом использовался retained fragment. 🤓

​​Результаты конкурса Podlodka Android Crew #конкурс Итак, наконец пришло время опубликовать результаты конкурса, описанного тут. В конкурсе приняло участие 55 человек, при помощи генератора случайных чисел был выбран победитель — @YakovlevAleksey, с чем я его и поздравляю 😎. Мероприятие стартует 22 июня. Уже известно расписание первой недели, связанной с архитектурой приложений. Ещё есть шанс присоединиться и получить огромный пласт новых знаний. Ссылка с подробностями здесь. Видео с выбором победителя тут. До новых конкурсов!

​​Создание Twitter splash-screen с использованием MotionLayout #разработка #дизайн #опрос Уже не в первый раз пишу вам о возможностях и фишках нового MotionLayout. Последний пост был связан с приложением ScrumPoker, его найдёте тут. Сегодня ещё один крутой пример. Автор решил написать анимированный Twitter-подобный splash-screen и выбрал самый простой способ — это MotionLayout. Получилось хорошо и количество кода также впечатляет: немногим более 50 строк для MotionScene. Ссылки на первую и вторую часть статьи тут и тут. А вы используете MotionLayout у себя в прод-проектах?

Android 11: что нового? #конференции Мы уже видели с вами как минимум 2 конференции, связанные с Android 11, где были обзорно рассмотрены большинство нововведений. Сейчас самое время углубиться в то, что нам принесли эти обновления. И я буду очень рад вашему участию в мероприятии, где буду одним из ведущих. Оно состоится 20 июня в 12:00 по Москве. Всего будет три эксперта, которые рассмотрят некоторые из фишек, описанных в нововведениях Android 11. Мероприятие проводят, совместно, GDG Bryansk и GDG Kaluga. Эксперты: • Федор Цымбал – работает архитектором в MERA 11 лет. Последние 5 лет занимается разработкой Android Board Support Package (BSP) для микроэлектронного производства. За это время Фёдор получил много опыта работы на разных версиях Android. Расскажет нам об изменениях в Privacy. • Иван Баранов – разработчик под Android с суммарным опытом более 8 лет. Участвовал в написании различных проектов, последние несколько лет пишет защищённый мессенджер. Расскажет, что появилось нового в Insets и анимациях клавиатуры. • Инесса Бухонова – 7 лет в Android разработке, помогает делать Android академию СПб, выступала на самых первых GDG в далёком 2013. Будет выступать с темой Bubbles overview Продолжительность мероприятия — 2 часа и я уверен, что это будет полезно всем нам. Зарегистрироваться нужно тут. Увидимся! 😎

​​Удалённое логирование с Timber и Firebase Realtime Database #статьи #разработка Думаю, что никому не нужно объяснять, насколько важно логирование при разработке. Встроенный в Android SDK инструмент — Log неплох, но главная проблема в том, что нам нужно каждый раз подставлять тег в первый параметр. В качестве альтернативы есть библиотека Timber, которая расширяет стандартную библиотеку и теперь нам не нужно подставлять тег в качестве параметра, а что более важно — мы можем сделать разные деревья для настройки логирования в разных конфигурациях приложения. Но если нам нужно сделать удаленное логирование? Когда у нас есть устройство рядом, то никаких проблем нет. Но если это устройство не рядом, то проверить логи — отдельная задача. Интересная связка для удалённого тестирования описана тут. Автор описывает то, как создать отдельное дерево для записи логов в Firebase Realtime Database, получая логи удалённо, лежащими в базе данных. Получилось довольно удобно, на мой взгляд это отлично подходит для тестовых устройств, но не уверен, что годится, если вы хотите что-то логировать в prod.

​​Ещё немного про Android 11 #конференции В мире Android всё быстро меняется. Особенно, когда дело касается мероприятий, связанных с презентацией свежего Android 11. Вроде мы уже знаем, чего нам ожидать от него, но интересно послушать также и комментарии экспертов. Уже упоминал вам об онлайн-мероприятиях тут. Осталось только актуализировать даты: 1) Просмотр от Android Broadcast, совместно с Android Dev Podcast. Ссылка на трансляцию тут, начало мероприятия завтра 15 июня в 20:00 по МСК. 2) Просмотр от GDG Russia совместно с Google. Ссылка на трансляцию тут, начало мероприятия в среду, 17 июня в 19:00 по МСК. Надежные источники подтвердили, что на этой трансляции будет приглашенный гость — сам Chet Haase! 😎 Кроме того, у каждого присутствующего будет возможность поучаствовать в квизе и выиграть фирменные штуки от организаторов. Локальным мероприятиям от GDG также быть, обязательно следи за анонсами! 🤓

​​Podlodka Android Crew #конференции Не успела завершиться Podlodka Team Lead Crew, как организаторы решили сделать онлайн конференцию для Android разработчиков — Podlodka Android Crew. Уже с 22 июня нас ждут 2 недели интенсива от экспертов по современным практикам Android-разработки, куча общения и обмена опытом. Темы недели — это архитектура и оптимизация работы мобильных приложений, что актуально для всех всегда. Сейчас билет стоит 3400 рублей, что довольно дешево, учитывая цену на обычные конференции разработчиков. Уже 18 июня цена повысится до 3900. А у вас вновь есть шанс выиграть билет на эту конференцию и постетить её бесплатно. Всё что нужно сделать — это оставить свой ник в Telegram в этой форме и 18 июня в 15:00 мы также рандомно выберем победителя. Торопитесь прокачать свои навыки! 🤓Ссылка на детальное описание тут.

​​Релиз Android 11 #разработка #статьи #комментарии Вчера вечером, Google сделал обновление Android 11 и выкатил огромное количество обновлений для разработчиков. Среди них: • Hilt (переводится как «рукоятка» 😄) — рекомендованная библиотека для DI от Google. Она создана на основе Dagger и разработчики обещают лучшую скорость сборки билда и масштабируемость. Здорово, что она полностью интегрирована с существующим Jetpack, появились такие аннотации как @ViewModelInject и @AndroidEntryPoint. Пока библиотека сырая, но можно почитать подробнее тут. • Paging 3 — обновили библиотеку для постепенной загрузки данных, переписав её на coroutines. Подробнее в документации, версия пока тоже в alpha. • App Startup — библиотека для инициализации компонентов на старте приложения. Выглядит круто, обещают улучшенную производительность и уменьшенное время старта. Обязательно возьму себе на заметку. Подробности тут. • Auto-fill IME integrations — API для ввода подсказок при вводе с клавиатуры. В примере показано, как пользователь переходит в поле ввода данных карты, а система предлагает ему на выбор одну из его сохранённых. Как по мне, крутая штука, которая улучшит взаимодействие пользователя с приложением. • улучшили работу с анимациями, добавив SeekableAnimatedVectorDrawable. Класс расширяет сущесвующие AnimatedVectorDrawable, добавив возможность прокручивать, ставить на паузу и возобновлять анимацию. Кроме этого, Motion Editor уже в 4 версии Android Studio, самое время добавлять анимации в приложение. • обновления существующих библиотек, таких как Navigation, Workmanager, Permissions. Обновления здоровские, значительно облегчат жизнь нам, разработчикам. Подробнее о всех обновлениях можно прочитать в этой статье. А также можно посмотреть видео про все эти новинки. Как вам обновления? Что ждали больше всего? Давайте обсудим в комментариях

Интервью с разработчиком: как стать GDE #интервью Наше интервью с Евгением Мацюком и Александром Денисовым опубликовано. Огромное спасибо всем, кто задавал свои вопросы и уверен, что теперь у всех нас есть чуть больше информации о том, как стать GDE. Ссылка на статью тут, обязательно поддержите её своими лайками и комментариями на Medium😉.

​​Создание приложения Scrum Poker с использованием MotionLayout #разработка #статьи Уже не раз писал на канале посты, связанные с MotionLayout и приводил примеры приложений, которые используют этот инструмент. На этот раз попалась статья, где автор поставил цель написать небольшое приложение для scrum poker, используя минимальное количество строк кода. MotionLayout вот-вот перейдет в релизную стадию, поэтому самое время изучать его основные фишки. Прочитать статью можно тут. У автора получилась интересная статистика по количеству написанного кода: 81 строчка Kotlin-кода и 230 строк xml-кода. Как по мне, отличные показатели для такого приложения.

​​Layout Inspector #разработка Совсем недавно Android Studio 4.0 перешла из стадии beta в стадию stable и принесла нам Layout Inspector. У него есть 3 части: • Component Tree — покажет вам дерево view, в реальном времени. Подходит для того, чтобы посмотреть, из каких элементов состоит экран в текущий момент времени. • Inspector — по сути визуальный canvas текущего экрана, отображаемого на эмуляторе или устройстве. Главная фишка — визуализация является интерактивной, поэтому мы можем покликать наши компоненты и проверить различные атрибуты. • Attributes — позволяет получить подробную информацию о каждом из объектов на экране. Полезно, если мы хотим проверить реальные размеры View на экране или посмотреть, какие у неё отступы относительно других компонентов. Больше информации об этой крутой фиче можно найти тут.

​​Avokado Project #разработка Ребята из Лаборатории Касперского и Avito решили сделать новый проект для разработчиков, целью которой делиться знаниями, опытом и инструментами. Здорово, что такие большие компании делятся своими наработками с сообществом. Уже писал вам о фреимворке для написания тестов Kaspresso, который значительно упрощает этот нелегкий процесс. Помимо этого, есть Avito Android Infrastructure, где есть набор всех инструментов для непрерывного тестирования и доставки приложений пользователям. Дальнейшие шаги для развития — это продолжение работы в автотестировании, а цель — это сделать продукт, который позволит за условные 15 минут развернуть среду для автотестов на любом проекте. Каждый может присоединиться к проекту. Можно просто следить за обновлениями на сайте, можно присоединиться к чату и накинуть своих идей или проголосовать за уже существующие.

​​Чат в приложении #разработка #вопрос #комментарии Чат на первый взгляд кажется довольно распространённой, но от этого не менее сложной фичей. Ведь его поддержка вкллючает в себя и поведение при переходе в оффлайн режим, и сохранение сообщений, и их динамическую подгрузку. Так один экран может добавить довольно много работы разработчику. У меня есть к вам всем вопрос. В текущем проекте есть такая задача — это создание внутреннего чата приложения. Чтобы не создавать всю инфраструктуру с нуля, было принято решение поискать готовые решения. Требования к чату следующие: • обмен личными сообщениями между пользователями; • возможность развернуть чат на своём сервере; • не обязательна, но желательна поддержка чатов; • наличие SDK под Android или примера приложения; • open source или единовременная плата за проект. Сейчас выбор пал на проект Matrix, который удовлетворяет требованиям и имеет рабочие приложения на своей базе. Правда, текущий SDK написан на Java и тянет за собой довольно много библиотек. Возможно, есть другие крутые продукты, которые не получилось найти. Вопрос к вам, уважаемые подписчики: какие крутые решения для добавления чата в приложение вы знаете? Поделитесь в комментариях.

Презентация Android 11 отменилась #конференции На прошедней неделе мы получили не самое приятное зявление. 😕 Презентация Android 11 перенесена на неопределенный срок. Будем ждать будущих анонсов. Мероприятия, связанные с презентацией, также отменены.

​​Результаты конкурса Podlodka Teamlead Crew #конкурс Итак, наконец пришло время опубликовать результаты конкурса, описанного тут. В конкурсе приняло участие 40 человек, при помощи генератора случайных чисел был выбран победитель — @i30mb1, с чем я его и поздравляю 😎. Мероприятие стартует 1 июня. Кстати, уже известно полное расписание и список экспертов. Ещё есть шанс присоединиться и получить огромный пласт новых знаний. Ссылка с подробностями здесь. Видео с выбором победителя тут. До новых конкурсов!

​​Презентация Android 11 #конференции Уже совсем скоро в мире Android произойдет важное событие — презентация новой версии Android 11. Обычно эта презентация происходит в рамках Google I/O, но в этом году она будет проходить целиком онлайн, 3 июня в 18:00 по Москве. Там будет представлено множество новых изменений, которые мы, как разработчики, обязаны будем учитывать при создании приложений. Подробнее про новые фишки можно почитать тут. Кроме того, есть возможность посмотреть трансляцию вместе с русскоязычными экспертами в Android и обсудить те фишки, которые там появились. В этот раз таких трансляций целых две: 1) Просмотр от Android Broadcast, совместно с Android Dev Podcast. Эксперты: Кирилл Розов , Александр Блинов, Михаил Емельянов, Сергей Боиштян, Вадим Котов, Антон Дудаков Анонс Android 11 Beta - Смотрим вместе 2) Просмотр от GDG Russia совместно с Google. Эксперты: Звиад Кардава, Денис Неклюдов, Александр Ефременков, Катя Петрова Android 11 Beta Launch Show с комментариями экспертов Также совсем скоро будут локальные мероприятия от GDG, где мы подробнее рассмотрим, как все эти фишки применить. Обязательно следите за анонсами! 🤓

​​Напоминаю, что сегодня до 18:00 есть возможность поучаствовать в конкурсе и выиграть билет на Podlodka Teamlead Crew. Подробности можно узнать в этом посте.

​​Анатомия RecyclerView #разработка #статьи RecyclerView используется почти в каждом современном приложении. Соответственно, если он работает с тормозами, то это влияет на опыт использования приложений миллионами пользователей. Поэтому, особенно важно, чтобы этот компонент работал максимально быстро. Есть довольно много статей, где рассказывается о советах, которые могут помочь в улучшении работы RecyclerView. Но не так много тех, где рассказывается о его внутреннем устройстве. Вот именно такая статья. Автор рассказывает о следующих вещах: • из каких компонентов состоит RecycledViewPool, как туда попадают ViewHolder; • pre-layout и post-layout стадии работы RecyclerView; • для чего нужны функции setIsRecyclable() и setHasTransientState(); • надо ли игнорировать вызов метода onFailedToRecycleView(); • как работает view cache.

​​Kotlin Serialization Library #разработка #статьи #опрос В мире Android разработки существует пара распространённых библиотек для парсинга и сериализации данных — Moshi и Gson. Но не так давно появилось решение от Kotlin. Для чего же оно нужно? Во-первых, описанные библиотеки используют рефлексию для своей работы. Kotlin не ограничен миром Android-разработки. Он также может использоваться для JS и iOS разработки, где есть проблемы с рефлексией. Во-вторых, такие решения являются не встроенными в язык. Вам нужно добавить зависимость, что увеличит количество методов в итоговом dex-файле. А если есть решение, которое справляется со всеми проблемами, но при этом встроено в язык, то зачем тянуть лишнее? В-третьих, это поддержка значений по умолчанию, встроенных в Kotlin. Сейчас Kotlin Serialization Library поддерживается Retrofit, который является самым распространённым кейсом использования сериализации. О том, как использовать эту библиотеку, можно прочитать тут. А что вы используете для сериализации данных?