Обновить
256K+

Android *

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

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

Delight SQL Viewer: отладка SQLDelight-базы прямо в приложении

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

Привет! Хочу поделиться инструментом, который значительно упростит жизнь тем, кто использует SQLDelight для работы с базами данных в Kotlin Multiplatform-проектах. Этот инструмент называется Delight SQL Viewer.

Читать далее

Мобильная разработка за неделю #577 (24 февраля — 2 марта)

Время на прочтение4 мин
Охват и читатели1.7K
В новом дайджесте укрощение анимаций и оживление смартфона, эффективный бэкграунд, уродливый код и глупые вещи, потери денег от плохого дизайна, индекс цифрового рынка за 4 квартал, Gemini Code Assist для всех и многое другое. Заходите!

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

Эффективный бэкграунд: организация стабильной фоновой работы в связке двух мобильных медтех приложений

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

Всем привет! Меня зовут Антон, я — ведущий мобильный разработчик в компании DD Planet. В статье я поделюсь опытом нашей команды по организации стабильной фоновой работы в мобильном медтех-приложении, предназначенном для взаимодействия с медицинским оборудованием.

Читать далее

Чем полезен Server Driven UI

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

Привет! Меня зовут Олег Иванов, я руководитель мобильной разработки в Московском кредитном банке. Сегодня поговорим о Server Driven UI вот по такому плану:

что это вообще за технология

из чего она состоит

рассмотрим наши подходы к ее реализации

Начнем с терминологии:

SDUI (Server Driven UI) — это пользовательский интерфейс, управляемый сервером.

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

Читать далее

Как оживает смартфон: Android на старте

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

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

Что же на самом деле происходит в момент загрузки? Какие этапы преодолевает система от простого нажатия кнопки включения до появления интерфейса? И как устройство готовится к полноценной работе?

Вместе с Android-разработчиком Артёмом разберёмся, что скрывается под капотом Android и проследим процесс его запуска. Не пропустим ни шагу!

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

Мобильная разработка за неделю #576 (17 — 23 февраля)

Время на прочтение4 мин
Охват и читатели2.2K
В этом выпуске учет времени с помощью библиотеки Charts и анализ Android-фич на доступность и внедрение accessibility, что такое перерисовка и как с ней бороться, реализация кастомной прокрутки и бесплатный сервис Build Distribution, «Uber с пушками» от Никиты Бира, LLM на реальных задачах фриланса и многое другое. Заходите!

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

Неожиданное использование «Частного пространства» (Private space) в Android 15

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

Используем "Частное пространство" (Private space) в Android 15, как второй профиль для приложений, которые слишком много просят

Читать далее

R8: Шакалья работа (уменьшение apk через правки R8)

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

По умолчанию для минификации имени класса в R8 используются цифры и английский алфавит. Но что будет если вместо трех символьных строк, которые будет занимать три байта, использовать один двухбайтовый символ?

Читать далее

Очумелые ручки: как я превратил старый смартфон в игровую консоль с возможностью звонить

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

Осторожно: эта статья точно будет хабратортной, ведь в ней мы смоделируем, спроектируем и запрограммируем своё видение N-Gage 2! Я очень старался сделать статью интересной даже для тех читателей, кто не разбирается в теме 3D-печати и программирования микроконтроллеров :-)

Я очень люблю ретро-игры и игровые консоли. Иногда я люблю позалипать в какую-нибудь классику с NES, Sega Mega Drive или, например, PSP. Однако особое место в моём сердечке занимает игровой телефон Nokia N-Gage, который, к сожалению, не получил продолжения, как и его более современный собрат — Sony Ericsson Xperia Play. Недавно я пересматривал свою коллекцию девайсов и обнаружил на полочке Galaxy S4 Mini. И тут я подумал: а что если...

Читать далее

Шпаргалка: как выглядит Kotlin Coroutine без макияжа

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

При создании и запуске корутины компилятор создаст специальный класс

1.      Continuation

Continuation (продолжение) — это объект, который представляет собой состояние выполнения корутины и позволяет возобновить её выполнение после приостановки.

Continuation — это механизм, который позволяет Kotlin Coroutines приостанавливать и возобновлять выполнение. Он является ключевым элементом реализации suspend-функций и асинхронного программирования в Kotlin.

Когда корутина приостанавливается (например, при вызове suspend-функции), её состояние сохраняется в объекте Continuation. Этот объект содержит информацию о том, где именно корутина была приостановлена, и как её можно продолжить после завершения асинхронной операции.

В Kotlin Continuation — это интерфейс, который выглядит следующим образом:

Читать далее

Kotlin Coroutines под капотом: CoroutineContext и CoroutineScope

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

