ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

Android Live 🤖

Android Live 🤖

前往频道在 Telegram

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

显示更多
5 114
订阅者
-124 小时
-37 天
-2130 天
帖子存档
19 и 20 января в 20:00 пройдет 2-дневный интенсив по мобильной разработке от OTUS «Flutter engine, анимация и ее оптимизация»
19 и 20 января в 20:00 пройдет 2-дневный интенсив по мобильной разработке от OTUS «Flutter engine, анимация и ее оптимизация». ✔️ Рассмотрим самые глубокие механизмы Flutter engine. ✔️ Научимся создавать сложные и плавные анимации как на мобильных платформах, так и на веб. ✔️ Научимся использовать инструменты профилирования для исключения «замерзания» интерфейса. ✔️ Обсудим тему использования WebGL в веб-приложениях на Flutter для создания трехмерных сцен. Интенсив бесплатный и позволяет протестировать обучение на онлайн-курсе «Flutter Mobile Developer» от OTUS. Программа подойдет тем, у кого уже есть опыт в программировании. Для записи на интенсив пройдите вступительный тест. 👉 Регистрация на 1-й день интенсива: https://otus.pw/OOlkM/ 👉 Регистрация на 2-й день интенсива: https://otus.pw/tm39/ #партнёрский

Немного оффтопа на канале. Я сейчас в небольшом и уютном турецком городке Каш, где очень много русскоговорящих ребят с IT. Вдруг кто-то из подписчиков тоже тут: буду рад встретиться и пообщаться за чашечкой вкусного кофе ☕️. Пишите в личку, если надумаете.

​​ShapeableImageView #android #view При разработке приложений, довольно часто нужно придавать различную форму ImageView. Самая распространённая — это круглая, которая зачастую используется для аватарок или в профилях. Путей решения много: например, кастомная View или же библиотеки, но я только недавно узнал, что есть нативное решение из компонентов Material. Все что нужно — это использовать com.google.android.material.imageview.ShapeableImageView и применить нужные атрибуты: это и форма, и обводка, и радиус для углов. В общем, крутая штука прям из коробки. Чуть больше деталей можно посмотреть тут.

А вы уже начали внедрять Compose в свои проекты?
Anonymous voting

​​Jetpack Compose в существующий проект #jetpack #compose Статья, где автор делится своим опытом внедрения Jetpack Compose в текущий проект. Для начала этого пути, он выбрал смену одной из главных кнопок в проекте и заменил её на Composable-функцию. Думаю, что статья будет полезна новичкам в Compose, которые только-только стоят на пути изучения этой крутой технологии и внедрения её в свои проекты.

​​Kotlin Multiplatform Wizard #kmm Тут обновился Kotlin Multiplatform Wizard, и теперь тут стало ещё больше плюшек: можно выбрать нужные для проекта таргеты, настроить основные библиотеки для проекта, package name и прочее. Очень удобная штука, поэтому если начинаете свои проекты на KMM, то самое время сохранить страничку в закладки. Кстати, авторы не против новых изменений от вас, так что если чего-то нет, то создавайте свои PR.🤘

2️⃣0️⃣2️⃣2️⃣ Быть может для многих 2021 год был не самым успешным и столько неопределённости в мире ещё остаётся 🤪 Но в мире Android произошло много крутых событий, о которых вам рассказывал канал @android_live. За этот год вышло несколько сотен постов, где каждый находил то, что полезно ему: будь то новичок или senior с годами опыта. 🤟🏻 Пусть следующий год принесёт ещё больше позитивных новостей и в разы меньше негатива. Друзья, всем крутых проектов, лучших людей рядом и крепчайшего здоровья 💫 С Новым годом от автора Android Live! 🎄

Реакции в Telegram #android_live О, теперь в Telegram поддерживаются реакции к сообщениям. Включил их и на канале: обновите приложение и можете пользоваться. Правда мне кажется, что сообщения более важная штука, ведь общение с аудиторией — это круто. Но реакцию поставить быстрее, может быть ими будут пользоваться активнее.😄 А как вам нововведение?

