Android Live 🤖
الذهاب إلى القناة على Telegram
Самые свежие новости, новинки и тренды Android от практикующего разработчика. Автор: @al_gorshkov, Чат: @android_live_chat Личный блог: @al_gorshkov_blog Рекламу не размещаю
إظهار المزيد5 158
المشتركون
-224 ساعات
+17 أيام
-1030 أيام
أرشيف المشاركات
5 158
Как попасть в FAANG. Перенос на 27 февраля
#youtube
Друзья, у нас появились некоторые изменения, связанные с предстоящим стримом, описанным тут. Вместо 13 февраля в 18:00 по МСК, стрим пройдёт 27 февраля в 18:00 по МСК.
Дело в том, что стрим требует согласования со стороны Facebook, и нужно ещё немного времени, чтобы это согласование завершить. Думаю, что мы получим approve и сделаем клёвый стрим, где ответим на все ваши вопросы.
Положительным моментом является то, что вы можете задать ещё больше вопросов про работу в этих компаниях 😉.
И извиняюсь за этот перенос🙏.
5 158
Как сделать адаптеры в 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.
А как вы улучшаете свои адаптеры?5 158
KMM, Swift UI и Jetpack Compose
#compose #kmm #crossplatform
Мы с вами уже не раз обсуждали Jetpack Compose на канале, и даже провели шикарную live-coding сессию, которую можно посмотреть тут.
Кроме просто замены xml-подхода в нативной разработке, Compose отлично стыкуется с KMM и UI-слоем для Android. Ну а для UI-слоя на iOS подходит Swift UI, который тоже является декларативным фреимворком.
Чтобы попробовать такой подход, есть хорошая статья, где по шагам описывается создание простого проекта с использованием описанных выше технологий. Для архитектуры автор хочет использовать MVI, хотя сейчас там только один экран, который сделан без архитектуры.
В любом случае, статья даёт возможность пощупать классные технологии. А запустить приложение, написанное при помщи Kotlin на iOS — бесценно.😁
5 158
Спрос на мобильных разработчиков превышает предложение, а наиболее предприимчивые из них покоряют Кремниевую долину с собственным стартапом.
Сделать первый шаг в мобильной разработке можно на бесплатном курсе Нетологии. За 6 дней вы глубоко погрузитесь в Android-разработку и с нуля создадите своё первое приложение — голосового помощника.
Не факт, что сразу выйдет Alexa или Siri, но точно будет много практики с Android Studio, визуальными конструкторами и анимацией.
Попробуйте ↓
https://netolo.gy/gdO
5 158
Фидбек о канале. Пожалуйста не проходите мимо этого поста.
Всем привет. Это @al_gorshkov, автор этого канала и мне нужна ваша помощь.
Мне супер приятно получать от вас обратную связь в личных сообщениях. Это мотивирует и даёт понимание того, что то, что ты делаешь — не зря. И сейчас мне хотелось бы чуть больше понимать, в какую сторону двигаться дальше.
Я создал небольшую форму с вопросами о Telegram и YouTube каналах. Пожалуйста, ответь на вопросы, ведь всё анонимно, а заполнение займёт буквально 2 минуты. А мне даст мотивацию радовать вас еще более качественным контентом на канале. 🤝
Давайте вместе сделаем Android Live ещё лучше!
5 158
Модуляризация Android-приложений
#architecture
Разделение на модули — это довольно важная штука, особенно для больших приложений. Сегодня я нашел несколько свежих статей на эту тему, которые дают базовое представление о разделении приложений на модули с примером реализации.
В первой части рассматриваются причины разделения монолита на модули, а также показывается схема этого разделения. Основные причины — уменьшение скорости сборки, разделение на архитектуру и переиспользование компонентов.
Во второй и третьей частях рассматривается пример ручной и ленивой илициализации модулей их их сбрасывания.
5 158
Как попасть в FAANG?
#youtube
Разработчикам знакома аббревиатура FAANG: это первые буквы названий известных нам Facebook, Apple, Amazon, Netflix и Google. Работа в этих компаниях — достойное продолжение карьеры и цель для многих девелоперов.
Но есть много вопросов:
▪️какой уровень знаний должен быть, чтобы попасть туда?
▪️как проходит этап собеседования?
▪️как правильно «продать себя» компании и не прогадать с зарплатой?
▪️какие есть особенности в корпоративной культуре?
▪️как вообще найти подобную вакансию?
Вопросов много, а ответы в сети есть не на все. 🤷🏼♂️
Исправляем эту досадную оплошность и поговорим с сотрудниками этих корпораций, готовыми поделиться опытом.
Наш спикер — Инесса Бухонова, работающая Web-разработчиком в мадридском Tech Hub Amazon. До этого она 7 лет занималась разработкой под Android.
Увидимся 13 февраля в 18:00 по МСК на YoutTube-канале Android Live.
Ссылка на трансляцию тут, а у вас есть возможность задать свои вопросы тут.
5 158
Kotlin 1.4.30 и новый компилятор
#kotlin
Сегодня вышла новая версия языка Kotlin. Появилось достаточно много изменений: ▪️inline-интерфейсы;
▪️изменения в работе inline-классов;
▪️поддержка JVM records.
Полный список изменений можно найти тут.
Плюс к этому JVM IR backend компилятор перешёл в стадию beta 🎊.
О новом компиляторе говорят уже давно, и вообще он обещает быть интересным. Однако, для начала, надо убедиться, что он достаточно стабилен для public релиза. И это то, где вы можете помочь ему стать лучше 📈.
Сделать это достаточно просто:
1️⃣Включите новый компилятор его в своём конфиг файле и соберите проект хотя бы раз. В идеале включить его по умолчанию для вашего проекта, потому что не только сборка, но и дебаг имеют значение в этом тестировании.
2️⃣В случае если будут баги, то можно репортить их в Youtrack или публичный Slack Kotlin.
Давайте вместе доведём новый JVM IR backend до стабильного состояния!
5 158
Кстати, все, кто любит получать новости в YouTube-формате, у канала Android Broadcast вышла новая еженедельная рубрика с новостями.
Формат отличный, видео получаются ёмкими, краткими и по существу. С последним выпуском можно познакомиться тут 🤟.
5 158
Подробнее про Paging 3
#jetpack #room
Библиотека Paging 3 помогает отображать большие списки в
RecyclerView. Сейчас она в статусе alpha, но уже хорошо работает.
Отмечу явные плюсы:
▪️поддержка Flow и Coroutines. Ну и кроме этого есть поддержка RxJava и LiveData, если она вам нужна;
▪️полностью написана на Kotlin;
▪️поддержка разделителей, статусов загрузки, состояний ошибки;
▪️интеграция с Room. Добавлю, что интеграция работает также и при использовании RawQuery из Room. Эта интеграция заметно упрощает работу с Paging 3.
Начать работу с этим классным компонентом поможет эта статья, а разобраться с состояниями загрузки, обновлениями и разделителями для списка — эта.
Добавлю также один баг, который важно учитывать при использовании Paging 3. Эта библиотека работает некорректно, если поместить RecyclerView в ScrollView. Будьте внимательны при использовании!5 158
Вместе с тем как растет количество владельцев смартфонов, увеличивается спрос на специалистов, умеющих ими управлять и программировать. Android-разработчик — профессия будущего.
Если вы хотите ворваться в перспективную IT-сферу — приходите на Факультет Android-разработки образовательной экосистемы GeekBrains. Вместе с опытными учителями-практиками освоите современные технологии Android-разработки и научитесь делать свои приложения. Получите все нужные навыки, диплом, сертификат и поддержку при трудоустройстве. Кстати, год учебной практики в GeekBrains — это год реального рабочего опыта. Сможете претендовать на позиции не только junior, но и middle.
После успешного окончания обучения на факультете GeekBrains гарантирует трудоустройство в Mail.ru Group или в одну из компаний-партнеров.
Записывайтесь прямо сейчас
5 158
Kotlin Delegation
#kotlin
Kotlin delegates — одна из самых недооценённых фич языка.
Для многих разработчиков они кажутся сложными, а также многие не знают, для чего именно им нужно писать свои собственные делегаты. 🙄
Но на практике Kotlin delegates оказывается весьма полезной фичей, которая упрощает код и делает его более читаемым.
По сути, делегат передаёт обращения get()и set() к свойству: причём достаточно, чтобы у класса были методы getValue() и setValue() с определённой сигнатурой, без переопределения какого-то интерфейса.
Но одного определения будет недостаточно, поэтому вот пару полезных статей.
В этой автор рассказывает базовые принципы делегатов, а также дает пример для получения аргументов фрагмента, данных из SharedPreferences и получения данных из View.
В следующей рассказывается о других примерах применения этого инструмента.
Ну и не забывайте про документацию, где можно также вдохновиться полезными примерами. ✌️5 158
Жизнь разработчика в Германии
#интервью #экспаты
Друзья, наконец, вторая статья из рубрики, связанной с жизнью разработчиков в других странах готова.
Как всегда, она получилась объёмной и отвечает на все вопросы, которые вы задавали (и даже больше). Не скупитесь на лайки, потому что это мотивирует искать для вас авторов, а авторов — писать статьи. 🙃
Ссылка на статью тут, а вы обязательно пишите обратную связь в чат или мне в личные сообщения.
5 158
Результаты конкурса Podlodka Android Crew — 3 сезон
#конкурс
Итак, пришло время опубликовать результаты конкурса, который был описан тут.
В конкурсе принял участие 61 человек, при помощи генератора случайных чисел был выбран победитель — @max_ultra, с чем я его поздравляю! 🎊
Видео с выбором победителя тут. Обязательно участвуйте в новых конкурсах!
5 158
🔥Пока все только рассуждают про Flutter, научитесь делать серьезные кроcсплатформенные решения — на бесплатных вебинарах онлайн-курса «Flutter Mobile Developer:
📌Demo Day курса «Flutter Mobile Developer»: https://otus.pw/F5bk/
— Зададите любые вопросы по Flutter. Познакомитесь с преподавателем-практиком, который расскажет о себе, своём опыте, поделится карьерными инсайдами и лайфхаками по выгодной оплате курса.
📌«Пишем Flutter-приложение с использованием Redux»: https://otus.pw/LBZu/
— Узнаете, как использовать подход к управлению состоянием во Flutter-приложениях. Выясните главные особенности Redux. Напишете небольшое приложение и обсудите, как хорошо Redux масштабируется в перспективе.
👉🏻Регистрируйтесь сейчас — напомним в день вебинара!
5 158
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, но уже выглядит обещающе и улучшит процесс отладки фоновых задач.
Подробнее про изменения можно почитать тут.5 158
Проясним TransactionTooLargeException
#theory
Существует ряд ошибок, которые сложно поймать при разработке или тестировании.
TransactionTooLargeException относится к ним: он может не появиться каждый раз во время написания кода, но способен испортить жизнь пользователям во время использования приложения. Дополнительной проблемой является stack, который появляется после этого краша и не несёт информации о том, в каком месте приложения случился crash.
Есть отличная статья, где рассказывается о борьбе с этим исключением: почему оно возникает, как его найти и какие способы оптимизации кода есть, чтобы не поймать такое исключение.
Кстати, одной из главных оптимизаций является передача небольшого количества данных через Bundle, но уверен, что это вы и сами знаете 😉.5 158
Podlodka Android Crew 3 сезон
Ребята из Podlodka снова делают конференцию для Android-разработчиков. На этот раз нас ждут две недели, которые разделены на секции UI и алгоритмов.
На первой неделе рассмотрим UI: лайфхаки верстки, Constraint best practice, анимации, дизайн-системы, рендеринг UI на уровне системы. Выглядит всё довольно интересно, ведь с вёрсткой мы сталкиваемся на практике очень часто, но даже в этой области всегда есть куда расти.
На второй неделе поговорим про алгоритмы: как готовиться к алгоритмической секции собеседований, где алгоритмы используются в повседневной разработке, как прокачиваться в этой области.
Начало конференции — 1 февраля, а билет сейчас стоит 3900 рублей. Подробнее о программе конфереции можно почитать тут, там же можно приобрести билет.
Для подписчиков Android Live есть две крутых новости.
Во-первых, вы можете получить билет бесплатно, просто оставив свой ник в Telegram в форме до этой пятницы 29 января 18:00. Розыгрыш проведём в этот же день.
Во-вторых, есть промокод на скидку 300 рублей при покупке билета — ANDROID_LIVE_DC3.
Кстати, если вы выиграете билет в розыгрыше, но предварительно купите билет, то вам вернут за него деньги, так что нет смысла тянуть с покупкой до пятницы 😉.
5 158
А мы начинаем! Самое время подключиться и задать интересующие вас вопросы про удалёнку зарубежом.
5 158
Инструменты для Room
#tools #comments
Room — отличная библиотека для работы с базой данных, которую сейчас используют многие приложения. Мне кажется, что это один из самых удачных и удобных инструментов из Jetpack. Плюс к этому — это и рекомендованный инструмент от Google.
Но работу с Room можно улучшить, используя следующие библиотеки:
🔹Roomigrant — инструмент, который позволяет автоматически генерировать миграции для Room, используя compile-time генерацию кода. По сути, библиотека использует созданные Room схемы и делает миграцию на их основе. Не уверен, что библиотека сделает всю работу за вас, но уж точно поможет автоматизировать эту рутинную работу
🔹RoomExplorer — быстрый viewer базы данных вашего приложения в отдельной
Activity. Кроме этого, можно писать запросы для базы данных и видеть результат их работы. По сути, дублирует инструмент из Android Studio, но может быть полезным в случае работы с тестовым билдом.
А какие инструменты для улучшения работы с Room вы знаете?
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
