uk
Feedback
Android Live 🤖

Android Live 🤖

Відкрити в Telegram

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

Показати більше
5 158
Підписники
-224 години
+17 днів
-1030 день
Архів дописів
​​Google Fast Pair Service #tools #library Продолжаем знакомство с довольно редкими, но интересными API в Android. Вероятно, большинство из нас не будет использовать данный API, но лично мне было интересно, как подобная функциональность работает под капотом. Ну и да, если вдруг вы заняты разработкой своего Bluetooth устройства, то этот API для вас. Fast Pair Service — это сервис, который позволяет уменьшить количество действий, которые надо совершить пользователю, чтобы присоединиться к Bluetooth устройству. Со стороны разработчиков ничего делать не нужно: важно зарегистрировать устройство на специальном ресурсе, написать название устройства и загрузить фото, а дальше при включении BLE с желанием присоединить девайс к смартфону, пользователь увидит кнопку Connect с фотографией вашего устройства. Выглядит круто, правда мне пока не попадались устройства, которые умеют так сопрягаться. В статье можно детальнее узнать требования, которые предъявляются к устройству, да и в целом, более подробно ознакомиться с технологией.

​​Архитектура для Compose: MVVM или MVI? #compose #architecture Сегодня Compose набирает всё больше оборотов и большее число разработчиков выбирают его для использования в своих проектах. Однако, важным моментом является выбор корректной архитектуры для работы с Compose. Насколько хорошо работает наиболее распространённый сейчас MVVM? Стоит ли разбираться с MVI или это усложнение логики? Автор статьи решил выбрать идеальную архитектуру для работы с Compose, и рассказал о своём опыте. У него получилась MVVM с некоторыми фичами от MVI: State, Event и Effect. Ну а для взаимодействия между слоями тут используется Flow. Получилось довольно неплохо, с проектом можно ознакомиться тут. Автор подчёркивает, что о подобном подходе стоит задуматься, если у вас намечается сложное приложение с большим количеством логики. Для простых же достаточно стандартного MVVM подхода.

Тинькофф приглашает Android-разработчиков на One Day Offer! Набираем разработчиков в мобильный банк! У нас сильная команда, и мы ищем таких же коллег: с хорошим знанием языка, платформы, умением писать качественный код и опытом от двух лет — делать приложение Тинькофф для 10 миллионов клиентов каждый месяц. В течение всего одного дня вы общаетесь с командой и получаете оффер в конце дня, если общение пройдет хорошо! Отправляйте заявку на участие в Тинькофф One Day Offer до 20 июля. В течение трех дней мы дадим обратную связь, а за два дня до мероприятия пришлем всю информацию об интервью.

​​AppCode и KMM-плагин — как работает внутри? #youtube #android_live Совсем недавно на канале был анонс того, что в AppCode появился плагин для разработки под KMM. Подобное решение выглядит классно, ведь можно использовать одну IDE для того, чтобы писать приложения под KMM сразу и на iOS и на Android. Но всё ли так хорошо? Насколько стабильно всё работает, и можно ли использовать этот плагин в проде? А какие планы на будущее и что нас ожидает? Ответы на эти и многие другие вопросы мы получим на YouTube-канале AndroidLive.😉 А поговорим обо всём этом с Айдаром Мухаметзяновымразработчиком из JetBrains, который трудится над AppCode и KMM-плагином для него. До этого Айдар 7 лет разрабатывал iOS приложения в разных компаниях. Трансляция пройдёт 21 июля в 18:30 по МСК. Мы обсудим то как плагин работает внутри, а потом вместе сделаем небольшое приложение, которое покажет все возможности IDE. Ссылка на трансляцию тут. Уверен, что будет интересно 😎 А свои вопросы вы уже можете задать уже сейчас, тут. До встречи на стриме! 😉

