Как стать автором
Поиск
Написать публикацию
Обновить
124.5

Android *

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

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

Модифицируем Bluetooth-стек для улучшения звука на наушниках без кодеков AAC, aptX и LDAC

Время на прочтение7 мин
Количество просмотров140K
Перед прочтением этой статьи рекомендуется ознакомиться с предыдущей статьёй: Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах / in English

Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.

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

Kotlin DSL, Fixtures и элегантные UI тесты в Android

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

Когда познакомился с Kotlin DSL, подумал: отличная штука, жалко в продуктовой разработке она не пригодится. Однако, я был неправ: он нам помог сделать очень лаконичный и элегантный способ написания End-to-end UI тестов в Android.


image

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

Создание моментальных игр на Unity в Google Play Instant

Время на прочтение7 мин
Количество просмотров12K
Привет! Перевели статью от Google с пошаговой инструкцией создания Instant Game в Google Play для игр на Unity.



Google анонсировал сервис Google Play Instant в марте 2018-го; с тех пор гейм-девелоперы могут создавать игры с мгновенным погружением. Существует несколько способов привлечения игроков в мгновенные игры: от кнопки TRY NOW («Попробуйте сейчас!») в Google Play до обычной ссылки, которую могут расшарить друг другу пользователи. Благодаря этому разработчики могут продемонстрировать свою игру и привлечь новых пользователей. В этой статье рассказывается о том, как создать билд готовой к выпуску мгновенной игры на Unity с нуля, а также преимущества мгновенных игр. Продолжение под катом.
Читать дальше →

Приглашаем на DroidHeads Meetup 8 июня

Время на прочтение2 мин
Количество просмотров1.4K
image

8 июня в московском офисе Mail.ru Group состоится встреча всех неравнодушных к мобильной разработке. ​В этот раз мы проведем ее совместно с сообществами MosDroid и CocoaHeads. Соберем представителей обеих платформ, чтобы участники знали, с чем могут столкнуться при разработке приложений «соседней» технологии.

Формат докладов подразумевает параллельный разбор тем, поэтому интересно будет всем!
Читать дальше →

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

Время на прочтение3 мин
Количество просмотров5.6K
Понадобилось немногим более 6 лет на выпуск 300 дайджестов. Всем привет, меня зовут Леонид, и это я делаю эти статьи.

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

Как сделать два приложения из одного. Опыт Тинькофф Джуниор

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

Привет, меня зовут Андрей и я занимаюсь приложениями Тинькофф и Тинькофф Джуниор для платформы Android. Хочу рассказать о том, как мы собираем два похожих приложения из одной кодовой базы.


Тинькофф Джуниор — это мобильное банковское приложение, ориентированное на детей до 14 лет. Оно похоже на обычное приложение для взрослых, только в него добавлены некоторые функции (например, темы оформления), а другие, наоборот, выключены (например, кредитки).


.


На старте проекта мы рассматривали различные варианты его реализации и приняли ряд решений. Сразу же стало очевидно, что два приложения (Тинькофф и Тинькофф Джуниор) будут иметь значительную часть общего кода. Мы не хотели делать форк от старого приложения, а потом копировать исправления ошибок и новый общий функционал. Чтобы работать с двумя приложениями сразу, мы рассматривали три варианта: Gradle Flavors, Git Submodules, Gradle Modules.

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

Используем Firebase в качестве хранилища изображений для Android-приложения

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

Используем Firebase в качестве хранилища изображений для Android-приложения


В этой статье вы узнаете, как извлечь изображение из хранилища Firebase для Android-приложения.

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

Весь мир в кармане или как сделать мобильную карту за пару дней

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


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


Давайте сделаем это! Прошу под кат.

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

Google Camera — хайп или замена зеркалки?

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

Все мы знаем про популярное приложение Google Camera (дальше GCam). О нем говорят везде: 4PDA, XDA, на всех официальных форумах о телефонах. Практически каждый владелец устройства пытается найти на свой девайс GCam, потому что их телефоны уже не имеют поддержку производителя или качество фото/видео страдает из-за небрежного отношения разработчиков (или нехватки ресурсов) к стоковой камере.


В статье будет много фото сделанных на GCam.


image

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

Темы, стили и другие

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

Практически все разработчики знают, что в андроиде есть Темы, но применение их обычно ограничивается копированием кусков xml из Stack Overflow или других ресурсов. В интернете есть информация по темам, но это обычно просто рецепт, как добиться определенного результата. В этой статье я постарался дать вводный обзор механизма стилизации андроида.
Читать дальше →

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

Время на прочтение3 мин
Количество просмотров5.1K
Этот выпуск нашего дайджеста затрагивает вопросы деления пиццы, работы CarPlay, обсуждает Google I/O, развитие приложений в 2019, консоль-шарманку и ошибки пуш-уведомлений.

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

Превращаем ViewPager в менеджер фрагментов с анимацией в стиле iOS

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

Многие разработчики под Андроид сталкивались с проблемой реализации анимаций и переходов при открытии новых фрагментов. Нам предлагается использовать либо добавление фрагментов в контейнер, наслаивая их друг на друга, либо реплэйс (замена одного фрагента на другой). У реплэйса есть четыре вида анимаций:


Вживую всё это выглядит примерно так:
    .beginTransaction()
    .setCustomAnimations(
        R.anim.enter_from_left, //Анимация открытия фрагмента 2
        R.anim.exit_to_right, //Анимация закрытия фрагмента 1
        R.anim.enter_from_right, //Анимация открытия фрагмента 1
        R.anim.exit_to_left) //Анимация  закрытия фрагмента 2
    .replace(R.id.container, myFragment)
    .commit()

image


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

Mobius 2019 Piter: бесплатная онлайн-трансляция и всё остальное

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


Накануне нашей конференции по мобильной разработке Mobius мы делимся с Хабром ссылкой на бесплатную YouTube-трансляцию (под катом) и рассказываем, какие именно доклады в неё попадут (спойлер: они в основном «андроидные»).

А ещё рассказываем обо всём остальном на конференции, что в открытую трансляцию не попадёт. Что можно получить, только придя туда лично?
Читать дальше →

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

Безопасная передача данных между двумя приложениями

Время на прочтение5 мин
Количество просмотров10K
Всем привет, сегодня я хотел бы вам рассказать о некоторых вариантах передачи данных между двумя андроид приложениями и рассмотреть их с точки зрения безопасности. Я решил написать эту статью по двум причинам. Первая — я начал часто сталкиваться с непониманием разработчиков механизмов работы компонентов андроид приложения. Вторая — я перестал понимать на чем основан выбор того или иного механизма при реализации фич и захотел донести, как он должен выглядеть на минималках.
Читать дальше →

Сжимаем APK, стараясь сохранить его работоспособность

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


/ PxHere / PD


Оптимизация веса APK — это нетривиальная, но очень актуальная во времена Instant App, задача. Включение proguard избавит вас от ненужного кода, если ваши зависимости можно определить на этапе компиляции, но в APK есть ещё несколько видов файлов, которые можно исключить из сборки.


Под катом о том, как сделать зависимости — определяемыми на этапе компиляции, какие файлы можно исключить из сборки и как это сделать, а так же, разберём, как исключить из сборки неиспользуемые компоненты, если у вас несколько приложений с общей кодовой базой.

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

О чём говорили на Google I/O 2019: Android 10, AR-приложения и многое другое

Время на прочтение9 мин
Количество просмотров8.5K
В этой статье я расскажу о своих впечатлениях от конференции Google I/O 2019, на которой мы с коллегами побывали на днях (и даже “засветились” с нашим приложением в одной из презентаций). Она поможет вам проникнуться атмосферой и, возможно, побудит посмотреть несколько докладов, выложенных на  канале Google Developers.


Разработчики Badoo на Google I/O 2019

День 0. Предисловие


Чтобы попасть на конференцию, нужно выиграть в лотерее, которая стартует в феврале на сайте Google I/O (обычно об этом становится известно из новостей). Но победа не предусматривает получение билета, а лишь даёт возможность выкупить его за 1150 долларов. Есть и другие программы, которые позволяют получить билет с большой скидкой или бесплатно, например Code Jam. Студенты и работники вузов могут купить билет значительно дешевле — за 375 долларов.

Перед конференцией IT-компании устраивали вечеринки для участников. Я узнал о них из чата в Telegram, в котором собралось более 150 русскоговорящих пользователей. Обычно в подобные чаты можно попасть по приглашениям из профильных Android-сообществ в Telegram. Такие вечеринки — хорошая возможность познакомиться с другими участниками конференции в неформальной обстановке. Например, мы встретили там организатора Mobius и команду разработчиков, которые делают приложение для авиапутешественников App in the Air.

Конференция проходила под лозунгом «No parking». Google организовала бесплатные автобусы от и до самых популярных отелей в окрестностях, а также выделила промокоды на сервис такси Lyft (американский конкурент Uber).

Из Badoo нас было пять разработчиков. Поехали все, кто выиграл возможность купить билет. Доклады шли в шесть—десять потоков, и часто мы разделялись, чтобы охватить больше интересных тем.
Читать дальше →

Custom Bottom Sheet: как это должно работать

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

Предисловие


Не так давно я прочитал статью о Bottom Sheet'e и, посовещавшись с коллегами, принял решение внедрить данную штуку в наше приложение. Потратив достаточно часов с целью научить Bottom Sheet выезжать в несколько шагов (like Google Maps), я осознал его тупость и ограниченность.

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

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

Время на прочтение4 мин
Количество просмотров5.1K
В новом дайджесте мы разбираемся с гармонией скриптов, бесплатными звуками для приложений, прошедшим конкурсом Telegram и остатками I/O, водой, игровым рабством и самыми скачиваемыми приложениями в мире и из России.

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

Безопасность со вкусом Google

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


Отгремел Google I/O 2019 и пришла пора переписывать проекты на новую архитектуру изучать новинки. Так как я интересуюсь безопасностью мобильных приложений, то в первую очередь обратил внимание на новую библиотеку в семействе JetPack — security-crypto. Библиотека помогает правильно организовывать шифрование данных и при этом ограждает разработчиков от всех нюансов, которые сопровождают этот процесс.

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

Гармония скриптов внутри Android приложения

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


Думаю, многие читатели хаба по android-разработке слышали, что Java позволяет в рантайме через ClassLoader модифицировать dex уже установленного приложения. С помощью этого можно в рантайме подгружать скомпилированный код и использовать его. Но Google к таким махинациям относится, мягко говоря, не слишком лояльно и банит уличённые в подобном приложения.

Однако есть альтернативные способы загрузки и выполнения скриптов на мобильном устройстве. За подробностями под кат!
Читать дальше →

Вклад авторов