Как стать автором
Обновить
78.58

Разработка под Android *

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

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

Orange Pi OS: операционная система от создателей конкурента Raspberry Pi. Возможности ОС

Время на прочтение3 мин
Количество просмотров35K

Мы не раз и не два публиковали обзоры одноплатников, в число которых входили и представители линейки Orange Pi. Эти устройства выделяются на фоне многих других — не сказать, что они идеальны, но соотношение цена/качество неплохое. Сегодня, правда, поговорим не об одноплатниках, а программном обеспечении для них. Дело в том, что появилась вполне функциональная ОС, которая получила название Orange Pi OS. Интересно то, что есть несколько версий этой операционной системы, которые базируются на Arch Linux, Android и платформе Open Harmony. Подробности — под катом.
Читать дальше →

Компилируем C++ приложение для запуска в браузере

Время на прочтение4 мин
Количество просмотров1.8K

У фреймворка Android есть небольшой инструмент под названием validatekeymaps.
Это утилита для проверки синтаксиса конфигурационных файлов устройств
ввода (*.kl, *.kcm, *.idc или virtualkeys.*). В документации
предлагается собрать её самостоятельно: скачать исходники Android,
установить необходимую систему сборки и т.д. И это в почти 2023. Неужели
нельзя сделать это в вэбе, чтоб без заморочек и удобно для
пользователя? Спойлер: можно. Этим и займёмся.

Читать далее

Deep Dive Into Deep Link. Часть 5. Нюансы: port, mime, path, диспетчеризация, обратная совместимость

Время на прочтение8 мин
Количество просмотров3.5K

Приветствуем вас на в заключительной части Deep Dive Into Deep Link! Вот уже пятая статья цикла, а мы до сих пор не со всем разобрались. Сегодня мы ответим на вопросы:

- Почему способности path паттерны такие ограниченные?

- Как происходит диспетчеризация deep link, как его делают библиотеки навигации и мы?

- Как можно сломать обратную совместимость?

Читать далее

Удалённая сборка Android проектов на сервере прямо из Android Studio

Время на прочтение42 мин
Количество просмотров7.9K

Если вам случалось работать над очень крупным Android проектом, с большим количеством модулей, кода, или наоборот не самой удачной декомпозицией на модули и наличием легаси, то вы наверняка знаете что сборка подобного проекта может занимать довольно много времени. К тому же, этапы сборки множатся и усложняются, да и средние размеры проектов серьёзных мобильных приложений продолжают увеличиваться. По моим субъективным ощущениям, с каждым годом среднее время сборки проекта растёт и не похоже что эта тенденция будет меняться.

Бывает довольно обидно, когда в работу поступает задача, решение которой очевидно, фикс проблемы делается за пару минут, но чтобы проверить что всё исправлено нужно переключать ветки, пересобирать проект, потом переключаться обратно и пересобирать исходную ветку. Это может занимать очень много времени. Или бывает так, что находясь “в потоке” нужно что-то быстро проверить, но увидеть вступили ли изменения в силу можно только пересобрав и перезапустив проект, а если что-то пойдёт не по плану, или по каким-то причинам кэш сборки не отработает и проект будет собираться почти "на холодную"? Подобные, казалось бы, мелочи могут занимать огромное количество времени в течение дня, отвлекают, мешают сосредоточиться и продуктивно использовать рабочее время. Особенно много времени тратится если рабочий компьютер далеко не самый производительный, или если вы пользуетесь ноутбуком, не ориентированным на выполнение тяжёлых сборок. 

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

Интересующихся приглашаю под кат.

Читать далее

Поиск не вставая с дивана, или как подружить приложение со Сбер Ассистентом

Время на прочтение5 мин
Количество просмотров1.2K

Всем привет ? . Зовут меня Илюша Кр, и сегодня я вам расскажу, как же все-таки попросить ассистента принести чипсов сделать поисковый запрос внутри вашего приложения.

Для начала скажу пару слов о себе: я такой же обычный парень, как и вы, работаю разработчиком под Android в онлайн-кинотеатре PREMIER. Но, когда я взял задачу по внедрению голосового помощника Сбера в приложение, моя жизнь разделилась на «до» и «после». Заинтриговал? Тогда читай дальше!

