Обновить
88.35

Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга
Уровень сложности

Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3.9K

Привет! Я Егор Ерусланов, Qt-разработчик.

В Android-приложение 2ГИС мы добавили новый режим PiP (Picture-in-Picture, или «картинка в картинке»). С PiP наши пользователи смогут следить за маршрутом в маленьком плавающем окне на основном экране. Например, когда нужно быстро прочитать сообщение или включить подкаст и при этом сохранять фокус на навигации. Режим PiP — это не просто «приятная мелочь», а функциональность, которая подстраивается под новые требования пользователей навигатора. 

В этом посте поделюсь, как решал несколько трудностей, которые встретились при разработке этой функции.

Читать далее

Крутой гиковский девайс по цене роллов — зачем я купил смарт-часы на Android'е за 1 000 рублей?

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели25K

На первый взгляд кажется, что в современном мире за 1 000 рублей не представляется возможным купить интересное и полезное устройство. Уже практически 3 года я занимаюсь тем, что рассказываю о том, как я покупаю за копейки различные гаджеты и стараюсь дать им новую жизнь. Однако всё это время я обходил один интереснейший класс устройств — Android-часы, причём не на WearOS, а на самом обычном чистом андроиде с полноценными смартфонными чипсетами. Недавно я сэкономил на «шавухе» и купил себе на вторичке смарт-часы ZGPax S8 за тысячу рублей — и в сегодняшней статье я расскажу, почему это один из лучших бюджетных девайсов для настоящего гика!

Читать далее

Создаём многомодульную библиотеку на Android: как же собрать fat-aar?

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели2K

В Android-разработке могут возникать сценарии, когда нам нужно собрать один aar из нескольких модулей. 

Однажды нам в Сравни потребовалось создать SDK для наших партнёров — на основе уже существующего проекта. Сделать это хотелось без радикальных изменений в проекте и излишнего раскрытия деталей его устройства.

Задача понятная, но нетривиальная в реализации. Google до сих пор не предоставляет полноценного инструмента для создания fat-aar; к opensource-решениям также много вопросов. 

Выход из ситуации: вникнуть в нюансы того, как работает gradle, и на базе общедоступных средств сделать свой инструмент для создания многомодульной библиотеки. С автоматизированной сборкой модулей и публикацией артефакта. 

О том, как мы к этому подступились и к чему пришли, рассказываем под катом.

Читать далее

Demeter в опенсорсе: реактивное профилирование Android-приложений

Время на прочтение11 мин
Охват и читатели4.6K

Всем привет, меня зовут Вадим Мезенцев, я Android‑разработчик в команде Яндекс Go. Сегодня я хочу рассказать историю о том, как мы искали подход к профилированию нашего приложения, с какими проблемами столкнулись и как в итоге реализовали библиотеку для измерения производительности.

Наша команда часто сталкивалась с проблемами при поиске «узких мест» в производительности приложения. Мы пробовали различные инструменты профилирования, но все они требовали слишком много времени на сбор метрик, анализ и фильтрацию нужных данных. Чтобы решить эту проблему, мы разработали собственное решение, которое сочетает скорость анализа и простоту поиска проблем. Мы создали библиотеку Demeter, которую легко интегрировать в отладочную версию Android‑приложения. Она позволяет получать отчёты о производительности во время использования приложения и переходов между экранами. Такую сборку можно передать команде тестирования, а затем проанализировать отчёты и изучить изменения.

Читать далее

ChromeOS или как сделать из вашего ПК подобие планшета с возможность запускать Linux и Adroid софт

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели27K

Установка Chrome OS на обычный ПК с поддержкой Android Приложений, различия ChromeOS Flex и версии для Chromebook, Сравнение их, подробная установка каждой из них.

Читать далее

Передача данных от ESP32 по Bluetooth LE к Android

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели8.1K

Идея приложения состоит в демонстрации IoT - интеграция различных устройств, и передача данных по разным протоколам в Edge или Cloud. Допустим, наш автономный механизм работает без подключения к интернету, а нам необходимо сделать замеры поведения движений во времени. Мы подключаемся с помощью смартфона по Bluetooth LE к контроллеру механизма и в течении определенного времени делаем запись. При этом наш смартфон успешно подключается к облачному MQTT-брокеру и передает данные в IoT платформу. Платформа производит аналитику и предоставляет нам результат. А мы в это время на основании полученных данных можем внести требуемые значения характеристик механизма в контроллер по BLE.

