Все потоки
Поиск
Написать публикацию
Обновить
318.77

Android *

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

Привет хабр!

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

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

Читать далее

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

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

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

Читать далее

Развитие Android глазами разработчика

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

Меня зовут Андрей Данилов, под Android начал разрабатывать в далеком 2012 году. Успел поработать примерно везде — в крошечном стартапе, маленькой продуктовой компании, аутсорсах и крупных компаниях, таких как Авито, Ситимобил, Яндекс. Успел выступить примерно на десятке митапов и конференций. Сейчас член Программного комитета конференции Apps conf X. В данный момент руковожу парой команд в Т-Банке.

Довольно много времени прошло с 2007 года, когда Android стал доступен для разработчиков. С тех пор прошло почти 18 лет, за это время изменилось примерно все — железо стало мощнее, интернет быстрее, IDE умнее, а проекты сложнее. Предлагаю оглянуться назад и посмотреть что же именно изменилось с тех пор для разработчиков.

Читать далее

Детские ошибки при сборке Gradle-приложений

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

Привет! Я Никита, сейчас разрабатываю мобильный банк под Android, много работаю с Gradle, и мне это нравится.

Сборка приложений для меня уже рутина — на пет-проектах и на работе. Но однажды я задумался, а можно ли ускорить сборку? Если да, то как и насколько: на доли секунд или это будет ощутимо? Как именно ускорять, ведь есть куча версий Gradle, плагины, бинарный интерфейс и всё такое?

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K
В этой подборке рисуем карты с помощью Swift Charts и графики сна с помощью Compose, разбираемся с Swift Concurrency и плагинами Android Studio, бесплатными инструменты для создания иконок, трендами мобильных приложений и многим другим. Подключайтесь!

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

Что мы делали в 2024-м? Видео — бесплатно и без регистрации

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров645


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

Будет много видео 😁

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

Современные подходы к управлению UI: low-сode & Backend-Driven UI

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

Привет, меня зовут Михаил Шевченко. В Авито я проектирую и разрабатываю backend low-code платформы Bricks. В этой статье рассказываю о том, почему в Авито было принято решение развивать собственные low-code-решения и Backend-Driven UI, объясняю их устройство и делюсь достигнутыми результатами.

Читать далее

Безопасное обновления состояния в ViewModel

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

Это краткая заметка о подходе, который я выработал для себя, чтобы обновлять состояние экрана при использовании MVI-like паттерна в ViewModel.

Сразу оговорюсь, что классический "полноценный" MVI подразумевает использование редьюсеров, которые решают часть проблем, описанных в этой заметке, но сугубо на мой вкус, этот подход заставляет писать много бойлерплейтного кода.

Читать далее

Плагины: автоматизация разработки в продуктах JetBrains (на примере Android Studio)

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

Замечали, что при написании кода, очень часто приходится выполнять одни и те же действия, например, создавать одни и те же файлы, проводить одну и ту же настройку для разных проектов и тд? Это натолкнуло меня на мысль: «Можно ли упростить процесс за счёт автоматизации?».

Изначально была идея создать десктопное приложение для упрощения настройки и выполнения рутинных задач, однако возникло ограничение — Android Studio не предоставляет открытого API. Это очень усложнило бы работу, т.к. пришлось бы вручную прописывать работу с файлами, использование горячих клавиш и тд, поэтому следующим вопросом было: «Как автоматизировать разработку непосредственно внутри самого Android Studio?» Ответ пришел сам собой — использовать плагины.

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.2K
В новом дайджесте рассказываем о том, как Android управляет памятью, и смотрим под капот потокам, объясняем нюансы разработки PWA для Банка и программируем открытиями, исследуем удаление приложений в 2024 году, смешиваем цвета, ищем путь к стабильности и многое другое. Подключайтесь!

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

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

Vivaldi 7.1 для Android и iOS — стрельба дуплетом

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.6K

Всем привет!

Не прошло и недели (вообще-то прошло), а мы уже выпускаем новый стабильный релиз Vivaldi 7.1 сразу для двух платформ - для Android и iOS. Возможно, это не очень хорошая идея - смешивать две аудитории читателей, но мы решили просто показать пользователям двух довольно разных платформ, что на самом деле не такие уж они и разные. По крайней мере, у себя в Vivaldi мы стараемся эту разницу максимально убрать. Хотя она ещё и имеется, но об этом - чуть ниже.

Читать далее

CI для мобильной разработки или как мы используем fastlane

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

Хороший CI/СD — залог успешной реализации и быстрой выкатки проектов команды. Но нам приходилось поддерживать две версии CI и делать много ручной работы при обновлениях.

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K
В новом выпуске распознавание номеров телефонов для пикника и первая бета Android 16, не всеобъемлющее руководство по тестированию пуш-уведомлений и 5 лет React Native в Shopify, технический гайд по сторис, годовой отчет “Состояние мобильного рынка в 2024 году” от Sensor Tower и многое другое. Подключайтесь!

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

RuStore не так уж и плох, как PirateStore

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

Могут ли современные тренды превратить keygen (Генератор ключей) в легальный инструмент, доступный для скачивания из любого Android или iPhone маркетплейса?!

Выгодно ли тому же ruStore размещать у себя пиратский контент?!

Как можно докатиться до Android разработчика, будучи разработчиком Windows приложений?!

Читать далее

Как синтаксический сахар Kotlin может сломать вам логику работы приложения

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

Как использование object и data class сломало работу моего приложения и какие уроки я вынес про синтаксический сахар Kotlin и IDEA, которая так сладко предлагает замены.

Подробности

Погружение в мир Lint'a в Android-проекте (часть 2)

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

Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим.

Читать далее

Большое обновление CV-возможностей для фреймворка Simple

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

Добрый день! Представляю большое обновление CV-возможностей (ActiveCV 2.0) андроид-фреймворка Simple, о котором писал тут https://habr.com/ru/articles/720610/. Теперь ActveCV существует не параллельно разработке на обычных экранах, а является элементом экрана, таким как кнопка или надпись. Это не просто подход к дизайну, а совершенно другие возможности работы – совмещение логики экранов и обработки видеопотока.

Читать далее

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