Жми кнопку и полетели

Выгорание разработчиков

Время на прочтение6 мин
Количество просмотров8.5K

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

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

Мы в RDP опросили своих коллег и сегодня делимся с вами их советами, как предотвращать выгорание и успешно справляться со стрессом на рабочем месте.

Читать далее

Мобильная разработка за неделю #466 (14 — 20 ноября)

Время на прочтение4 мин
Количество просмотров2.6K
Наш новый дайджест про Xcode 14 и оковы CocoaPods, приложения для Mi Band 7 и недоразумения Google Play, про золотой век мобильной разработки, анимацию в Duolingo, дизайн-системы и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

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

Каково это: строить бизнес в разработке, когда тебе 40

Время на прочтение8 мин
Количество просмотров22K
Кадр из фильма «Перекрёсток» (1986)

Я родился в 1981-м, так что в прошлом году мне стукнуло 40. Если верить Википедии, это первый год поколения Y (миллениалов). Миллениалов обычно ассоциируют с претенциозным характером, и в моём случае так оно и есть. Родители кучу раз говорили мне, как тяжело им приходилось работать и идти на жертвы, чтобы обеспечить для меня достойное образование. Из этого следовало, что мне следует как можно лучше учиться и усердно трудиться, что я и делал (спасибо вам за совет, мама и папа ✝). И вот чему я научился. Это моя история о росте, обязанностях и пределах.
Читать дальше →

Никто не бесил меня больше, чем Google Play Team

Время на прочтение10 мин
Количество просмотров25K

Меня зовут Дэниел Рид. Я пишу код уже более двадцати лет. Я сооснователь и ведущий разработчик SaaS-компании, предоставляющей ПО для управления фитнес-студиям, например студиям йоги.

Наше базовое приложение хостит все студии в одном месте, однако за дополнительную цену мы разрабатываем и публикуем «брендированное приложение», которое, по сути, является версией нашего базового приложения, привязанным только к одной студии.

Недавно Google Play сообщил нам, что нам нужно обновить версию целевого SDK, в противном случае наши приложения больше не будут отображаться в Google Play Store.

Без проблем! Эти приложения уже много раз проходили процесс проверки и подтверждения, поэтому нам достаточно было лишь запустить целевой SDK и выполнить наш скрипт для отправки новых приложений… или, по крайней мере, так думал я.

В этом посте я расскажу о двух неделях общения мелкого разработчика с Google Play Team.
Читать дальше →

Custom View — разбиваем функционал

Время на прочтение4 мин
Количество просмотров5K

В этой статье пойдет речь о вынесении UI в отдельный блок, компоновкой стандартных элементов.

Я расскажу о проблемах с которыми встретился сам, для искушенных пользователей, прилагаю ссылку на более подробный ресурс.

Основной пример будет рассмотрен на простой задаче когда нам необходим Switch в котором будет и текст и описание.

Читать далее

Я купил и оживил одну из первых китайских смартфонов-подделок на Android. Что он из себя представляет в 2022?

Время на прочтение10 мин
Количество просмотров8.8K

Что вы скажете, услышав сейчас "смартфон с тачскрином, большим 4.2" дисплеем и ОС Android за 4.000 рублей"? Ухмылку? А в 2011, когда смартфоны на Android стоили немалых денег? Когда основной мобильной ОС в СНГ была Symbian? Когда встретить кнопочный аппарат можно было куда чаще, нежели полноценный смартфон с тачскрином? Я тоже помню это время, а ещё это время помнит наш сегодняшний гость - прямой представитель тех самых "топовых девайсов за свои деньги" Hero H7000! Этот девайс был выпущен в начале 2011 года, и является одной из первых китайский подделок на Android, причём копировал он Windows Phone смартфон - HTC HD7! В этой статье мы будем портировать прошивку с другого аппарата, и посмотрим - как можно применить такой девайс в наше время

Читать далее

Пишем приложение на Mi Band 7 с сервисной частью

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

Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документации по ZeppOS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений. 

Читать далее

Как голосовой робот в мобильной CRM для коллекторов помогает повысить уровень сбора платежей и защитить должников

Время на прочтение11 мин
Количество просмотров1.6K

