Android Live 🤖
رفتن به کانال در Telegram
Самые свежие новости, новинки и тренды Android от практикующего разработчика. Автор: @al_gorshkov, Чат: @android_live_chat Личный блог: @al_gorshkov_blog Рекламу не размещаю
نمایش بیشتر5 158
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+57 روز
-1030 روز
آرشیو پست ها
5 158
Kotlin: парочку best practices
#kotlin
Подобных статей бывает довольно много, но описанные в этой советы могут быть полезны тем, кто совсем недавно начал программировать на Android. Ну и можно проверить себя, вдруг описанные советы не применялись на практике.
Описывать всё, что есть долго, поэтому вот вам ссылка на статью, где много примеров кода и отличных советов.
5 158
«Лаборатория Касперского» ищет Android Developer.
Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и приятные бонусы: бесплатное обучение, расширенный ДМС со стоматологией, спортзалы прямо в офисе, а еще — программа релокации для кандидатов из регионов.
Если вы:
- имеете опыт разработки на Java/Kotlin от 2 лет;
- обладаете опытом распределенной работы (на базе git);
- и хотите развиваться в сторону мобильной разработки под Android,
то переходите по ссылке, чтобы ознакомиться с подробной информацией о направлении и присоединиться к команде лучших экспертов.
#партнёрский
5 158
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 158
В последнее время тяжело открывать ленту новостей и читать то, что там пишут.
Ещё тяжелее — следить за новостями из мира технологии, в частности Android-разработки: поймал себя на мысли, что уже пару дней вообще не могу нормально сфокусироваться на работе.
Я всегда был против любой войны, против любого насилия, тем более против применения всего этого к народу, который живёт рядом с тобой и имеет похожую культуру и менталитет.
И несмотря на те эмоции и чувства, которые у меня есть, я не буду писать на этом канале про политику, про войну, пытаясь составить конкуренцию большим новостным изданиям или превращая канал в политический.
Я бы хотел, чтобы этот канал остался тем местом, где каждый хоть как-то мог бы отвлечься от того, что происходит, и, возможно, таким образом я принесу вам больше пользы.
Если хотя бы одному из моих подписчиков станет лучше от написанных постов — значит всё было не зря.
Ребята из 🇺🇦 — держитесь 💙💛 .
5 158
Процесс сборки Android
#android
Довольно хороший набор статей, где автор делится о том, как происходит процесс сборки ваших приложений под Android: как устроена компиляция ресурсов приложения, исходного кода, оптимизация ресурсов и т.д.
Вдогонку — отличная статья, где автор говорит о том, что происходит в системе Android, когда пользователь нажимает на кнопку открытия приложения.
5 158
🔥Начинаем новый набор на продвинутый онлайн-курс «Android Developer. Professional» на Kotlin от OTUS. Курс предназначен для разработчиков с опытом от 1 года. Пройдите тест и узнайте, готовы ли вы к обучению!
👉🏻ПРОЙТИ ХАРДКОРНЫЙ ТЕСТ ПО ANDROID-РАЗРАБОТКЕ: https://otus.pw/CeBb/
#партнёрский
5 158
Kotlin Multiplatform — ATOM
#kmm
Тут ребята из Jetbrains сделали новый подскаст, где будут делиться последними новостями из мира KMM.
Обещают, что выпуски будут появляться раз в месяц, и уже доступен первый из них.
Обсуждают изменения в KMM за последний год, Compose, планы по выходу в бета и другие фичи, так что выглядит весьма здоровски.
5 158
Контракт для работы Android и Design команд
#design
Лайтовая статья, где автор делится советами для организации работы команды дизайнеров и разработчиков.
Многие советы довольно очевидные, но, возможно вы узнаете описанные проблемы и у себя в команде.
Например, это дублирование цветов, которое возникает из-за отсутствия единых названий в Figma, или некорректное использование шрифтов, из-за чего некоторые заголовки выпадают из единого стиля приложения.
Советы довольно простые в использовании, но экономят кучу времени. Ссылка на статью тут.
5 158
Ruler от Spotify
#tools
Тут ребята из Spotify поделились любопытной наработкой для определения размера текущего apk-файла и его детального анализа.
Вообще размер apk — довольно важная метрика для приложения, ведь далеко не везде есть дешёвый и стабильный Интернет, поэтому потенциальные пользователи могут запросто отказаться от загрузки приложения, если его размер будет слишком большим.
Сейчас самыми распространёнными решениями для анализа размера приложения являются встроенный анализатор в Android Studio и Diffuse. Однако, они могут давать довольно поверхностную информацию, если ваше приложение состоит из большого числа модулей, как это было в случае со Spotify.
Альтернатива — их собственное решение, которое называется Ruler. Выглядит всё довольно хорошо: на выходе получается html-страничка с детальной информацией о состоянии приложения, учитываются модули и разные бандлы для конкретной версии устройства.
5 158
26 и 27 февраля компания Space307 проводит Android Weekend Offer — это возможность всего за два дня получить предложение о работе и welcome-бонус в размере 300 000 рублей.
Space307 занимается разработкой торговой платформы для ритейл брокеров. Принять участие приглашают Android-разработчиков с опытом от трёх лет, все этапы отбора проходят в онлайне, работать можно удалённо из любой точки мира.
Помимо welcome-бонуса к офферу прилагаются: достойная зп, крутая команда, здоровая культура, много свободы и возможностей.
👉 Узнать подробности и подать заявку.
#партнёрский
5 158
JankStats Library
#library
Тут появилась любопытная библиотека от Google для анализа производительности приложений — JankStats.
Суть библиотеки заключается в получении информации о производительности рендеринга внутри приложения и получения информации о каких-то проблемах, если они есть.
Под капотом используется в том числе FrameMetrics API, которое как раз и даёт информацию о том, сколько времени нужно было для отрисовки конкретного кадра.
Выглядит довольно интересно, но пока тащить в свой проект рановато, так как эта только первая альфа. Подробнее о том, что делает либа можно почитать тут, а чуть больше документации тут.
5 158
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 158
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов.
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/mobile.oneday
#партнёрский
5 158
Высокая производительность с Kotlin
#kotlin
Думаю, что не открою секрет, если скажу, что пользователям важно хорошо работающее приложение. Конечно, есть исключения в виде приложений, которые работают ужасно, но при этом имеют массу положительных отзывов: видимо, польза от них перевешивает их отвратительную работу и качество. 🤫
Но всё же, если говорить про нас, разработчиков, то мы должны стараться делать максимально качественные приложения и отслеживать необходимые метрики для того, чтобы понять, что с нашим приложением что-то не так.
Вот вам статья, где автор рассказывает о том, что в себя включает понятие «производительность», на какие вещи стоит обратить внимание нам, а также какие средства языка Kotlin использовать, чтобы писать более эффективный код.
Советы крутые, можно найти для себя полезные штуки 🔥.
5 158
Внимание! Внимание! Стартует новый сезон топовой конференции для 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 158
Understanding Gradle - The Fundamentals
#новичкам #gradle
Gradle частенько вызывает непонимание не только у новичков, но и у опытных разработчиков. Ведь сама структура файлов отличается от той, что мы привыкли видеть в проекте, да и язык программироания может отличаться, если говорить о groovy.
Вот вам годный курс о том, как использовать Gradle в проекте. И тут можно встретить всё, что нужно, начиная от именования файлов и ресурсов и заканчивая написанием собственных тасок и публикацией своих библиотек.
Отличный курс для новичков, не так часто встретишь что-то действительно хорошее в видео формате.
5 158
GraphQL в Android для начинающих
#android #новичкам
Интересная статья, которая рассказываем о применении GraphQL в Android с самого начала.
Автор делится своими размышлениями о том, что такое GraphQL, какие есть преимущества над обычными REST API, а также что выбрать для того, чтобы добавить эту либу в своё приложение.
Крайне рекомендую, ведь инструмент очень полезный.
5 158
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 158
Загрузка больших изображений в RecyclerView
#tips
Думаю, что не мне вам объяснять важность плавного скролла в приложении. Часто он может проседать в ситуациях, когда изображения в элементах списка — большие.
Автор статьи решил решить эту проблему при помощи кастомного
RecyclerView Scroll Listener, в котором описал метод для того, чтобы ставить на паузу и возобновлять загрузку только тех изображений, которые видны пользователю.
Звучит довольно логично и просто, хотя не обошлось без проблем: изображения ставятся в очередь на загрузку, и если их будет слишком много, а их объём будет слишком большой, то пользователь увидит этот момент, и опыт использования скролла будет не такой приятный.
В общем, если у вас нет возможности оптимизировать изображения, этот совет может вам помочь.5 158
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, оно бесплатное и на русском языке. Готовьте ваши вопросы спикерам, ещё есть время 😉.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