​​Mock API для разработчиков #tools Думаю, что всем знакома ситуация, когда нам нужно закончить фичу, но backend ещё не готов. В этом случае каждый выкручивается как может: делает заглушки в виде JSON на клиенте, заполняет классы вручную, или оставляет список пустым, ожидая завершения работ на сервере. Но, вероятно, самым удобным способ является использование Mock API. По сути, это обычный сервер, который просто возвращает вам предварительно заполненный JSON-файл. Если у вас есть чёткое понимание ответа от сервера, то всё что вам нужно сделать при завершении работ на сервере — это переключить сервер. Вот пара сервисов для организации Mock API — Mockable.io и Postman. В целом, мне больше нравится второй вариант, видимо по причине того, что я использую это средство для совершения запросов к реальному серверу. Тут описано то, как настраивать сервер.

GDG Wear OS meetup #meetup #gdg Ребята из GDG Minsk проводят митап, связанный с Wear OS, где расскажут: 🔹что из себя представляет текущее состояние Android Wear; 🔹какие форматы могут перекочевать в новую платформу; 🔹кому и ради чего стоит разрабатывать своё решение для wearable устройств. Звучит интересно, ведь на последнем I/O мы видели то, сколько внимания Google уделили Wear OS. Спикеры — Тимур Ахметгареев, и Виктор Раздьяконов, которые расскажут о всех тонкостях работы с Wear OS на своём опыте. Мероприятие пройдёт 20 июля в 19:00 по МСК. Тут можно бесплатно зарегистрироваться, а тут можно задать свои вопросы спикеру.

​​Recycler View Series #recyclerview #новичкам Мне тут случайно в рекомендациях попался ряд статей про RecyclerView, где рассказываются основы этого замечательного элемента, и о том, как его правильно применять. В первой статье рассматривается этот компонент, его принцип работы, ну и то как добавить самый простой список в проект. Отлично показано, как работают методы onCreateViewHolder(), onBindViewHolder(). Во второй рассказываются уже более сложные вещи. Описывается, почему обновление всего списка — это плохо, для чего нужен DiffUtil, как он работает и что за зверь такой — ListAdapter. Третья — очень короткая статья, которая рассказывает про имплементацию клика на элемент, а последняя в этой серии — про создание Header при помощи ConcatAdapter. Так что если вы новичок — эта серия поможет разобраться во всей базе, связанной с RecyclerView. 🤟

Windows 11, 10, etc - авторский канал с тайным знанием о флагманской ОС Microsoft В комплекте срыв покровов и доставка пруфов
Windows 11, 10, etc - авторский канал с тайным знанием о флагманской ОС Microsoft В комплекте срыв покровов и доставка пруфов.

​​Оптимизация RecyclerView при помощи префетчинга #recyclerview Даже стандартная реализация RecyclerView работает довольно стабильно и хорошо. ✌️ Однако, если ваш список состоит из нескольких типов элементов или эти элементы сложные, самое время задуматься о дополнительных оптимизациях. Самыми быстрыми и простыми в добавлении будут setHasFixedSize, DiffUtil, создание плоских View. Автор статьи решил пойти дальше и добавить префетчинг View вне основного потока. Для этого он использовал RecyclerView.RecycledViewPool, который и выполнял нужную работу. Лично у меня ещё не было шанса оценить скорость прироста при использовании данного подхода, так как в текущих проектах нет RecyclerView с большим числом разных viewType и нет экранов, где есть первоначальные загрузки списков. Но подход выглядит круто, и если вы хотите ещё больше оптимизировать ваши списки, то воспользуйтесь. Кстати, есть уже готовая библиотека с реализацией этого подхода на Kotlin Coroutines, RxJava2, RxJava3 и Executor.

Фриланс с каждым днем все больше набирает популярность среди разработчиков, ведь работать из дома куда приятнее, чем в душном
Фриланс с каждым днем все больше набирает популярность среди разработчиков, ведь работать из дома куда приятнее, чем в душном офисе. Фриланс платформа CashForApp предлагает брать заказы на разработку мобильных приложений. Множество проектов разной сложности, которые подойдут как опытным, так и начинающим мобильным разработчикам. Достойная оплата за работу! Ссылка на фриланс платформу: https://bit.ly/2SLvL5q P.S. Для отображения полного списка активных задач необходимо зарегистрироваться. Ждем вас на нашей платформе!:) #партнёрский

