Android Live 🤖
رفتن به کانال در Telegram
Самые свежие новости, новинки и тренды Android от практикующего разработчика. Автор: @al_gorshkov, Чат: @android_live_chat Личный блог: @al_gorshkov_blog Рекламу не размещаю
نمایش بیشتر5 117
مشترکین
-124 ساعت
-37 روز
-2130 روز
آرشیو پست ها
5 115
Koin 3.2 Beta & Roadmap на 2022
#koin #kotlin
Тут не так давно опубликовали Roadmap для весьма крутой и популярной библиотеки для DI — Koin.
Во-первых, теперь выпуск новой версии будет происходить раз в полгода, примерно как это делает Kotlin. То есть в этом году будет прекращена поддержка 2.x версий, 3.1.x до конца первого квартала этого года, а 3.2 скоро станет основной. Подобные циклы релизов позволят более планомерно обновлять эту библиотеку у себя в проекте.
Во-вторых, у Koin появилась спонсорская поддержка от компании Kotzilla, что даёт возможность тратить больше времени на разработку и поддержку этого проекта.
Ну и обновления в версии 3.2: появилась фича, называемая constructor DSL , которая позволяет добавлять компоненты без исполозования функции get(), добавляя всё только по имени класса.
Многомодульным проектам пригодится фича с include для модулей, что даёт более гибкую настройку зависимостей.
Также добавилась поддержка новой Kotlin Native Memory Model.
Больше про изменения можно почитать тут.
5 115
В последнее время тяжело открывать ленту новостей и читать то, что там пишут.
Ещё тяжелее — следить за новостями из мира технологии, в частности Android-разработки: поймал себя на мысли, что уже пару дней вообще не могу нормально сфокусироваться на работе.
Я всегда был против любой войны, против любого насилия, тем более против применения всего этого к народу, который живёт рядом с тобой и имеет похожую культуру и менталитет.
И несмотря на те эмоции и чувства, которые у меня есть, я не буду писать на этом канале про политику, про войну, пытаясь составить конкуренцию большим новостным изданиям или превращая канал в политический.
Я бы хотел, чтобы этот канал остался тем местом, где каждый хоть как-то мог бы отвлечься от того, что происходит, и, возможно, таким образом я принесу вам больше пользы.
Если хотя бы одному из моих подписчиков станет лучше от написанных постов — значит всё было не зря.
Ребята из 🇺🇦 — держитесь 💙💛 .
5 115
Процесс сборки Android
#android
Довольно хороший набор статей, где автор делится о том, как происходит процесс сборки ваших приложений под Android: как устроена компиляция ресурсов приложения, исходного кода, оптимизация ресурсов и т.д.
Вдогонку — отличная статья, где автор говорит о том, что происходит в системе Android, когда пользователь нажимает на кнопку открытия приложения.
5 115
🔥Начинаем новый набор на продвинутый онлайн-курс «Android Developer. Professional» на Kotlin от OTUS. Курс предназначен для разработчиков с опытом от 1 года. Пройдите тест и узнайте, готовы ли вы к обучению!
👉🏻ПРОЙТИ ХАРДКОРНЫЙ ТЕСТ ПО ANDROID-РАЗРАБОТКЕ: https://otus.pw/CeBb/
#партнёрский
5 115
Kotlin Multiplatform — ATOM
#kmm
Тут ребята из Jetbrains сделали новый подскаст, где будут делиться последними новостями из мира KMM.
Обещают, что выпуски будут появляться раз в месяц, и уже доступен первый из них.
Обсуждают изменения в KMM за последний год, Compose, планы по выходу в бета и другие фичи, так что выглядит весьма здоровски.
5 115
Контракт для работы Android и Design команд
#design
Лайтовая статья, где автор делится советами для организации работы команды дизайнеров и разработчиков.
Многие советы довольно очевидные, но, возможно вы узнаете описанные проблемы и у себя в команде.
Например, это дублирование цветов, которое возникает из-за отсутствия единых названий в Figma, или некорректное использование шрифтов, из-за чего некоторые заголовки выпадают из единого стиля приложения.
Советы довольно простые в использовании, но экономят кучу времени. Ссылка на статью тут.
5 115
Ruler от Spotify
#tools
Тут ребята из Spotify поделились любопытной наработкой для определения размера текущего apk-файла и его детального анализа.
Вообще размер apk — довольно важная метрика для приложения, ведь далеко не везде есть дешёвый и стабильный Интернет, поэтому потенциальные пользователи могут запросто отказаться от загрузки приложения, если его размер будет слишком большим.
Сейчас самыми распространёнными решениями для анализа размера приложения являются встроенный анализатор в Android Studio и Diffuse. Однако, они могут давать довольно поверхностную информацию, если ваше приложение состоит из большого числа модулей, как это было в случае со Spotify.
Альтернатива — их собственное решение, которое называется Ruler. Выглядит всё довольно хорошо: на выходе получается html-страничка с детальной информацией о состоянии приложения, учитываются модули и разные бандлы для конкретной версии устройства.
5 115
26 и 27 февраля компания Space307 проводит Android Weekend Offer — это возможность всего за два дня получить предложение о работе и welcome-бонус в размере 300 000 рублей.
Space307 занимается разработкой торговой платформы для ритейл брокеров. Принять участие приглашают Android-разработчиков с опытом от трёх лет, все этапы отбора проходят в онлайне, работать можно удалённо из любой точки мира.
Помимо welcome-бонуса к офферу прилагаются: достойная зп, крутая команда, здоровая культура, много свободы и возможностей.
👉 Узнать подробности и подать заявку.
#партнёрский
5 115
JankStats Library
#library
Тут появилась любопытная библиотека от Google для анализа производительности приложений — JankStats.
Суть библиотеки заключается в получении информации о производительности рендеринга внутри приложения и получения информации о каких-то проблемах, если они есть.
Под капотом используется в том числе FrameMetrics API, которое как раз и даёт информацию о том, сколько времени нужно было для отрисовки конкретного кадра.
Выглядит довольно интересно, но пока тащить в свой проект рановато, так как эта только первая альфа. Подробнее о том, что делает либа можно почитать тут, а чуть больше документации тут.
5 115
Jira на Github Actions
#cicd
Я тут последние несколько дней активно вникаю в тему настройки CI на Github Actions, и был удивлён, что в Jira нельзя передвинуть несколько задач одновременно, если вы каким-то образом получили этот список из вашего PR.
Ребята из Attlassian молчат, а таски двигать хочется, поэтому делюсь с вами кастомным решением.
Если посмотреть, что делается под капотом этого Action, то по сути — это вызов API и совершение парочки запросов для того, чтобы передвигуть задачку. Свой Action писать не хотелось, поэтому решил написать свою gradle таску, которая сделает всё за нас.
1️⃣ Для начала, выполните запрос:
GET https://domain.atlassian.net/rest/api/3/issue/TASK-123/transitions,
чтобы получить идентификатор колонки, в которую вам надо перекинуть задачу. Нам надо поле id, а чтобы выполнить запрос — необходимо создать пароль в настройках и авторизоваться в Headers через Base Auth.
2️⃣ Создаём таску в gradle, а в неё передаём список задач и токен для авторизации будущих запросов, например так:
def taskNumbers = project.properties['items'].split(',').toUnique()
def jiraToken = project.properties['jira_token’].
Лучше передать сразу base64 от нашей базовой авторизации, а сам токен хранить в secrets на вашем CI.
3️⃣ Выполняем запрос:
for(taskNumber in taskNumbers) {
def body = "{ \"transition\": { \"id\": \"$transactionId\" } }"
def req = new URL("https://domain.atlassian.net/rest/api/3/issue/TASK-$taskNumber/transitions").openConnection()
req.setRequestMethod("POST")
req.setRequestProperty("Content-Type", "application/json; charset=UTF-8")
req.setRequestProperty("Authorization", "Basic $jiraToken")
req.setDoOutput(true)
req.getOutputStream().write(body.getBytes("UTF-8"))
println "Status code: ${req.getResponseCode()} for task $taskNumber"
}
Если вы всё сделали правильно, то вы получите 204 код и ваша задача перейдёт в нужную вам колонку. 😌
Дальше можно выполнить эту таску на CI:
./gradlew moveJiraTasks -Pitems=123,456 -Pjira_token=token
Полный текст таски можно взять тут.5 115
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов.
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/mobile.oneday
#партнёрский
5 115
Высокая производительность с Kotlin
#kotlin
Думаю, что не открою секрет, если скажу, что пользователям важно хорошо работающее приложение. Конечно, есть исключения в виде приложений, которые работают ужасно, но при этом имеют массу положительных отзывов: видимо, польза от них перевешивает их отвратительную работу и качество. 🤫
Но всё же, если говорить про нас, разработчиков, то мы должны стараться делать максимально качественные приложения и отслеживать необходимые метрики для того, чтобы понять, что с нашим приложением что-то не так.
Вот вам статья, где автор рассказывает о том, что в себя включает понятие «производительность», на какие вещи стоит обратить внимание нам, а также какие средства языка Kotlin использовать, чтобы писать более эффективный код.
Советы крутые, можно найти для себя полезные штуки 🔥.
5 115
Внимание! Внимание! Стартует новый сезон топовой конференции для Android-разработчиков Podlodka Android Crew.
В этот раз мы проведем неделю Jetpack Compose! Погружаемся уже 14 февраля!
Чем Podlodka Crew отличается от других онлайн-конференций? Мы экономим ваше время, поэтому вместили выступления и воркшопы от 12 Android-экспертов всего в 5 дней конференции. Наше главное правило — полное погружение в узкую тему! Мы не пытаемся объять необъятное, а концентрируемся на конкретной технологии, чтобы рассмотреть ее со всех сторон. Вместо унылой теории концентрируемся на практике — разбираем кейсы, проводим воркшопы. Вместе мы разберемся как использовать фреймворк Jetpack Compose в разных типах проектов, для разных целей и рассмотрим его работу со всех возможных ракурсов.
У нас будет много, нет, очень много практики и общения! В начале недели Jetpack Compose все участники получат домашние задания, а в конце Алексей Гладков и Сергей Ермолаев проведут их ревью.
Павел Стрельченко расскажет про опыт использования Jetpack Compose в HeadHunter, а Антон Шилов — в Badoo. Михаил Левченко — о том, как новый фреймворк изменил подход к архитектуре мобильных приложений. Алексей Гладков из Леруа Мерлен проведет воркшоп-сессию о Jetpack Compose и приготовит для вас реальный проект в режиме live. Андрей Шиков из Facebook рассмотрит работу декларативной магии Compose.
Не пропустите главное событие сезона для android-разработчиков!
Билеты и подробная информация — уже на сайте! Раскупаем билеты, занимаем места и полный вперед!
А по промокоду
ANDROIDLIVE22 будет скидка.😌
#партнёрский5 115
Understanding Gradle - The Fundamentals
#новичкам #gradle
Gradle частенько вызывает непонимание не только у новичков, но и у опытных разработчиков. Ведь сама структура файлов отличается от той, что мы привыкли видеть в проекте, да и язык программироания может отличаться, если говорить о groovy.
Вот вам годный курс о том, как использовать Gradle в проекте. И тут можно встретить всё, что нужно, начиная от именования файлов и ресурсов и заканчивая написанием собственных тасок и публикацией своих библиотек.
Отличный курс для новичков, не так часто встретишь что-то действительно хорошее в видео формате.
5 115
GraphQL в Android для начинающих
#android #новичкам
Интересная статья, которая рассказываем о применении GraphQL в Android с самого начала.
Автор делится своими размышлениями о том, что такое GraphQL, какие есть преимущества над обычными REST API, а также что выбрать для того, чтобы добавить эту либу в своё приложение.
Крайне рекомендую, ведь инструмент очень полезный.
5 115
Android Studio Bumblebee
#android
Тут прилетел новый финальный релиз Android Studio под названием Bumblebee 🐝.
Вот некоторые из новинок:
1️⃣ New Device Manager — добавили вкладку, где можно более удобным способом менеджерить устройства, подключенные к Android Studio.
2️⃣ ADB over Wi-Fi — упростили подключение и дебаг приложений при помощи Wi-Fi. Теперь достаточно просто отсканировать QR-код и девайс будет подключен к дебагу.
Штука удобная, правда не уверен, что часто будет использоваться в повседневной работе.
3️⃣ Новый Test Runner — добавили возможность запуска тестов для инструментальных тестов, который призван убрать проблему, когда они по-разному запускались на устройстве или CI.
4️⃣ Улучшения в профайлере — добавили новых метрик для профайлинга: Frame Lifecycle: Application, Wait for GPU, Composition и Frames on display. Ещё появился Junk Detection, который позволит лучше дебажить ситуации, когда есть просадки в производительности.
5️⃣ Улучшили Background Task Inspector, где теперь можно дебажить Jobs, Alarms и Wakelocks.
6️⃣ Добавили всякие штуки для дизайна — сделали превью векторных анимаций, поправили превью Compose.
Билд получился хороший, я обновился и вроде даже ничего не поломалось 🤞🏻, так что смело пробуйте. Больше деталей про обновление можно найти тут
5 115
Загрузка больших изображений в RecyclerView
#tips
Думаю, что не мне вам объяснять важность плавного скролла в приложении. Часто он может проседать в ситуациях, когда изображения в элементах списка — большие.
Автор статьи решил решить эту проблему при помощи кастомного
RecyclerView Scroll Listener, в котором описал метод для того, чтобы ставить на паузу и возобновлять загрузку только тех изображений, которые видны пользователю.
Звучит довольно логично и просто, хотя не обошлось без проблем: изображения ставятся в очередь на загрузку, и если их будет слишком много, а их объём будет слишком большой, то пользователь увидит этот момент, и опыт использования скролла будет не такой приятный.
В общем, если у вас нет возможности оптимизировать изображения, этот совет может вам помочь.5 115
GDG Minsk — Meetup
#meetup
Тут ребята из GDG Minsk делают онлайн Android Meetup. Вот темы и спикеры:
1️⃣ Анна Жаркова, Lead mobile developer, Kotlin GDE, Usetech — расскажет о том как использовать
WorkManager API для эффективной фоновой работы, как заменить Foreground Service Expedited Jobs и настроить миграцию с учетом нюансов. Актуально, ведь устройств на последнем Android всё больше.
2️⃣ Павел Стрельченко, Android-разработчик core-команды в hh.ru — расскажет о переходе кодовой базы hh на ViewBinding с помощью плагина для Android Studio.
Зарегистрироваться можно тут, а можно сразу сохранить ссылку на трансляцию.
Мероприятие пройдёт 31 января в 19:00 GMT+3, оно бесплатное и на русском языке. Готовьте ваши вопросы спикерам, ещё есть время 😉.5 115
Jetnews на каждом экране
#jetpack #compose
Интересная статья, которая будет полезна всем, кто работает с Compose и хочет адаптировать своё приложение под разные размеры экрана.
Автор делится несколькими пунктами, которые будут полезны. Например, есть функция для запоминания размера экрана, на основе которой можно строить будущий интерфейс приложения. Также интересно то, как лучше настроить навигацию в случае, если приложения разделяется на несколько колонок.
В целом, адаптация приложения под большие экраны — не выглядит чем-то сильно сложным и критичным. Но если у вас есть отличный опыт, то делитесь в комментариях.
5 115
Kermit and Crashlytics
#kmm
Полезная статья, которая рассказывает о том, как собирать краши на iOS и Android в KMM-приложениях при помощи Kermit.
На практике, сохранение стектрейса при падении приложения на iOS — не самая простая задача, если вы хотите также видеть место в Kotlin-коде, которое связано с падением. При помощи описанного логгера получается сохранить стектрейс, но только в качестве отдельного non-fatal краша.
Лучше, чем ничего: тем более, что каких-то других минусов в библиотеке не обнаружено.