Structured Concurrency это одна из главных фишек Kotlin Coroutines, позволяющая оперировать иерархиями корутин через единый интерфейс, благодаря такой организации можно легко отменить сразу все корутины, имея ссылку только на самый высокоуровневый объект. В этой статье я разберу две базовые штуки на основе которых строится Structured Concurrency - CoroutineContext и CoroutineScope. Поехали!

Читать далее

Анализ Android-фич на доступность и внедрение accessibility в процесс разработки

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

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

Читать далее

Как мы сокращали размер JSONʼа в SDUI

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

Привет, хабрачитатели! Server-Driven UI (SDUI) — это подход, при котором сервер управляет отображением интерфейса на клиенте. Важное преимущество SDUI — возможность внедрять изменения без выпуска новых версий приложений. Но это же преимущество есть его недостаток, ведь передача всех данных по сети зависит от качества соединения и увеличивает объём данных. 

Качество связи мы не можем контролировать, а вот уменьшить количество передаваемой информации посредством сокращения JSON, — вполне.

Читать далее

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.1K
В новом дайджесте дизайн-система в iOS за 5 минут и параллелизм в SQLite для Android, детские ошибки при сборке и дорожная карта перехода на KMP, ошибка во встроенных покупках ценой в Final Fantasy Crystal Chronicles, техосмотра автомобилей с помощью ИИ и многое другое. Подключайтесь!

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

Тестовые джуна (Android)

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

В 2022 г. осенью я решил, что я хочу поменять профессию и стать Android‑разработчиком. К тому моменту я имел более 6 лет опыта работы в области охраны труда, в основном, на производственных предприятиях.

Мой друг в тоже время начал учиться на курсах Яндекс Практикума, также на Android‑разработчика и объяснил как устроено обучение. Я начал обучение в Практикума в конце октября 2022 г. и закончил его в декабре 2023 г.

Это было непростое время. Я приезжал на работу каждый день к 7:00 и тратил 2 часа на обучение, после начинался мой рабочий день. После работы я приезжал домой, ужинал и остаток времени до сна я посвящал обучению.

В декабре 2023 г. я решил, что я готов начинать искать полноценную работу Android‑разработчиком. Я откликался только на те вакансии, в которых было написано, что не требуется опыт. Если кратко: 19 откликов (сюда не входят отклики на стажировки крупных компаний), 5 тестовых заданий, 3 оффера. Из 3 офферов: от одного я отказался из‑за условий (черная небольшая з/п, я — единственный андроид‑разработчик и т. п.).

Первый адекватный оффер я принял и перед выходом на него я получил второй оффер. В итоге на месте по первому офферу я проработал 2,5 дня (с 01 апреля по 03 апреля 2024 г.) и по собственному желанию ушёл в компанию приславшую второй оффер.

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

Читать далее

Тайны рейтингов: как добиться стабильно высокого рейтинга Android-приложения?

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

По данным исследований (Data.ai, Sensor Tower, Statista), Android-приложения имеют на 10-30 % более низкие оценки, чем iOS-аналоги. Например, приложение может получить 4,5 на iOS и 3,5-4,0 на Android.

Меня зовут Анастасия Симонова, я Android-разработчик в команде Домклик. Поделюсь нюансами разработки под Android и предложу некоторые решения для избежания проблем в будущем. Готовы? Приступим!

Читать далее

SAST приложений под Android: делаем код безопаснее

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

Безопасность мобильных приложений — один из ключевых аспектов разработки, который нельзя оставлять без внимания. Уязвимости в коде могут привести к утечке данных, компрометации системы и другим серьёзным последствиям. Чтобы обнаружить и устранить риски ещё на этапе написания кода, разработчики используют SAST (Static Application Security Testing) — метод статического анализа безопасности.

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

Читать далее

Управление зависимостями: как работать с Koin scopes в Jetpack Compose Navigation

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

Привет, Хабр! Меня зовут Артем и я автор и ведущий YouTube и Telegram каналов Android Insights.

В этой статье я рассмотрю, как использовать Koin scopes в связке с Jetpack Compose Navigation, чтобы эффективно управлять зависимостями на разных уровнях навигационного графа.

Читать далее

Склеиваем Flutter и Live Activities: Часть 1 – Android

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

Привет хабр!

Меня зовут Липатов Богдан, я Middle Flutter-разработчик, автор блога и статей на своем сайте, где мои материалы и инсайты публикуются в первую очередь.

Замечали ли вы удобные уведомления, которые показывают всю важную информацию прямо на экране блокировки? Например, через сколько приедет такси, где сейчас курьер с заказом или сколько времени осталось до завершения задачи. Да? Я тоже! В этой статье я покажу и расскажу как создать такое же при помощи наших рук и Flutter.

Читать далее

Автоматизация сборки и релиза Android-приложений через GitHub Actions

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

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

Читать далее