В статье Machine learning на ESP32 мы начали разработку проекта распознавания жестов для ESP32. В данной статье продолжим реализацию подключение и отправку данных по BLE и MQTT с помощью Android-устройства. Хотя ESP 32 может напрямую подключаться к Wi-Fi и MQTT, как, например, показано в статье Платформа с web-камерой на ESP32, мы все же реализуем передачу данных по BLE, руководствуясь выше изложенными соображениями.

Читать далее

Выжимаем максимум из код-ревью и спасаем нервные клетки

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели3K

Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они избегают его. Или участвуют в нём неэффективно.

Так разрушим же шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.

Читать дальше

Ликбез по разрешениям в Android

Уровень сложностиПростой
Время на прочтение24 мин
Охват и читатели9K

В быстро меняющемся мире мобильных технологий операционная система Android занимает особое место благодаря своей универсальности и обширному спектру возможностей. Одним из ключевых элементов, обеспечивающих безопасность и неприкосновенность личных данных пользователей Android, является система разрешений. Разрешения Android контролируют взаимодействие приложений с операционной системой и доступ к пользовательским данным, создавая безопасную и контролируемую среду, в которой функциональность и защита находятся в гармонии.

Читать далее

Ближайшее будущее мобильных браузеров для Android: что предложила Microsoft

Время на прочтение4 мин
Охват и читатели2.4K

Мобильные браузеры долгие годы оставались в тени «взрослых» десктопных версий. Все бы хорошо, но возможностей у первых гораздо меньше. Основной недостаток — нет расширений. Как говорится, бери что дают, за малым исключением (подробнее — ниже). Но сейчас Microsoft начинает менять правила игры. Ее браузер для Android получил настоящие расширения, такие же, как на ПК. Сегодня об этом и поговорим, а еще посмотрим, что это может значить для рынка мобильных браузеров.

Читать далее

Мобильная разработка за неделю #579 (10 — 16 марта)

Время на прочтение4 мин
Охват и читатели1K
В новом дайджесте производительный SwiftUI и бесшовное взаимодействие Compose и View, сборка ядра Android и отслеживание угла горизонта, решение задач распознавания, прямые без препятствий, что происходит на рынке разработки, глажка травы и многое другое. Заходите!

Читать дальше →

TutOn: Нежданное путешествие, или как мы в 11 классе сделали мобильное приложение для помощи учителю

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели1.7K

Представьте ситуацию: май месяц, экзамены уже на носу, все вокруг готовятся к ЕГЭ... А что, если добавить к этому разработку приложения, победу в конкурсе и публикацию в RuStore? Звучит как безумие? Возможно. Но именно так мы провели последний год перед поступлением. И вот наша история!

Читать далее

Сравнение Dagger 2, Dagger Hilt и Koin

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2.3K

В этой статье мне хотелось бы разобрать вопрос, которым часто задаются начинающие и молодые разработчики мобильных приложений под Android. Многие мобильные разработчики слышали о таких широко известных инструментах внедрения зависимостей (DI), как Koin и Dagger. Они решают одну задачу — управление зависимостями, но делают это по-разному. Но в чём же их принципиальная разница, в чём их отличия, их плюсы и минусы, и какой из этих инструментов выбрать при разработке нового проекта (и в зависимости от его сложности и требований)? Обо всём об этом постараюсь кратко изложить далее и дам рекомендации по выбору для новых проектов.

Читать далее

Сборка ядра Android и модулей aircrack-ng

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели1.9K


Думаю, кто читает эту статью, сталкиваются с проблемой драйверов для
внешних устройств, в частности Wi-Fi адаптеров, таких как Alfa, TP-Link и других на
чипсетах RTL. Здесь я опишу принципы компиляции ядер Samsung с использованием
системы сборки Soong для Android-устройств, а также расскажу, как подготовить среду
для компиляции и сборки ядра. Кроме того, я опишу, как скомпилировать внешние модули ядра aircrack-ng для мобильных устройств.

Читать далее

Ближайшие события