​​Советы по debug #android Отличная статья, где автор делится опытом дебага приложений в Android Studio и даёт кучу полезных советов для более быстрой работы. Для себя узнал парочку новых штук. 1️⃣ Disable until hitting the following breakpoint — позволяет включать нужный breakpoint только в том случае, когда выполнился определённый вами breakpoint. Очень удобно, если надо отдебажить код, который выполняется только при определённом условии. 2️⃣ Evaluate and log — крутой пункт, если нужно вместо остановки на нужном breakpoint просто вывести сообщение в лог без повторной сборки приложения. 3️⃣ Drop Frame — штука, которая позволяет повторно перейти к выбранному breakpoint, если вы его случайно пропустили. Этакий второй шанс, если что-то пошло не так. 4️⃣ Analyzing stack trace — можно анализировать stack trace прям в студии, что гораздо удобнее, чем смотреть его в блокноте или браузере. Полный список советов можно найти тут.

​​Проверка Firebase Push уведомлений #android Небольшой лайфхак о том, как можно удобно тестировать пуш-уведомления в вашем приложении. Наверное, самым распространённым способом для тестирования является консоль Firebase, где мы вводим пуш-токен нашего устройства и получаем нужное нам уведомление. Но мало кто знает о возможности тестирования уведомлений через запросы. Для этого надо сформировать следующий запрос: POST https://fcm.googleapis.com/fcm/send Параметры для Body описаны тут. И не забудьте в Headers добавить авторизацию: Content-Type -> application/json Authorization -> key=server_key. Сам ключ можно взять в настройках проекта Firebase. В целом, всё. Этот способ позволяет более гибко настраивать уведомления, что особенно полезно при работе с уведомлениями на сервере. 🤞🏻

​​Kotlin Flows in Android summary #android #flow Тут есть отличная статья, которая рассказывает об использовании Flow в Android. Некий краткий summary о том, что нужно знать с самого начала их использования. Тут и про то, как их создавать, какие типы есть, о различных типах Dispatcher, всевозможных операторах, исключениях и т.д. В общем, крайне рекомендую, можно сохранить в закладки.

🔥 Готовы ли вы к обучению в OTUS на продвинутом онлайн-курсе «Android Developer. Professional» с новогодней скидкой? Пройдит
🔥 Готовы ли вы к обучению в OTUS на продвинутом онлайн-курсе «Android Developer. Professional» с новогодней скидкой? Пройдите тест и узнайте сейчас! Курс проводится совместно с партнером - FUNCORP, известным разработчиком UGC-приложений, которые ежедневно развлекают миллионы пользователей по всему миру! 🤖 ПРОЙТИ ТЕСТ НА ЗНАНИЕ ANDROID-РАЗРАБОТКИ 📌 Хотите протестировать учебный процесс заранее? Регистрируйтесь на бесплатный урок курса: 👉 App Startup и инициализация приложения Вместе с Android Team Lead в компании FUNCORP, опытным Android-разработчиком, мы рассмотрим сценарии и инструменты инициализации Android приложения. ✅ Какие темы вы изучите? - Точки входа в приложение (Основные компоненты, холодный/горячий старт, пуши, диплинки) - Стартовый экран и splash screen API (Что такое сплеш и зачем он нужен) - Инициализация приложения (DI, сторонние фреймворки, аналитики и work manager) - Jetpack AppStartup и альтернативы #партнёрский

​​Android App Bundles. Как уменьшить размер приложения? #android Уже с августа 2021 года при загрузке новых приложений в Google Play необходимо использовать формать aab вместо стандартного apk. По сути, это крутая возможность уменьшить размер загружаемых файлов на устройство пользователя при установке приложения. Ведь теперь Google берёт на себя генерацию отдельных apk-файлов для каждого типа устройства в зависимости от его характеристик и подгружает только нужные этому устройству ресурсы и код. Чаще всего вам не очень сильно надо заморачиваться настройкой проекта, чтобы перейти на aab, но всё же есть некоторые нюансы, которые стоит проверить. Например, если у вас есть выбор языка внутри приложения, то теперь надо обработать динамическую подгрузку языков в приложение, да и настроить её в build.gradle. Чуть больше информации о том, что стоит проверить можно найти тут.

