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

Android *

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

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

Clean Decomposition

Время на прочтение4 мин
Количество просмотров5.4K
В данной статье я хочу рассмотреть подход к разбиению задач на подзадачи при использовании Clean Architecture.

С проблемой декомпозиции столкнулась команда мобильной разработки компании NullGravity и ниже то как мы ее решали и что в итоге получилось.
Читать дальше →

Project Mainline в Android 10

Время на прочтение3 мин
Количество просмотров14K
Вчера вышло очередное обновление ОС для мобильных устройств от Google. Одним из главных нововведений Android 10 стал «Project Mainline». Попробую разобраться что это, для чего и как работает.
Читать дальше →

Как я сделал кастомный прерыватель Okhttp через котлиновские корутины

Время на прочтение4 мин
Количество просмотров4.7K
Начнём с постановки задачи.

  1. Надо в каждом запросе в header’s отправлять токен и id юзера
  2. Надо из каждого ответа вытаскивать из headers новый токен и id юзера
  3. Полученные данные надо сохранять

Библиотека для серверного взаимодействия – Retrofit. За многопоточность отвечают корутины.
Задача не сложная, надо просто добавить прерыватель Okhttp client в каждый запрос. Полчаса и всё готово, всё работает, все рады. Но мне стало интересно, а нельзя ли сделать прерыватель без Okhttp клиента?
Читать дальше →

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

Время на прочтение3 мин
Количество просмотров5.6K
В новом дайджесте боремся с потерями пушей, разбираемся с музыкой Apple, изучаем работу звука в Android, экономим деньги при разработке игры, ищем приложение Росстата, отличаем плохой дизайн от хорошего и даже пытаемся понять, безопасен ли будет шарф от Xiaomi.

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

Мобильные отчеты на Oracle BI EE 12c — на раз, два, три. Методология из курса Oracle BI EE 12c CAD

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров2.8K
У многих компаний — пользователей продукта Oracle BI 12c есть общая проблема: их разработчики по разным причинам не хотят связываться с мобильной разработкой отчетов.
На наших курсах по BI этот вопрос в новой версии был освещен достаточно полно, поэтому мы выкладываем фактически готовый рецепт, как за несколько часов можно перевести набор существующих отчетов в мобильное приложение.
Об этом — несколько слов и много картинок.
Мы не повторяем общего момента, связанного с необходимостью установки мобильного клиента из App Store или Google Play, так как считаем это естественным шагом. У каждого из этих приложений есть своя история и группа поддержки, на страницах магазинов есть отзывы и рейтинг. И в App Store, и в Google Play есть и клиенты к другим продуктам Oracle.



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

FunCorp Mobile Hiring Event

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


Мы рады анонсировать наш четвёртый Hiring Event, приуроченный ко Дню программиста! На этот раз предлагаем принять участие iOS и Android-разработчиков. Кроме iFunny у нас развивается ряд новых проектов, поэтому мы решительно пополняем мобильные команды.
Читать дальше →

Сборка Android-проекта в Docker-контейнере

Время на прочтение4 мин
Количество просмотров26K
Разрабатывая проект под платформу Android, даже самый небольшой, рано или поздно приходится сталкиваться с окружением для разработки. Кроме Android SDK, необходимо чтобы была последняя версия Kotlin, Gradle, platform-tools, build-tools. И если на машине разработчика все эти зависимости решаются в большей мере с помощью Android Studio IDE, то на сервере CI/CD каждое обновление может превратиться в головную боль. И если в web-разработке, решением проблемы окружения стандартом стал Docker, то почему-бы не попробовать решить с помощью него аналогичную проблему и в Android-разработке…
Читать дальше →

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

Время на прочтение3 мин
Количество просмотров5.4K
В нашей еженедельной подборке PWA в Google Play, запись нажатий, декларативный UI, изменения логотипа и нумерации версий Android, история создателя FBReader, отслеживание рук и многое другое!

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

Подготовка приложения к Android Q. Часть 2

Время на прочтение5 мин
Количество просмотров5.7K
Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Базовый курс». Также напоминаем о том, что мы продолжаем набор на расширенный курс «Специализация Android-разработчик»




О конфиденциальности и безопасности можно прочитать в первой части статьи.

2) User Experiences


а) Навигационные жесты




В Android Q Google попытался объединить все жесты навигации с помощью новой навигационной системы жестов, которая заменила плавающую навигационную панель (назад, домой и последние приложения).

  • На что влияет: если ваше приложение содержит жесты, то они могут конфликтовать с системными жестами. Это повлияет на все приложения, работающие на Android Q (независимо от целевого SDK), поскольку первыми будут обрабатываться системные жесты.
  • Рекомендуемый подход: Поскольку плавающая панель навигации фактически исчезла, рекомендуется в полной мере использовать доступное новое экранное пространство и обеспечить пользователям эффект погружения.
Читать дальше →

Chaos engineering

Время на прочтение11 мин
Количество просмотров5.7K
Последнее, что хочется увидеть во время дебага кода — это хаос. Но что если этот хаос управляемый и запущен руками самого разработчика? Зачем умышленно устраивать турбулентность в слаженной работе своего приложения, как добиться душевного спокойствия при релизе важных фич и где точно вам пригодится практика хаос-инженерии, читайте в разговоре ведущих подкаста AppsCast с Павлом Осиповым PavelOsipov.


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

Фантастические плагины, vol. 2. Практика

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

Здесь можно почитать первую статью с теорией плагиностроения.


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

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

Edge-to-edge в Android: делаем правильно

