fa
Feedback
Android Live 🤖

Android Live 🤖

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

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

نمایش بیشتر
5 158
مشترکین
-224 ساعت
+17 روز
-1030 روز
آرشیو پست ها
Как попасть в FAANG. Перенос на 27 февраля #youtube Друзья, у нас появились некоторые изменения, связанные с предстоящим стримом, описанным тут. Вместо 13 февраля в 18:00 по МСК, стрим пройдёт 27 февраля в 18:00 по МСК. Дело в том, что стрим требует согласования со стороны Facebook, и нужно ещё немного времени, чтобы это согласование завершить. Думаю, что мы получим approve и сделаем клёвый стрим, где ответим на все ваши вопросы. Положительным моментом является то, что вы можете задать ещё больше вопросов про работу в этих компаниях 😉. И извиняюсь за этот перенос🙏.

​​Как сделать адаптеры в RecyclerView лучше? #kotlin #recyclerview При написании стандартных адаптеров в RecyclerView, мы часто сталкиваемся с дублированием кода. Особенно это заметно при использовании разных ViewType. Думаю, что многим знаком подобный код: if (things.get(position) is Duck) { return TYPE_DUCK } else if (things.get(position) is Mouse) { return TYPE_MOUSE } То есть при добавлении нового элемента в список, нам нужно менять адаптер в нескольких местах. Существует несколько способов улучшения работы с адаптерами: 1️⃣ Использование layout в качестве идентификатора. Стоит помнить, что layout — это уникальный int, который можно использовать в качестве идентификатора. В этой статье автор предлагает использовать TypeFactory, где можно перечислить всю логику работы с идентификаторами для адаптера, и в случае добавления нового элемента – просто дописать строку в этой Factory. Хороший подход, который можно улучшить и использовать без добавления библиотек. 2️⃣ Использование Delegate для описание логики ViewHolder. Второй подход схож с первым. Можно прописать всю логику для работы с ViewHolder в одном классе Delegate. Потом просто регистрировать подходящие делегаты для нужного адаптера, не думая про имплементацию. Почитать подробнее про подход можно тут и уже есть библиотека, которую стоит изучить прежде чем затягивать к себе в проект. 3️⃣ Использование библиотек. Во втором подходе уже был описан пример созданной библиотеки, но кроме неё есть ещё их огромное множество. На мой взгляд, удачная библиотека описана в этой статье и называется Kiel. При помощи Kotlin DSL наш адаптер становится компактным, а кроме этого мы можем использовать библиотеку как с Paging Library, так и с Diff Utils. Стоит обратить внимание и применить подобный подход для своих приложений, если вам нравится DSL. А как вы улучшаете свои адаптеры?

​​KMM, Swift UI и Jetpack Compose #compose #kmm #crossplatform Мы с вами уже не раз обсуждали Jetpack Compose на канале, и даже провели шикарную live-coding сессию, которую можно посмотреть тут. Кроме просто замены xml-подхода в нативной разработке, Compose отлично стыкуется с KMM и UI-слоем для Android. Ну а для UI-слоя на iOS подходит Swift UI, который тоже является декларативным фреимворком. Чтобы попробовать такой подход, есть хорошая статья, где по шагам описывается создание простого проекта с использованием описанных выше технологий. Для архитектуры автор хочет использовать MVI, хотя сейчас там только один экран, который сделан без архитектуры. В любом случае, статья даёт возможность пощупать классные технологии. А запустить приложение, написанное при помщи Kotlin на iOS — бесценно.😁

Спрос на мобильных разработчиков превышает предложение, а наиболее предприимчивые из них покоряют Кремниевую долину с собстве
Спрос на мобильных разработчиков превышает предложение, а наиболее предприимчивые из них покоряют Кремниевую долину с собственным стартапом. Сделать первый шаг в мобильной разработке можно на бесплатном курсе Нетологии. За 6 дней вы глубоко погрузитесь в Android-разработку и с нуля создадите своё первое приложение — голосового помощника. Не факт, что сразу выйдет Alexa или Siri, но точно будет много практики с Android Studio, визуальными конструкторами и анимацией. Попробуйте ↓ https://netolo.gy/gdO