​​Jetpack Glance Alpha для виджетов #jetpack #compose Наверняка вы знаете о том, что в Android 12 обновили виджеты, сделав их более используемыми и красивыми. По статистике Google, 84% пользователей используют хотя бы один виджет. ☝🏼 Однако, на мой взгляд, если убрать из этой выборки часы и погоду, то останется совсем небольшой процент людей, которые устанавливают какие-то другие виджеты. Но ребята из Google пытаются улучшить эту статистику и анонсировали новый способ создания виджетов — Jetpack Glance. По сути, теперь мы можем писать виджеты в декларативном стиле с использованием Jetpack Compose. Пока что всё в aplpha, и обещают добавить ещё больше элементов для создания красивых виджетов. Чуть больше деталей тут. Звучит интересно, посмотрим, получится ли воскресить виджеты на Android. Я как-то пока не сильно в это верю: мне кажется, что виджеты не добавляют в приложение именно потому что ими почти не пользуются. А что думаете вы?

Skyeng приглашает Android-разработчиков Middle+ и Senior уровня попасть в свою команду за 2 дня Кому подойдёт: Опытным Androi
Skyeng приглашает Android-разработчиков Middle+ и Senior уровня попасть в свою команду за 2 дня Кому подойдёт: Опытным Android-разработчикам уровня Senior и Middle+, которые не фанатеют от монотонных собеседований, общения с эйчарами и утомительных тестовых. Как проходит: До 28 декабря оставляете заявку, с вами связываются и назначают дату двух собеседований по 1.5 часа: одно с техлидом, второе с руководителем команды. После даём обратную связь, даже если вы не подойдете команде. Будет очень круто заранее увидеть пример вашего кода, например репозиторий на GitHub или в другом формате Узнать подробнее и откликнуться 👈🏻 #партнёрский

​​Slot API паттерн в Compose UI #compose Интересная статья от Chris Banes, где рассказывается о том, что такое паттерн Slot API и как его использовать внутри Compose. Штука весьма полезная, особенно если вы хотите писать свои собственные composable-функции и корректно с ними взаимодействать. Так что пример, который описывается в статье будет весьма кстати.

Бесплатный онлайн-митап для мобильных разработчиков от Luxoft и JUG Ru Group 16 декабря, 18:00 (Мск, GMT+3) Программа митапа:
Бесплатный онлайн-митап для мобильных разработчиков от Luxoft и JUG Ru Group 16 декабря, 18:00 (Мск, GMT+3) Программа митапа: 📌 Дмитрий Мовчан — «Гайд по выживанию в мире UI тестов» Дмитрий поможет понять, какой тип UI-тестирования вам нужен, поговорит про типичные проблемы и пройдется по инструментам, которые помогут с ними справиться. 📌 Михаил Зотьев — «Как проходит развитие библиотеки Elementary» Elementary — библиотека, позволяющая писать приложения на Flutter в стиле паттерна MVVM. Из доклада Михаила вы узнаете про основные концепты, преимущества и недостатки библиотеки. 📌 Евгений Сатуров — «Стелем мягкую соломку на жесткий Flutter» Евгений поделится с сообществом базой лучших практик разработки Flutter-проектов. В основе его доклада — опыт, накопленный командой Surf почти за 3 года работы с Flutter. А также вас ждут дискуссии после каждого доклада и розыгрыши брендированного мерча за лучший вопрос. Участие бесплатное, нужно только зарегистрироваться! #партнёрский

​​Делаем свою библиотеку под KMM #kmm Хороший доклад с прошедшего droidcon, где автор Kodein делится опытом для создания своей библиотеки под KMM. На самом деле, сейчас есть потребность в библиотеках для KMM. И хотя их число растёт, но всё же, есть огромный пласт всяких штук, которые все еще не покрыты созданными библиотеками. Возможно, этот доклад будет хорошим стартом для того, чтобы начать писать свою библиотеку и заработать кучу звёзд в GitHub. 🤞