Время на прочтение8 мин
Количество просмотров22K
Прошедший Google I/O 2019 принёс массу нашумевших новинок, многие из которых будут влиять на индустрию мобильной разработки в ближайшие годы. Не менее интересно было следить за зарождающимися трендами. Сначала в историю ушли механические клавиши управления, экраны смартфонов становились всё больше, а боковые рамки всё незаметнее. На смену экранным системным кнопкам пришли жесты, оставляя всё больше пространства для потребления контента. Приложения отображаются на всей видимой поверхности дисплея, от нижней до верхней рамки, не стесняя себя условными границами статус-бара и навигационной панели. Мы на пороге эры Edge-to-Edge.


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

История успеха игры Last Day on Earth от волгоградской студии Kefir

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

Привет, Хабр! Сегодня мы разбираемся, как волгоградская гейм-студия Кефир сумела сломать стереотипы о мобильных играх, перейти порог в 100 миллионов скачиваний и завоевать международное признание пользователей Google Play. О том как создавалась студия, как устроена работа в ней и в чем секрет успеха Last Day on Earth читайте под катом.

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

Книга «Kotlin. Программирование для профессионалов»

Время на прочтение7 мин
Количество просмотров29K
image Привет, Хаброжители! Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использовать его возможности, а также позволяют освоить среду разработки IntelliJ IDEA от JetBrains.

Неважно, опытный вы разработчик, который хочет выйти за рамки Java, или изучаете первый язык программирования. Джош и Дэвид проведут вас от основных принципов к расширенному использованию Kotlin, чтобы вы могли создавать надежные и эффективные приложения.

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

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

Время на прочтение4 мин
Количество просмотров4.2K
В новом дайджесте мы обсуждаем подготовку приложений к iOS 13 и Android Q, работу протокола QUIC, отсутствие инновационных приложений в Google Play и в целом его работу, магазин приложений от Huawei и многое другое. Присоединяйтесь!

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

Nota: Алгоритм выбора и ротации треков

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


Это продолжение предыдущей статьи об умном радио, не умирающем при потере Интернета. Похоже, что первый блин был скорее комом: большинству пользователей приложение не понравилось. Критика в основном разделилась на два фронта:


  1. Одни и те же треки очень часто повторяются, а новые появляются очень редко.
  2. Нету возможности ни выбрать любимые жанры, ни минусовать негодные треки, чтобы не приходилось их мучительно пропускать.

Вторая проблема сильно усугублялась первой, поскольку пропуски очень часто приводили к повторам всё тех же треков, пусть и в другой последовательности.


Рад сообщить, что мне удалось решить первую проблему (обновление уже в Play Store). Под катом будет описание выбранного алгоритма выбора и ротации треков, а также сути исправления, которое, как я ожидаю, должно кардинально улучшить пользовательский опыт.

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

(Не очень) скрытые издержки общей кодовой базы iOS и Android

Время на прочтение5 мин
Количество просмотров6.7K
До недавнего времени у Dropbox была техническая стратегия использовать общий код C++ для мобильных приложений iOS и Android. Идея понятна: написать код один раз на C++ вместо его дублирования отдельно на Java и Objective C. Мы приняли эту стратегию ещё в 2013 году, когда группа инженеров мобильной разработки была относительно небольшой и приходилось быстро развивать продукт. Такое решение позволило выдавать большой объём кода как на Android, так и на iOS силами маленькой команды.

Теперь мы полностью отказались от этой стратегии в пользу родных языков каждой платформы (в первую очередь Swift и Kotlin, которые не существовали, когда мы начинали). Решение связано с (не очень) скрытыми издержками на совместное использование кода.

Все проблемы вытекают из главного: оверхед оказался больше, чем просто написать код два раза.
Читать дальше →

Подготовка приложения к Android Q. Часть 1

Время на прочтение5 мин
Количество просмотров9.8K
Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Базовый курс». Также напоминаем о том, что мы продолжаем набор на расширенный курс «Специализация Android-разработчик»





Мы находимся на 10-м году разработки Android (Android Q должен быть версией 10.0). В соответствии с Beta 4, официально у Android Q 29-й уровень API. Несмотря на то, что уже есть Beta 5 и ожидается Beta 6, API был помечен как окончательный, и сейчас самое время посмотреть, как Android Q повлияет на приложения и какие изменения нужно внести, чтобы полностью поддерживать Android Q.
Читать дальше →

Дзен изолированных компонентов в Android-архитектуре

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


Несколько лет назад мы в Badoo начали использовать MVI-подход к Android-разработке. Он был призван упростить сложную кодовую базу и избежать проблемы некорректных состояний: в простых сценариях это легко, но чем сложнее система, тем сложнее поддерживать её в корректном виде и тем проще пропустить баг. 

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

Наш коллега Zsolt Kocsi (Medium, Twitter) из лондонского офиса рассказал, каким образом с помощью MVI мы строим независимые компоненты, которые легко переиспользовать, какие преимущества мы получаем и с какими недостатками нам пришлось столкнуться при использовании этого подхода.
Читать дальше →

Как просто подключить и начать печатать через портативный Bluetooth принтер EPS/POS в приложении Xamarin Android

Время на прочтение2 мин
Количество просмотров4.1K
С чего же мы начнём?

Добавим в проект Nuget пакет для работы с EPS/POS командами. Для этого откройте Package Manager Console и добавьте Zebra.Printer.SDK командой

Install-Package Zebra.Printer.SDK

По сути, не имеет значения какую модель принтера вы используете и кто производитель. Вам нужно убедиться в том, что принтер поддерживает работу с EPS/POS командами (их большинство). В этом случае библиотека сможет работать с ним без проблем.

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

В первую очередь добавим разрешения в файл AndroidManifest.xml:

<manifest ....>
...
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...
</manifest>
Читать дальше →

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