​​Фидбек о канале. Пожалуйста не проходите мимо этого поста. Всем привет. Это @al_gorshkov, автор этого канала и мне нужна ваша помощь. Мне супер приятно получать от вас обратную связь в личных сообщениях. Это мотивирует и даёт понимание того, что то, что ты делаешь — не зря. И сейчас мне хотелось бы чуть больше понимать, в какую сторону двигаться дальше. Я создал небольшую форму с вопросами о Telegram и YouTube каналах. Пожалуйста, ответь на вопросы, ведь всё анонимно, а заполнение займёт буквально 2 минуты. А мне даст мотивацию радовать вас еще более качественным контентом на канале. 🤝 Давайте вместе сделаем Android Live ещё лучше!

​​Модуляризация Android-приложений #architecture Разделение на модули — это довольно важная штука, особенно для больших приложений. Сегодня я нашел несколько свежих статей на эту тему, которые дают базовое представление о разделении приложений на модули с примером реализации. В первой части рассматриваются причины разделения монолита на модули, а также показывается схема этого разделения. Основные причины — уменьшение скорости сборки, разделение на архитектуру и переиспользование компонентов. Во второй и третьей частях рассматривается пример ручной и ленивой илициализации модулей их их сбрасывания.

​​Как попасть в FAANG? #youtube Разработчикам знакома аббревиатура FAANG: это первые буквы названий известных нам Facebook, Apple, Amazon, Netflix и Google. Работа в этих компаниях — достойное продолжение карьеры и цель для многих девелоперов. Но есть много вопросов: ▪️какой уровень знаний должен быть, чтобы попасть туда? ▪️как проходит этап собеседования? ▪️как правильно «продать себя» компании и не прогадать с зарплатой? ▪️какие есть особенности в корпоративной культуре? ▪️как вообще найти подобную вакансию? Вопросов много, а ответы в сети есть не на все. 🤷🏼‍♂️ Исправляем эту досадную оплошность и поговорим с сотрудниками этих корпораций, готовыми поделиться опытом. Наш спикер — Инесса Бухонова, работающая Web-разработчиком в мадридском Tech Hub Amazon. До этого она 7 лет занималась разработкой под Android. Увидимся 13 февраля в 18:00 по МСК на YoutTube-канале Android Live. Ссылка на трансляцию тут, а у вас есть возможность задать свои вопросы тут.

​​Kotlin 1.4.30 и новый компилятор #kotlin Сегодня вышла новая версия языка Kotlin. Появилось достаточно много изменений: ▪️inline-интерфейсы; ▪️изменения в работе inline-классов; ▪️поддержка JVM records. Полный список изменений можно найти тут. Плюс к этому JVM IR backend компилятор перешёл в стадию beta 🎊. О новом компиляторе говорят уже давно, и вообще он обещает быть интересным. Однако, для начала, надо убедиться, что он достаточно стабилен для public релиза. И это то, где вы можете помочь ему стать лучше 📈. Сделать это достаточно просто: 1️⃣Включите новый компилятор его в своём конфиг файле и соберите проект хотя бы раз. В идеале включить его по умолчанию для вашего проекта, потому что не только сборка, но и дебаг имеют значение в этом тестировании. 2️⃣В случае если будут баги, то можно репортить их в Youtrack или публичный Slack Kotlin. Давайте вместе доведём новый JVM IR backend до стабильного состояния!

Кстати, все, кто любит получать новости в YouTube-формате, у канала Android Broadcast вышла новая еженедельная рубрика с новостями. Формат отличный, видео получаются ёмкими, краткими и по существу. С последним выпуском можно познакомиться тут 🤟.