Кевин Калкин теперь в Телеграме! Тинькофф воссоздал персонажа нашего детства в виде телеграм-бота — Кевин болтает о жизни, шу
Кевин Калкин теперь в Телеграме! Тинькофф воссоздал персонажа нашего детства в виде телеграм-бота — Кевин болтает о жизни, шутит и даже записывает аудиосообщения. Это все часть новогоднего текстового квеста Code Alone для программистов 🧑‍💻👩‍💻 По сюжету маленький Кевин застрял один дома и обороняет свой дом от бандитов. Из связи у малыша — только Телеграм с одним единственным контактом — вашим. Кевин ежедневно присылает программистские задачки, чтобы устраивать ловушки для бандитов, используя умный дом. Зачем участвовать? 1. Во-первых, эндорфины от решения задачек. 2. Во-вторых, вернуться в атмосферу одной из главных историй нашего детства. 3. И, конечно, подарки 🎁 Тем, кто решает задачки быстрее и лучших других, прилетают призы 🎄 В общем, строго рекомендовано для программистов, которым не хватает новогоднего настроения Чтобы начать играть, просто запускайте бота: https://t.me/kevin_codealone_bot #партнёрский

​​Уменьшение размера apk-файла #android Тема уменьшения размера apk-файла очень важна для любого приложения, несмотря на то, что Интернет дешевеет, а памяти становится больше (хоть и не всегда). Есть статистика, которая говорит о том, что около 70% пользователей оценивает размер приложения перед его загрузкой. Поэтому, если совсем не задумываться об этом, то можно получить ситуацию, когда ваше приложение не будет загружено только лишь из-за этой характеристики. Давайте сделаем небольшой чек-лист, где опишем, что надо сделать, чтобы apk-файл занимал минимальное количество памяти. 1️⃣ Запускаем Analyze APK tool, которая встроена в Android Studio. Найти её можно в меню Analyze -> Analyze APK… После выбора файла, мы получим описание того, что занимает большую часть памяти. 2️⃣ Удаляем неиспользуемые библиотеки. Первое, довольно затратное по времени дело — это анализ тех библиотек, которые есть у вас в проекте, но не используются. Ещё обратите внимание на большие библиотеки из которых вы используете всего пару компонентов. Быть может, их можно вынести отдельно в ваш код и удалить лишнюю зависимость. Приятный бонус — у вас просто станет меньше зависимостей, а меньше кода = меньше багов 😀 3️⃣ Включаем Proguard и R8. У этих инструментов есть возможность удаления неиспользуемого кода в приложении, а также обфускация. И то, и другое — крутая фича, которую мы получим, если включим minifyEnabled true в build.gradle. Обязательно настройте правила и проверьте, чтобы итоговый apk корректно собирался и не падал. 4️⃣ Удаляем неиспользуемые ресурсы. Очищаем неиспользуемые строки и ресурсы при помощи Refactor -> Remove unused resources. 5️⃣ Используем vector drawable и webp. При использовании изображений отдавайте предпочтение этим форматам вместо png или jpeg. Кстати, не стоит делать копии векторных ресурсов, если они отличаются только цветом, ведь цвет легко поменять при помощи свойства tint. 6️⃣ Убираем неиспользуемые языки. Вы удивитесь, насколько много лишних строк скрывается в приложении от библиотек. Если ваше приложение переведено на один или два языка, то есть смысл оставить только их и выкинуть неиспользуемое. Сделать это можно при помощи resConfigs "en", который прописываем также в build.gradle. 7️⃣ Включаем Dynamic Feature. Если в вашем приложении есть функциональность, которая не нужна всем пользователям или же её можно загрузить позже, то есть смысл динамически подгружать её во время использования приложения. Уверен, что всегда есть, куда расти и сделать приложение меньше. Поделитесь своими рекомендациями, если их наберётся больше, то сделаем вторую часть, сделав наши приложения максимально оптимизированными.✌️