Тёмный лес разработки для нестандартных устройств: как войти и не заблудиться

Время на прочтение14 мин
Охват и читатели1.1K

Если разработку под устройства можно сравнить с тёмным лесом, то как в нём не заплутать?

Привет, путник! Меня зовут Денис Малых, я работаю в Яндексе и руковожу разработкой общих компонент для платформы, на которой работают наши устройства. А ещё — я член программного комитета конференции AppsConf, где мы обсуждаем разработку под мобильные ОС. В этой статье поделюсь опытом разработки под нестандартные устройства: чем она принципиально отличается от привычной мобильной разработки, и что нужно уметь, чтобы разрабатывать «умные вещи».

Читать далее

ServerSocket для IPC в Android и примеры межпроцессного взаимодействия

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.8K

Всем привет! Меня зовут Евгений Шувагин, я уже шесть лет занимаюсь Android-разработкой, а последние два года работаю в команде Биометрических продуктов. Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android-приложением для передачи данных. В поисках удобного решения я обратил внимание на ServerSocket — простой и гибкий способ локального взаимодействия без лишних сложностей.

Читать далее

Шпаргалка: Kotlin suspend функции

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.2K

Suspend-функции — это специальные функции в Kotlin, предназначенные для работы с корутинами. Они позволяют приостанавливать выполнение кода без блокировки потока, что делает их идеальными для асинхронных операций (например, сетевых запросов, работы с базой данных или долгих вычислений). Ключевое слово suspend указывает компилятору, что функция может быть «приостановлена» и позже возобновлена, не занимая поток исполнения.

Мы можем вызвать suspend функцию только из корутины или из другой suspend функции и это гарантирует нам, что мы будем иметь доступ к Continuation и соответственно сможем написать правильную suspend функцию, которая сможет передать результат своей работы через объект Continuation.

Пока звучит путанно, но на примерах всё встанет на свои места.

Пример объявления:

Читать далее

Мобильная разработка за неделю #578 (3 — 9 марта)

Время на прочтение4 мин
Охват и читатели1.1K
В этом выпуске окончательная и бесповоротная очистка Xcode от ненужных файлов, плагин для кастомных дизайн-систем и мобильная архитектура, новый (почти нативный) кроссплатформенный фреймворк, одинаковые приложения от студентов, жизнь и смерть триалов в Южной Корее и многое другое. Заходите!

Читать дальше →

Kelp — IDE-плагин для кастомных дизайн-систем на Jetpack Compose

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели2.9K

Kelp — мощный плагин для Android Studio, разработанный для улучшения поддержки кастомных дизайн-систем на Jetpack Compose в Android Studio.

Основные фичи:
🔧 Настраиваемые иконки для компонентных функций
🎨 Иконки дизайн-системы
🌈 Предпросмотр цветов
📱 Интеграция демоприложения (автоматическое скачивание и установка APK-файла и deeplinking на страницу компонента)
🖼️ Рендеринг изображений в KDoc
⌨️ Шаблоны кода (Live Templates)

И 🐘 Gradle Plugin, скачивающий демоприложение и проверяющий наличие IDE-плагина.

Читать далее

Декомпозиция задач: как разработчику съесть слона?

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели2.9K

Ответьте себе на вопрос, бывает ли такое, что в процессе выполнения задачи на разработку вы понимаете, что не укладываетесь в срок, сталкиваетесь с чем-то, что не учли заранее, какие-то доработки занимают больше времени и усилий, чем вы планировали? Из-за нарастающей сложности задач в процессе их выполнения вы заводите дополнительные технические задачи на исправление, оставляете по коду множество TODO и комментариев в надежде позже вернуться к задаче и сделать ее качественнее? 

Читать далее

Студенты постоянно создают одинаковые приложения. Я исправил это недоразумение

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели15K

Мне надоело, что приложения копируют друг друга и тонут в бесполезной функциональности. Я потратил 15 месяцев, чтобы создать идеальную платформу для студенческих расписаний, на основе которой любой студент сможет построить интеграцию со своим учебным заведением за пару вечеров. Приложение интегрируется с календарём, имеет наибольшее количество полезных настроек и уникальных фичей среди конкурентов и не имеет какой-либо навязчивой рекламы.

Почему это приложение обязано победить?