Обновить

Мобильная разработка

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

Что скрывает Robolectric и почему это важно знать?

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

Представьте, что можно тестировать android-код без эмулятора, запуская тесты за секунды вместо минут. Именно это обещает Robolectric — библиотека, которую либо любят, либо ненавидят, но точно не игнорируют. 

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

Читать далее

Offline First в мобильных приложениях. Кэширование

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

Привет, Хабр! Это Ахмед Шериев, сооснователь стартапа VoxOps, а сегодня — еще и гостевой автор блога Friflex. Моя статья — про опыт разработки офлайн-приложений. 

Я делал офлайн-поддержку в приложениях на самых разных языках. Как вовремя и успешно, так и с факапами. Например, обещал за две недели внедрить офлайн, а потом появлялись скрытые кейсы, и разработка затягивалась до месяца, двух, трех… 

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

Я внедрял поддержку offline как в роли разработчика, так и в роли руководителя и директора по разработке. Поэтому тема мне хорошо знакома с обеих сторон. Кто помнит, с ней я выступал на CrossConf.

Читать далее

Хочешь стать техлидом? Возможно, что не стоит

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

Привет! Меня зовут Абакар, я работаю главным техническим лидером разработки в Альфа-Банке.

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

Читать далее

Разработали мобильное приложение для криптобиржи EVEDEX — функциональное решение для быстрой и безопасной торговли

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

Создать мобильное приложение для криптобиржи — всегда вызов. Особенно, если биржа сочетает в себе принципы DEX и CEX, предлагает встроенные кошельки, смарт-аккаунты и управление средствами без посредников. Мы в CleverPumpkin взялись за этот челлендж и разработали EVEDEX — удобное и безопасное приложение для криптотрейдинга.

Читать далее

Рецензия на книгу «Elasticsearch в действии, 2-е издание»

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

Книга Elasticsearch в действии. Второе издание — это подробный (~650 страниц в русском переводе) путеводитель по созданию масштабируемых поисковых систем на базе Elasticsearch. Второе обновленное издание знакомит с архитектурой, API и реальными сценариями применения Elasticsearch — от полнотекстового поиска до визуализации данных и машинного обучения. Книга — отличный выбор для начинающих разработчиков, но наверняка может быть полезна и для практикующих специалистов. 

Читать далее

Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 1

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

Flutter & GitLab CI/CD. Подготовка и настройка физической машины

В мире мобильной разработки, где скорость и стабильность доставки приложений определяют успех, выбор инструментов для автоматизации становится особенно важным. Работая мобильным разработчиком в TAGES более пяти лет, я убедился, что использование self‑hosted решений дает значительные преимущества в гибкости, надежности и контроле над процессами. Одним из таких мощных инструментов является GitLab — платформа, которая позволяет не только управлять кодом, но и настраивать полноценные CI/CD‑процессы.

Эта статья станет первым шагом на пути к полной автоматизации сборки и доставки Flutter‑приложений. Мы разберем, как превратить вашу физическую машину в надежный инструмент для автоматизации. В конце статьи у вас будет готовая машина, которая сможет запускать и обрабатывать задачи из GitLab.

Читать далее

Delta Chat. Короткая инструкция в картинках

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

Все мы являемся экспертами в той или иной области инженерно‑технического знания. Но когда банк обновляет интерфейс пользователя, мы все примерно одинаково ищем, где там теперь оплата по QR‑коду. Ровно также, понимая суть приложения в целом, мы можем потратить непропорционально большое время на поиск той самой «any key», которую нужно «press».

В 2019 году появилось приложение Delta Chat — мессенджер, работающий поверх почтовых протоколов. Нельзя сказать, что Delta Chat — это вершина эволюции пользовательского интерфейса или какая‑то серебряная пуля против стремительно развивающейся балканизации Интернета. Но определённые доводы «за» у использования этого приложения есть.

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

Как отправить e‑mail в 2025 году

Как я писал проводник для Wear OS и что из этого вышло

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

Как я писал проводник для Wear OS и что из этого вышло

О чём тут пойдёт речь:

- Почему я решил этим заняться
- Как я разрабатывал приложение (в общих чертах)
- Обманчивые гайдлайны Google и о том, как я пытался победить банальные (на первый взгляд) проблемы

Читать далее

BundledSQLiteDriver: новый взгляд на SQLite в Android и Kotlin Multiplatform

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

BundledSQLiteDriver из библиотеки androidx.sqlite — это специальная сборка встраиваемой СУБД SQLite от команды разработчиков Android Jetpack, предназначенная для использования в Kotlin Multiplatform проектах. В этой статье мы рассмотрим её особенности.

Читать далее

Dart / Flutter — применяя zero / empty объекты ко всему

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

Больше техническая заметка, чем статья, поэтому постараюсь изложить мысли как можно кратче.