​​Подробнее про Paging 3 #jetpack #room Библиотека Paging 3 помогает отображать большие списки в RecyclerView. Сейчас она в статусе alpha, но уже хорошо работает. Отмечу явные плюсы: ▪️поддержка Flow и Coroutines. Ну и кроме этого есть поддержка RxJava и LiveData, если она вам нужна; ▪️полностью написана на Kotlin; ▪️поддержка разделителей, статусов загрузки, состояний ошибки; ▪️интеграция с Room. Добавлю, что интеграция работает также и при использовании RawQuery из Room. Эта интеграция заметно упрощает работу с Paging 3. Начать работу с этим классным компонентом поможет эта статья, а разобраться с состояниями загрузки, обновлениями и разделителями для списка — эта. Добавлю также один баг, который важно учитывать при использовании Paging 3. Эта библиотека работает некорректно, если поместить RecyclerView в ScrollView. Будьте внимательны при использовании!

Вместе с тем как растет количество владельцев смартфонов, увеличивается спрос на специалистов, умеющих ими управлять и програ
Вместе с тем как растет количество владельцев смартфонов, увеличивается спрос на специалистов, умеющих ими управлять и программировать. Android-разработчик — профессия будущего. Если вы хотите ворваться в перспективную IT-сферу — приходите на Факультет Android-разработки образовательной экосистемы GeekBrains. Вместе с опытными учителями-практиками освоите современные технологии Android-разработки и научитесь делать свои приложения. Получите все нужные навыки, диплом, сертификат и поддержку при трудоустройстве. Кстати, год учебной практики в GeekBrains — это год реального рабочего опыта. Сможете претендовать на позиции не только junior, но и middle. После успешного окончания обучения на факультете GeekBrains гарантирует трудоустройство в Mail.ru Group или в одну из компаний-партнеров. Записывайтесь прямо сейчас

​​Kotlin Delegation #kotlin Kotlin delegates — одна из самых недооценённых фич языка. Для многих разработчиков они кажутся сложными, а также многие не знают, для чего именно им нужно писать свои собственные делегаты. 🙄 Но на практике Kotlin delegates оказывается весьма полезной фичей, которая упрощает код и делает его более читаемым. По сути, делегат передаёт обращения get()и set() к свойству: причём достаточно, чтобы у класса были методы getValue() и setValue() с определённой сигнатурой, без переопределения какого-то интерфейса. Но одного определения будет недостаточно, поэтому вот пару полезных статей. В этой автор рассказывает базовые принципы делегатов, а также дает пример для получения аргументов фрагмента, данных из SharedPreferences и получения данных из View. В следующей рассказывается о других примерах применения этого инструмента. Ну и не забывайте про документацию, где можно также вдохновиться полезными примерами. ✌️

Жизнь разработчика в Германии #интервью #экспаты Друзья, наконец, вторая статья из рубрики, связанной с жизнью разработчиков в других странах готова. Как всегда, она получилась объёмной и отвечает на все вопросы, которые вы задавали (и даже больше). Не скупитесь на лайки, потому что это мотивирует искать для вас авторов, а авторов — писать статьи. 🙃 Ссылка на статью тут, а вы обязательно пишите обратную связь в чат или мне в личные сообщения.

​​​​Результаты конкурса Podlodka Android Crew — 3 сезон #конкурс Итак, пришло время опубликовать результаты конкурса, который был описан тут. В конкурсе принял участие 61 человек, при помощи генератора случайных чисел был выбран победитель — @max_ultra, с чем я его поздравляю! 🎊 Видео с выбором победителя тут. Обязательно участвуйте в новых конкурсах!

🔥Пока все только рассуждают про Flutter, научитесь делать серьезные кроcсплатформенные решения — на бесплатных вебинарах онл
🔥Пока все только рассуждают про Flutter, научитесь делать серьезные кроcсплатформенные решения — на бесплатных вебинарах онлайн-курса «Flutter Mobile Developer: 📌Demo Day курса «Flutter Mobile Developer»: https://otus.pw/F5bk/ — Зададите любые вопросы по Flutter. Познакомитесь с преподавателем-практиком, который расскажет о себе, своём опыте, поделится карьерными инсайдами и лайфхаками по выгодной оплате курса. 📌«Пишем Flutter-приложение с использованием Redux»: https://otus.pw/LBZu/ — Узнаете, как использовать подход к управлению состоянием во Flutter-приложениях. Выясните главные особенности Redux. Напишете небольшое приложение и обсудите, как хорошо Redux масштабируется в перспективе. 👉🏻Регистрируйтесь сейчас — напомним в день вебинара!

