fa
Feedback
Android Live 🤖

Android Live 🤖

رفتن به کانال در Telegram

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

نمایش بیشتر
5 158
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+57 روز
-1030 روز
آرشیو پست ها
​​Kotlin: парочку best practices #kotlin Подобных статей бывает довольно много, но описанные в этой советы могут быть полезны тем, кто совсем недавно начал программировать на Android. Ну и можно проверить себя, вдруг описанные советы не применялись на практике. Описывать всё, что есть долго, поэтому вот вам ссылка на статью, где много примеров кода и отличных советов.

«Лаборатория Касперского» ищет Android Developer. Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и
«Лаборатория Касперского» ищет Android Developer. Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и приятные бонусы: бесплатное обучение, расширенный ДМС со стоматологией, спортзалы прямо в офисе, а еще — программа релокации для кандидатов из регионов. Если вы: - имеете опыт разработки на Java/Kotlin от 2 лет; - обладаете опытом распределенной работы (на базе git); - и хотите развиваться в сторону мобильной разработки под Android, то переходите по ссылке, чтобы ознакомиться с подробной информацией о направлении и присоединиться к команде лучших экспертов. #партнёрский

​​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. Больше про изменения можно почитать тут.

В последнее время тяжело открывать ленту новостей и читать то, что там пишут. Ещё тяжелее — следить за новостями из мира технологии, в частности Android-разработки: поймал себя на мысли, что уже пару дней вообще не могу нормально сфокусироваться на работе. Я всегда был против любой войны, против любого насилия, тем более против применения всего этого к народу, который живёт рядом с тобой и имеет похожую культуру и менталитет. И несмотря на те эмоции и чувства, которые у меня есть, я не буду писать на этом канале про политику, про войну, пытаясь составить конкуренцию большим новостным изданиям или превращая канал в политический. Я бы хотел, чтобы этот канал остался тем местом, где каждый хоть как-то мог бы отвлечься от того, что происходит, и, возможно, таким образом я принесу вам больше пользы. Если хотя бы одному из моих подписчиков станет лучше от написанных постов — значит всё было не зря. Ребята из 🇺🇦 — держитесь 💙💛 .

​​Процесс сборки Android #android Довольно хороший набор статей, где автор делится о том, как происходит процесс сборки ваших приложений под Android: как устроена компиляция ресурсов приложения, исходного кода, оптимизация ресурсов и т.д. Вдогонку — отличная статья, где автор говорит о том, что происходит в системе Android, когда пользователь нажимает на кнопку открытия приложения.

🔥Начинаем новый набор на продвинутый онлайн-курс «Android Developer. Professional» на Kotlin от OTUS. Курс предназначен для
🔥Начинаем новый набор на продвинутый онлайн-курс «Android Developer. Professional» на Kotlin от OTUS. Курс предназначен для разработчиков с опытом от 1 года. Пройдите тест и узнайте, готовы ли вы к обучению! 👉🏻ПРОЙТИ ХАРДКОРНЫЙ ТЕСТ ПО ANDROID-РАЗРАБОТКЕ: https://otus.pw/CeBb/ #партнёрский

​​Kotlin Multiplatform — ATOM #kmm Тут ребята из Jetbrains сделали новый подскаст, где будут делиться последними новостями из мира KMM. Обещают, что выпуски будут появляться раз в месяц, и уже доступен первый из них. Обсуждают изменения в KMM за последний год, Compose, планы по выходу в бета и другие фичи, так что выглядит весьма здоровски.

​​Контракт для работы Android и Design команд #design Лайтовая статья, где автор делится советами для организации работы команды дизайнеров и разработчиков. Многие советы довольно очевидные, но, возможно вы узнаете описанные проблемы и у себя в команде. Например, это дублирование цветов, которое возникает из-за отсутствия единых названий в Figma, или некорректное использование шрифтов, из-за чего некоторые заголовки выпадают из единого стиля приложения. Советы довольно простые в использовании, но экономят кучу времени. Ссылка на статью тут.

​​Ruler от Spotify #tools Тут ребята из Spotify поделились любопытной наработкой для определения размера текущего apk-файла и его детального анализа. Вообще размер apk — довольно важная метрика для приложения, ведь далеко не везде есть дешёвый и стабильный Интернет, поэтому потенциальные пользователи могут запросто отказаться от загрузки приложения, если его размер будет слишком большим. Сейчас самыми распространёнными решениями для анализа размера приложения являются встроенный анализатор в Android Studio и Diffuse. Однако, они могут давать довольно поверхностную информацию, если ваше приложение состоит из большого числа модулей, как это было в случае со Spotify. Альтернатива — их собственное решение, которое называется Ruler. Выглядит всё довольно хорошо: на выходе получается html-страничка с детальной информацией о состоянии приложения, учитываются модули и разные бандлы для конкретной версии устройства.