​​Material Transitions #api #fragment Анимация редко меняет главную функциональность приложения. Но нельзя отрицать, что она имеет большое значение для пользователя. Когда в приложении есть анимация, все выглядит плавнее и пользователю легче понять, как элементы экрана сочетаются друг с другом. Одним из типов анимаций является Transitions: это анимации перемещения с одного экрана на другой. Мы можем анимировать или весь экран целиком, или только некоторые View этого экрана. Попалась статья, где автор рассказывает о добавлении анимаций в приложение, где не было никаких анимаций перехода и о результатах, которые он получил.

​​Nearby Connections API #theory #api Сегодня расскажу вам о довольно редком, но, на мой взгляд крутом и недооценённом API — Nearby Connections API. Оно позволяет устройствам связываться друг с другом даже при отсутствии Интернета. Для чего нужно? Это API даёт возможность делиться какими-то файлами, сообщениями и другими данными в своём приложении без сети. На сайте с документацией приведены такие примеры: 🔹трансфер файлов оффлайн; 🔹использование девайса в качестве контроллера в играх; 🔹игры с оффлайн мультиплеером; 🔹доски для совместной работы. Как работает? API использует Bluetooth и другие технологии, например WiFi, которые обеспечивают peer-to-peer соединение на близком расстоянии (в пределах 100 метров). Безусловно, есть лимиты на количество соединений: Bluetooth поддерживает около 4 соединений одновременно, WiFi ограничивает примерно от 10 до 100 подключений одновременно в зависимости от того, доступны ли маршрутизаторы, которые можно использовать как «мост». Помимо этого API существует альтернатива — Nearby Messages API, правда ей для работы нужен Интернет и размер передаваемых данных довольно мал. С другой стороны, Nearby Connections API может работать только на Android, а прыдущий аналог поддерживает ещё и iOS. На мой взгляд, это весьма крутая штука, которую можно использовать для интересных проектов, где важна коммуникация между пользователями, но Интернет-соединение не самое надёжное. Если вы добавляли подобную фичу в свой проект, то обязательно пишите в комментариях. Больше деталей о том, как добавить в проект это API можно найти тут.

5 июля старт Podlodka Soft Skills Crew – новой конференции про софт-скиллы для инженеров! 🟢 Перед конференций мы проведём несколько открытых вводных сессий о том, зачем нужны софт-скиллы. Интенсив продлится две недели. Встречаемся дважды в день: утром и вечером Вас ждут: крутые спикеры, сессии в лайве, ламповое общение и обмен кейсами в слаке, записи (для тех, кто не успевает на лайв). 🟢 Тема первой недели: Коммуникации Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них. 🟢 Тема второй недели: Problem solving Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели. Подробности нашего свежего формата уже на сайте!🔥

Пятничный опрос на провокационную тему: Какая у вас зарплата? (в ₽ на руки) Можно честно, опрос анонимный 😉
Anonymous voting

​​Развитие механизмов безопасности Android #security В современной разработке безопасности отводится довольно важная часть. Для нас, разработчиков под Android, с каждым обновлением ОС приходится исправлять своё приложение в зависимости от нововведений. Если вам интересно, как изменилась безопасность системы Android с самых первых версий, то вот отличная статья. Можно наблюдать, как эволюционировала безопасность Android от версии к версии и как это повлияло на дальнейшее развитие системы. Так что если вы увлекаетесь безопасностью, да и вообще людите историю операционных систем — welcome. 😎

​​Android-приложения на Windows 11 Тут недавно вышла новая операционная система от Microsoft — Windows 11. Новость совсем не про Android-разработку, однако добавился интересный момент: теперь на ней можно будет запускать Android-приложения, скачанные с Amazon’s Appstore через Microsoft Store. Microsoft заявляет, что эти приложения будут работать так же, как и остальные. Вроде как, это ответ на действия Apple с их новым процессором M1. Мне кажется, что новость довольно любопытная, и очень интересно, будет ли возможность запустить приложения для debug во время разработки или же нет? Чуть больше деталей тут.

