Прошло Google I/O и мы узнали абсолютно всё про новую версию Android. Основной упор в релизе был сделан на усиление безопасности ОС и приватности данных, а также провели редизайн системы. Очень хорошо поработали с поддержкой новых современных стандартов Media, причём минимизировали объем боли, которую будут испытывать флагманские устройства из-за старых или бюджетных смартфонов. App Widgets воскресили и сделали улучшения, которые просили еще с первой версии Android.
Android разработчик
История Android от L до T
Как для мобильных разработчиков менялся Android с 2014 года и до сегодняшнего дня? Казалось бы, можно просто открыть официальное описание каждой версии и узнать. Но интереснее не просто читать сухие чейнджлоги, а вместе вспомнить все и из отдельных фактов сделать общие выводы.
В июне я выступил с докладом об этом на конференции Mobius, а теперь для аудитории Хабра публикую его текстовую версию. Если есть что добавить — пишите в комментариях!
Игра в маляра, или Content-based color scheme: как цветовая схема приложения может меняться в зависимости от контента
На Google I/O 2021 продемонстрировали фичу, которая позволяет динамически менять цветовую схему приложения в зависимости от его контента. Но ни в документации, ни в официальных примерах не оказалось использования этого подхода или API, которое делало бы это на уровне отдельного экрана или элемента.
Ведущего android-разработчика red_mad_robot Рому Чорыева это не устроило, и он для этой цели решил разработать собственное простое решение, — а теперь рассказывает об этом в статье.
Allure-Framework. Работа с кодом
Deep Dive Into Deep Link. Часть 5. Нюансы: port, mime, path, диспетчеризация, обратная совместимость
Приветствуем вас на в заключительной части Deep Dive Into Deep Link! Вот уже пятая статья цикла, а мы до сих пор не со всем разобрались. Сегодня мы ответим на вопросы:
- Почему способности path паттерны такие ограниченные?
- Как происходит диспетчеризация deep link, как его делают библиотеки навигации и мы?
- Как можно сломать обратную совместимость?
Откуда возникает TransactionTooLargeException, если я ничего такого не делал?
Android-разработчиков часто спрашивают на технических собеседованиях, как запускать фрагменты, как передавать туда данные, почему нельзя класть много в аргументы, а много — это сколько, а что может пойти не так и т.д. Мы в Dodo тоже иногда такие вопросы задаём. Я думал, что понимал всё это, но оказалось, что довольно поверхностно. Всё изменилось, когда я столкнулся с частыми крашами TransactionTooLargeException в приложении Дринкит.
TransactionTooLargeException — это исключение из области IPC-вызовов (interprocess communication) и Android Binder. Но его можно получить в безобидной ситуации, когда, казалось бы, мы ничего такого не делали, и не пользовались IPC.
В этой статье предлагаю разобраться с этим крашем и поговорить про IPC-вызовы и Binder.
Настраиваем автоматический запуск UI тестов Android приложения через TeamCity
Отмечу, что у нас в компании экспертизы по удаленному запуску инструментальных тестов Android практически нет, поэтому приходилось усердно гуглить, но и там развернутых гайдов не нашел. Посему и решил запилить данную инструкцию.
CI TeamCity — Автоматизация build процессов Android и UI тестирования
Также буду уделять внимание особенностям настройки environment’а под Android проект (которые находил в процессе исследования) и различного рода вещам, которые могут помочь облегчить жизнь начинающему тестировщику и разработчику.
Цели:
При обновлении кода проекта должно происходить:
- Автоматическая сборка проекта
- Прогон UI автотестов
- Экспорт APK файлов debug и release для последующего ручного тестирования
- Уведомление всех участников команды разработки о результатах
План:
- Установка и настройка Java JDK
- Установка и настройка Android SDK
- Установка отдельного Gradle для дебага
- Подготовка Android проекта
- Установка TeamCity Server и Build Agent
- Настройка TeamCity Project → Build для билда проекта и получения установочного APK
- Настройка build steps c UI автотестами
Что там по автотестам на Android в 2022?
Всем привет!
Меня зовут Женя, и я люблю автотесты. Причем люблю так сильно, что даже стал соавтором Kaspresso, OpenSource библиотеки для написания автотестов под Android, и автором ряда докладов и статей про тесты (Kaspresso: фреймворк для автотестирования, который вы ждали, Автотесты на Android. Картина целиком, Kaspresso tutorials. Часть 1. Запуск первого теста, Дмитрий Мовчан, Евгений Мацюк — Как начать писать автотесты и не сойти с ума). Также со мной полюбил автотесты и мой товарищ, Сергей Ярцев, который является CTO в HintEd, и также вынужден трогать автотесты, причем под разные платформы.
В одной из своих статей (Автотесты на Android. Картина целиком) я описывал, что вообще в себя включают Автотесты под Android. Если кратко, то я выделял 4 большие области: Процесс написания автотестов, Runner, Инфраструктура и Остальное, которое включало в себя отчеты, интеграцию с CI/CD и тд. В свое время (2019-2020) когда мы делали Kaspresso, мы закрывали боль с написанием автотестов. Теперь разработчики и тестировщики могут писать красивый и понятный DSL и не думать про проблемы с флаканием, логами, скоростью и тд. По другим же областям были некоторые решения, но команды, выстраивающие весь процесс, должны были сами со всем этим разбираться и все это стыковать. Особенно больно было с Инфраструктурой, где приходится нырять в дивный мир DevOps и частично даже Highload.
Недавно мне стало интересно, а как сейчас обстоят дела у разных команд с автотестами. Для этого мы с Сергеем провели ряд интервью с более, чем 30 разными командами. Да, это далеко не вся выборка, и данное исследование точно не претендует на абсолютную истину. Но 30 больше, чем 1 или 2 или 5, и поэтому исследование точно может наводить на кое-какие мысли.
Путь к автотестированию Android нативными инструментами: испробовали всё, что есть на рынке и сделали свои выводы
Давайте сначала представимся. Мы - команда управления тестирования и контроля качества в БКС Мир Инвестиций. Наш продукт - это приложения и сайты, созданные для удобства всех желающих окунуться в мир ценных бумаг и инвестиций. Конкретно в нашем “ведомстве” приложения на IOS и Android, сайт личного кабинета, инвест стратегии Fintarget, новостной портал BCS-Express, сайт ФГ БКС и прочее.
В прошлом году мы начали трансформацию и преображение всех ключевых процессов в разрезе тестирования и контроля качества.
Конечно же, автоматизация наших процессов важна, ведь без этого невозможно построение действительно сильного QA отдела. Безусловно, мы встретились с множеством разнообразных проблем.
Мы решили сделать серию статей на тему того, что у нас получилось, что не получилось и как мы этого добивались. Часть статей будет чисто лирической, на размышления о подходах и способах работы. Другая часть будет сугубо технической, с рассказами, примерами и всем-всем, что нам интересно рассказать, и что интересно обсудить.
Начать эти рассказы мы решили с повести о становлении мобильного автотестирования. Первым “попался под руку” Android, про него и начнем.
Deep Dive Into Deep Link. Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего
Привет! Мы на шаг от завершения цикла. В прошлый раз мы сделали выводы о том, что оболочка ОС не влияет на обработку deep link. А приложение, из которого открывается ссылка, влияет. Сегодня мы посмотрим, как работают ссылки без scheme, почему важно помнить обо всех host и как быть, когда приложение начинает перехватывать всё…
Deep Dive Into Deep Link. Часть 3. Оболочка ОС, приложение
Привет, Хабр! Мы продолжаем серию докладов Deep Dive Into Deep Link. В прошлый раз мы разобрали 2 из 7 проблем, которые встретились на нашем пути. Сегодня мы узнаем, как One UI обрабатывает web link, чем EMUI отличается от стандартной оболочки Android. Есть ли разница между переходами по deep link в приложениях Messaging, Gmail, Telegram и чем отличился VK…
Удобный бенчмаркинг с Jetpack Benchmark Library. Макро- и микробенчмарки
Что за зверь такой этот бенчмаркинг Android-приложений? Разберемся с тем, для чего он нужен, погрузимся в детали работы Jetpack Benchmark Library и получим знания для написания первого бенчмарк-теста.
Помогать в этом деле буду я, Диана Федотова, Android-разработчица из Технократии.
Deep Dive Into Deep Link. Часть 2. Проблемы: устройство, версия ОС
Привет, Хабр! Мы продолжаем серию докладов Deep Dive Into Deep Link. Как думаете, что будет, если перейти по deep link на Samsung A70 и Pixel 2? А на Android 10.0 и 8.0? Кажется, что все будет нормально, мы перейдем в выбранное приложение… Но нет! Сегодня мы разберем два интересных кейса работы deep link на разных устройствах и версиях ОС о которых должен знать каждый.
Deep Dive Into Deep Link. Часть 1. Введение и исходная задача
Давно хотели разобраться, как работают Deep Link-и? Мы стартуем новый цикл статей, который посвящен работе Deep Link в Android. В первой части мы зафиксируем основные понятия: Deep Link, Web Link, App Link. Разберем особенности каждого вида Deep Link-ов и разницу между ними.
TeamCity: настраиваем CI/CD в вашей команде
Привет, Хабр!
TeamCity — пожалуй, один из самых популярных CI/CD-серверов, который используют разработчики по всему миру. В этой статье я расскажу про базовые концепции, на которых он построен, и на примерах покажу, как можно настроить CI/CD в вашей команде.
Жизнь без AppStore и Google Play: работаем с Huawei Mobile Services и AppGallery
С конца 2019 Huawei поставляет Android-смартфоны без сервисов Google, в том числе без привычного всем магазина приложений Google Play. В качестве альтернативы китайская компания предлагает собственные разработки — Huawei Mobile Services (HMS), а также магазин AppGallery. В этом тексте мы расскажем, как с этим жить и работать.
Кроссплатформенная мобильная разработка: история вопроса
Когда речь заходит о разработке «сразу для Android и iOS», начинаются холивары и гадания на кофейной гуще. Что перспективнее, Flutter или Kotlin Multiplatform? Будущее за ними, или завтра их оба забудут?
Уверенно делать прогнозы — занятие весёлое, но не очень конструктивное. Я захотел подойти иначе. Поскольку мы проводим конференцию Mobius, я общался со многими мобильными разработчиками, в том числе об их опыте использования старых кроссплатформых решений. И теперь решил вспомнить, какими были эти решения, и понять их судьбу.
Как известно, «кто забывает об истории, обречён на её повторение». Если мы разберёмся с прошлым — возможно, тогда и будущее станет нам понятнее. А если вы сами работали с описанными технологиями — можете дополнять в комментариях своим опытом.
CompositionLocal в Jetpack Compose. Что это и как с его помощью реализовать реактивную локализацию приложения
Власть в блоге Технократии переходит андроид-разработчикам. Владислав Титов рассказывает, как добиться непрерывающегося UI при смене локализации.
Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
Оптимизация сборки — вишенка на торте мобильного приложения. К счастью, существуют инструменты, проверенные временем и заслужившие доверие сообщества. К сожалению, ее не всегда воспринимают всерьез и не уделяют ей должного внимания. Почему в оптимизации должны быть заинтересованы все? Как выжать максимум из мобильного приложения? Как работают инструменты, которыми мы привыкли пользоваться в паре строк? И что нам продают под словом «обфускация»?
Information
- Rating
- Does not participate
- Location
- Казань, Татарстан, Россия
- Date of birth
- Registered
- Activity