​​ WorkManager 2.5.0 #updates #jetpack Вышла новая версия WorkManager — 2.5.0. Что нового: ▪️управления процессами для установки фоновой работы. Полезная штука, если ваше приложение активно использует несколько процессов, и таким образом можно улучшить производительность фоновых операций. Для этого добавили новый артифакт: androidx.work:work-multiprocess:2.5.0 и метод для установки процесса по умолчанию для работы; ▪️повысили стабильность старта JobService из ActivityManager; ▪️ уменьшили размер буфера повторяемых задач с 7 дней до 1 + продолжительность keepResultsForAtLeast. Стоит быть осторожным, если вы выполняете свои задачи раз в несколько дней; ▪️добавили WorkManager Inspector, что на мой взгляд очень крутое обновление. Пока только в alpha версиях Android Studio, но уже выглядит обещающе и улучшит процесс отладки фоновых задач. Подробнее про изменения можно почитать тут.

​​Проясним TransactionTooLargeException #theory Существует ряд ошибок, которые сложно поймать при разработке или тестировании. TransactionTooLargeException относится к ним: он может не появиться каждый раз во время написания кода, но способен испортить жизнь пользователям во время использования приложения. Дополнительной проблемой является stack, который появляется после этого краша и не несёт информации о том, в каком месте приложения случился crash. Есть отличная статья, где рассказывается о борьбе с этим исключением: почему оно возникает, как его найти и какие способы оптимизации кода есть, чтобы не поймать такое исключение. Кстати, одной из главных оптимизаций является передача небольшого количества данных через Bundle, но уверен, что это вы и сами знаете 😉.

​​Podlodka Android Crew 3 сезон Ребята из Podlodka снова делают конференцию для Android-разработчиков. На этот раз нас ждут две недели, которые разделены на секции UI и алгоритмов. На первой неделе рассмотрим UI: лайфхаки верстки, Constraint best practice, анимации, дизайн-системы, рендеринг UI на уровне системы. Выглядит всё довольно интересно, ведь с вёрсткой мы сталкиваемся на практике очень часто, но даже в этой области всегда есть куда расти. На второй неделе поговорим про алгоритмы: как готовиться к алгоритмической секции собеседований, где алгоритмы используются в повседневной разработке, как прокачиваться в этой области. Начало конференции — 1 февраля, а билет сейчас стоит 3900 рублей. Подробнее о программе конфереции можно почитать тут, там же можно приобрести билет. Для подписчиков Android Live есть две крутых новости. Во-первых, вы можете получить билет бесплатно, просто оставив свой ник в Telegram в форме до этой пятницы 29 января 18:00. Розыгрыш проведём в этот же день. Во-вторых, есть промокод на скидку 300 рублей при покупке билета — ANDROID_LIVE_DC3. Кстати, если вы выиграете билет в розыгрыше, но предварительно купите билет, то вам вернут за него деньги, так что нет смысла тянуть с покупкой до пятницы 😉.

А мы начинаем! Самое время подключиться и задать интересующие вас вопросы про удалёнку зарубежом.

​​Инструменты для Room #tools #comments Room — отличная библиотека для работы с базой данных, которую сейчас используют многие приложения. Мне кажется, что это один из самых удачных и удобных инструментов из Jetpack. Плюс к этому — это и рекомендованный инструмент от Google. Но работу с Room можно улучшить, используя следующие библиотеки: 🔹Roomigrantинструмент, который позволяет автоматически генерировать миграции для Room, используя compile-time генерацию кода. По сути, библиотека использует созданные Room схемы и делает миграцию на их основе. Не уверен, что библиотека сделает всю работу за вас, но уж точно поможет автоматизировать эту рутинную работу 🔹RoomExplorer — быстрый viewer базы данных вашего приложения в отдельной Activity. Кроме этого, можно писать запросы для базы данных и видеть результат их работы. По сути, дублирует инструмент из Android Studio, но может быть полезным в случае работы с тестовым билдом. А какие инструменты для улучшения работы с Room вы знаете?