Приходя из JS/TS мира, когда я впервые написал на Dart, самой прекрасной вещью, помимо многих было использование функций isEmpty или isNotEmpty для String, List, Map, и так далее. Это было невероятно просто и прекрасно не писать каждый раз  .length == 0.

Также, очень полезным паттерном были empty/zero значения как Duration.zero, Offset.zero, и другие.

Спустя время, я нашел привычку использовать похожий принцип для работы с различными случаями, а также пришел к мысли - что если мы используем такие значения для большей части объектов, избавляясь от null (не для всех случаев, но тем не менее)? Немного поискав, нашел похожий паттерн в Go и других языках, и продолжил думать.

Читать далее

Как правильно организовать проект c модульной архитектурой в iOS-разработке

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

Привет, Хабр! Меня зовут Алексей Григорьев, я iOS-разработчик в МТС, работаю над продуктом Membrana — это тариф + мобильное приложение для управления приватностью в Сети. Сейчас в iOS-приложениях на первое место постепенно выходит модульная архитектура. Она позволяет создавать гибкие и масштабируемые проекты, которые легко сопровождать и развивать. Особенно это актуально при увеличении кодовой базы и разрастании функциональности, когда поддержка монолита усложняется.

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

В этом материале я расскажу про ключевые моменты модульной архитектуры в iOS-приложениях, инструментах для ее внедрения и применения в наших проектах.

Читать далее

С заботой о комфортном просмотре: как команда VK справляется с высокой нагрузкой на видеоплеер на Android-устройствах

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

По итогам четвёртого квартала 2024 года только в VK Видео количество суточных просмотров выросло до 2,7 миллиарда, а месячная аудитория — до 72,2 миллиона человек. Часть этих просмотров приходится на Android-устройства.

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

Читать далее

Выжимаем максимум из код-ревью и спасаем нервные клетки

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

Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они избегают его. Или участвуют в нём неэффективно.

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

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

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

TutOn: Нежданное путешествие, или как мы в 11 классе сделали мобильное приложение для помощи учителю

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

Представьте ситуацию: май месяц, экзамены уже на носу, все вокруг готовятся к ЕГЭ... А что, если добавить к этому разработку приложения, победу в конкурсе и публикацию в RuStore? Звучит как безумие? Возможно. Но именно так мы провели последний год перед поступлением. И вот наша история!

Читать далее

Мобильная разработка: что происходит на рынке и что важно знать в 2025 году

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

Последние несколько лет мобильная разработка в России пережила серьёзные изменения. После роста в 2020–2021 годах рынок замедлился: компании сократили наём, а российские разработчики столкнулись с ограничениями в App Store и Google Play. 

Мы изучили исследования, посмотрели, как изменился спрос на специалистов, и пообщались с мобильными разработчиками. В статье разбираем, что происходит с iOS- и Android-разработкой в 2025 году, какие технологии в тренде и что нужно уметь, чтобы оставаться востребованным. 

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

Читать далее

Шпаргалка: Kotlin suspend функции

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

Suspend-функции — это специальные функции в Kotlin, предназначенные для работы с корутинами. Они позволяют приостанавливать выполнение кода без блокировки потока, что делает их идеальными для асинхронных операций (например, сетевых запросов, работы с базой данных или долгих вычислений). Ключевое слово suspend указывает компилятору, что функция может быть «приостановлена» и позже возобновлена, не занимая поток исполнения.

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

Пока звучит путанно, но на примерах всё встанет на свои места.

Пример объявления:

Читать далее

Синхронизируем скроллы в Sliver-списках

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

Всем привет, на связи Иван, тимлид и ведущий Flutter-разработчик Surf.
Сегодня потрогаем тему синхронизации двух списков при скролле и раскроем важные моменты при её реализации.

Спойлер: мы попробовали разные варианты решения и нашли оптимальный.

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

Книга «Основы Dart: Community edition» 1-е издание

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

Привет, Хабр!

Вот и прошел год с момента выхода второго издания электронной версии «Основы Dart» и его анонса на Хабре. За это время книга успела разжиться печатной версией (издательство «Питер»), парочкой дополнительных глав и сквозным проектом. Меня много раз спрашивали по поводу того, буду ли оставлять второе издание в открытом доступе, обновлять его, если буду обновлять, то как и т. д. Некоторые даже шептали сладостные речи только о платном распространении книги. Поэтому, считаю, что настала пора поставить все точки над «Ё».

Читать далее

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

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

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

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

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

Читать далее

Как бесплатно разослать всем членам ТСЖ персональное сообщение о завтрашней уборке снега через WhatsApp

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

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

WhatsApp выглядит привлекательным способом оповещения. К примеру, в нашем ТСЖ недавно создали WhatsApp-группу и предполагается что WhatsApp есть у всех жителей. А ещё бывают люди, подключающие домовой чат в качестве эпизодического развлечения: отключают для него уведомления и просто копят непрочитанные.

Читать далее