​​Вышел Kotlin 1.5.20 #kotlin Тут вчера прилетело новое обновление Kotlin. Как всегда, детали можно почитать в блоге, а здесь опишу кратко изменения: 🔸для получения максимальной пользы от последних JVM-фич, Kotlin расширяет использование динамических вызовов (invokedynamic). В этой версии добавилась конкатенация строк через invokedynamic, или если попроще, то теперь используется StringConcatFactory.makeConcatWithConstants() вместо StringBuilder.append(). Подробнее тут. 🔸добавлена экспериментальная поддержка Java’s Lombok-generated методов. Тут можно почитать, что поддерживается на данный момент. 🔸также появилась экспериментальная поддержка плагина JSpecify, который включает в себя набор аннотаций для проверки на null в Java. По идее, плагин даёт возможность лучше управлять nullability, если вам важна совместимость с Java. 🔸компилятор Kotlin/Native теперь поддерживает экспорт KDoc из Kotlin-кода в Objective-C. Фича даёт возможность делать комментарии видимыми для тех, кто использует написанный вами код, что весьма удобно. 🔸исправлена функция Array.copyInto() в Kotlin/Native, которая теперь работает гораздо быстрее. 🔸добавлено руководство для миграции на новый JS backend. 🔸параллельное выполнение задач в gradle теперь контролируется Gradle parallel execution mechanism. Аннотация kotlin.parallel.tasks.in.project стала deprecated. 🔸экспериментальная фича для настройки кэширования, которая позволит увеличить скорость запуска kapt. 🔸пара мелких изменений в стандартной библиотеке, связанной с функциями isLowerCase(), isUpperCase() и digitToInt().

​​KMM для AppCode #kmm Сегодня вышла отличная новость: появился плагин для App Code, который позволяет писать Swift и Kotlin код внутри одной IDE. 🔥 Это очень круто, так как переключение между IDE — не самая удобная штука при написании таких проектов. В будущем ребята обещают миграцию текущих .xcodeproj и .xcworkspace проектов на Gradle DSL, чтобы сделать возможным лучше соединить текущие проекты на Xcode с KMM и Android. Звучит очень круто, мне такая кроссплатформа нравится. 💪

​​Стрим с обзором резюме №1 #youtube #android_live Давно на YouTube-канале Android Live не было стримов. Исправляюсь и пробую новый формат — обзор резюме подписчиков. Было несколько запросов об этой рубрике, и вот этот формат появляется на канале. Если вам зайдёт — сделаем его регулярным. Мы будем делать обзор резюме не просто со стороны красоты оформления и правильности, а сделаем это глазами HR-специалистов, ведь они первые, кто видят его и принимают решение о кандидате по тому, что там написано. Наш гость — Евгений Васильев, HR-специалист с 5-летним опытом работы, на данный момент работает в Спортмастер, а до этого 2,5 года работал в системе Сбербанка. Опыт работы связан с подбором персонала: Java, мобильные разработчики, devops/sre, администраторы баз данных, администраторы it-инфраструктуры, разработчики Oracle pl/sql и многие другие. Вы можете отправить заявку на обзор своего резюме в эту форму. Несколько резюме из списка будут выбраны рандомно, при желании выбранные люди смогут подключиться к стриму и задать свои вопросы напрямую. Если вы хотите попасть на обзор без рандома, то можете сделать это поддержав канал на Boosty. Спасибо всем, кто это делает. 🤟 Стрим состоится 29 июня в 18:30 по МСК на канале Android Live. Подписывайтесь, чтобы не пропустить что-то интересное.😉

​​Миграция с Groovy на Kotlin DSL #kotlin #gradle Для многих разработчиков написание каких-то изменений в build.gradle — это боль. Во многом из-за языка groovy и его работы в Android Studio, который частенько отталкивает разработчиков от изменений. Но решение есть, и это — Kotlin DSL, который позволяет настраивать gradle на всеми нами любимом Kotlin. Несколько плюсов от этого: 🔹лучшая читаемость кода; 🔹большие возможности для написания скриптов, так как разработчики лучше знакомы с Kotlin; 🔹навигация по коду и подсказки; 🔹проверка ошибок во время компиляции; …и другие плюсы, но говорят, что может работать медленнее на некоторых операциях, типа clean или изменениях в buildSrc. 🤨 Хорошая статья, которая описывает миграцию с groovy на Kotlin DSL тут. Ну а лично я склоняюсь к тому, чтобы перейти к этому решению в своих проектах, так как удобств гораздо больше.