Год назад я рассказал на Хабре, как мы сделали заказное мобильное приложение для коллекторов. Речь и тогда и сейчас только о технологиях, не о этике и практике взысканий. Сегодня эта разработка развилась в полноценную мобильную CRM с голосовым роботом (робот — это теперь и отдельное ПО). И что важно, приложение не только полностью цифровизирует работу выездного коллектора, но и обладает встроенной защитой должников и непричастных лиц в соответствии с законом №230-ФЗ.

Читать далее

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

Все библиотеки имеют фатальные недостатки, или Как мы изобретали Retrofit-подобный велосипед для JSON-RPC протокола

Время на прочтение23 мин
Количество просмотров4.4K

Привет, Хабр! Меня зовут Юра Кучанов, работаю Android разработчиком в Garage Eight и сегодня хочу рассказать о том, как мы делали Retrofit-подобную библиотеку для JSON-RPC протокола. Началось всё с того, что нам потребовалось для общения сервера и Android приложения использовать протокол JSON-RPC. Что значит “потребовалось”? Если кратко – бэкендеры предложили, а сильных аргументов против, в сущности, не нашлось =) Возможно, тут сработала, например, вот эта статья с хабра про выбор между REST и JSON-RPC. В итоге я пошёл искать библиотеки в сети и… И обнаружил, что готовые решения не подходят (так как там, конечно же, есть хотя бы один фатальный недостаток). В итоге сделал свою библиотеку в стиле Retrofit. Ниже расскажу, почему не подошли готовые решения, как реализовал своё через рефлексию и как копался в исходниках Retrofit и OkHttp для реализации нужного нам функционала.

Читать далее

Дайджест интересных материалов для мобильного разработчика #465 (7 — 13 ноября)

Время на прочтение4 мин
Количество просмотров2.3K
В новом выпуске никакое место в конкурсе Telegram и незнание стандартов, большой переезд и актуальное время, приложения на Go, собственный SDK, простое предсказание LTV и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

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

Как оптимизировать работу с Paging 3 и работа над ошибками. Boilerplate ч. 4

Время на прочтение7 мин
Количество просмотров8.6K

Всем привет после такого длительного перерыва возвращаем серию статей Boilerplate. Сегодня будем разбирать как облегчить пагинацию с помощью библиотеки Paging 3. За это время достаточно правок произошло в самом репозитории Boilerplate которые мы сегодня тоже разберем.

Читать далее

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Время на прочтение8 мин
Количество просмотров89K

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →

Разработка мобильных приложений на Go

Время на прочтение5 мин
Количество просмотров29K

Язык программирования Go стал настоящим открытием для разработчиков инструментов для системного администрирования и DevOps благодаря комбинации возможностей низкоуровневой разработки (и в этом он подобен C) и поддержке автоматической сборки мусора, исключению прямой работы с указателями, наличию конкуретной многозадачности (goroutines) и возможности компиляции непосредственно в исполняемый образ. Постепенно Go начал использоваться для других целей: создание веб-приложений, разработка для микроконтроллеров. Почему бы не использовать все его возможности для создания мобильных приложений? В статье мы обсудим некоторые подходы к разработке приложений на Go для мобильных устройств.

Читать далее

Android. Starting Kivy App and Service on bootup

Время на прочтение15 мин
Количество просмотров4.3K
main

Как запускать приложение или сервис написанные на python (Kivy) под Android при запуске устройства. Что бы это сделать придется разбираться как работает buildozer и pythonforandroid. Т.к. на текущий момент сделать это по человечески не представляется возможным, из-за того что разработчики Kivy не позаботились об этом. Узнать что такое Kivy, как собрать первое приложение можно здесь или по ссылкам в конце статьи.

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

Deep Dive Into Deep Link. Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего

Время на прочтение8 мин
Количество просмотров4.6K

Привет! Мы на шаг от завершения цикла. В прошлый раз мы сделали выводы о том, что оболочка ОС не влияет на обработку deep link. А приложение, из которого открывается ссылка, влияет. Сегодня мы посмотрим, как работают ссылки без scheme, почему важно помнить обо всех host и как быть, когда приложение начинает перехватывать всё…

Читать далее