26 и 27 февраля компания Space307 проводит Android Weekend Offer — это возможность всего за два дня получить предложение о ра
26 и 27 февраля компания Space307 проводит Android Weekend Offer — это возможность всего за два дня получить предложение о работе и welcome-бонус в размере 300 000 рублей. Space307 занимается разработкой торговой платформы для ритейл брокеров. Принять участие приглашают Android-разработчиков с опытом от трёх лет, все этапы отбора проходят в онлайне, работать можно удалённо из любой точки мира. Помимо welcome-бонуса к офферу прилагаются: достойная зп, крутая команда, здоровая культура, много свободы и возможностей. 👉 Узнать подробности и подать заявку. #партнёрский

​​JankStats Library #library Тут появилась любопытная библиотека от Google для анализа производительности приложений — JankStats. Суть библиотеки заключается в получении информации о производительности рендеринга внутри приложения и получения информации о каких-то проблемах, если они есть. Под капотом используется в том числе FrameMetrics API, которое как раз и даёт информацию о том, сколько времени нужно было для отрисовки конкретного кадра. Выглядит довольно интересно, но пока тащить в свой проект рановато, так как эта только первая альфа. Подробнее о том, что делает либа можно почитать тут, а чуть больше документации тут.

​​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 Полный текст таски можно взять тут.

➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинько
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов. Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам. 🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/mobile.oneday #партнёрский

​​Высокая производительность с Kotlin #kotlin Думаю, что не открою секрет, если скажу, что пользователям важно хорошо работающее приложение. Конечно, есть исключения в виде приложений, которые работают ужасно, но при этом имеют массу положительных отзывов: видимо, польза от них перевешивает их отвратительную работу и качество. 🤫 Но всё же, если говорить про нас, разработчиков, то мы должны стараться делать максимально качественные приложения и отслеживать необходимые метрики для того, чтобы понять, что с нашим приложением что-то не так. Вот вам статья, где автор рассказывает о том, что в себя включает понятие «производительность», на какие вещи стоит обратить внимание нам, а также какие средства языка Kotlin использовать, чтобы писать более эффективный код. Советы крутые, можно найти для себя полезные штуки 🔥.

Внимание! Внимание! Стартует новый сезон топовой конференции для 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 будет скидка.😌 #партнёрский

​​Understanding Gradle - The Fundamentals #новичкам #gradle Gradle частенько вызывает непонимание не только у новичков, но и у опытных разработчиков. Ведь сама структура файлов отличается от той, что мы привыкли видеть в проекте, да и язык программироания может отличаться, если говорить о groovy. Вот вам годный курс о том, как использовать Gradle в проекте. И тут можно встретить всё, что нужно, начиная от именования файлов и ресурсов и заканчивая написанием собственных тасок и публикацией своих библиотек. Отличный курс для новичков, не так часто встретишь что-то действительно хорошее в видео формате.

​​GraphQL в Android для начинающих #android #новичкам Интересная статья, которая рассказываем о применении GraphQL в Android с самого начала. Автор делится своими размышлениями о том, что такое GraphQL, какие есть преимущества над обычными REST API, а также что выбрать для того, чтобы добавить эту либу в своё приложение. Крайне рекомендую, ведь инструмент очень полезный.

​​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. Билд получился хороший, я обновился и вроде даже ничего не поломалось 🤞🏻, так что смело пробуйте. Больше деталей про обновление можно найти тут

​​Загрузка больших изображений в RecyclerView #tips Думаю, что не мне вам объяснять важность плавного скролла в приложении. Часто он может проседать в ситуациях, когда изображения в элементах списка — большие. Автор статьи решил решить эту проблему при помощи кастомного RecyclerView Scroll Listener, в котором описал метод для того, чтобы ставить на паузу и возобновлять загрузку только тех изображений, которые видны пользователю. Звучит довольно логично и просто, хотя не обошлось без проблем: изображения ставятся в очередь на загрузку, и если их будет слишком много, а их объём будет слишком большой, то пользователь увидит этот момент, и опыт использования скролла будет не такой приятный. В общем, если у вас нет возможности оптимизировать изображения, этот совет может вам помочь.

​​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, оно бесплатное и на русском языке. Готовьте ваши вопросы спикерам, ещё есть время 😉.