Обновить

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

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

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

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

В новом дайджесте простые синтаксические приёмы и Android Developing через вайбкодинг, холодный старт Android-приложения и MVVM-курильщика, разработка браузера для iPad, тренды UX/UI-дизайна 2026, железо для ИИ и многое другое. Подключайтесь!

Читать далее

Код в машине. Android Automotive: С чего начать и куда жать

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

Мир полон отличных и не очень мобильных приложений, ваш код работает на миллионах девайсов в карманах пользователей. Но это все еще «малый экран». А как насчет того, чтобы ваш софт крутился на дашборде Polestar или Volvo?

Раньше разработка под Automotive была похожа на закрытый клуб масонов: свои проприетарные системы, SDK, которые выдавали только по подписке кровью, и документация которую походу специально шифром непонятным на случай оккупации писали. Но потом пришел Google, и понял что тут он еще не зарабатывал. Так появился Android Automotive OS (AAOS).

И нет, это не тот Android Auto - зеркало который транслирует карты с вашего телефона на экран машины. Давайте сразу это запомним ибо путаница здесь колоссальная.

Читать далее

Идентификатор пакета. Боль кроссплатформы

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

Я очень люблю всякие курсы программирования для детей, где маленьких мальчиков и девочек учат программировать. Им обычно говорят слова типа: «Ты всё сможешь, только попробуй. У тебя обязательно получится. Ты станешь программистом. Ну или, на худой конец, майором-программистом, зато Дубай увидишь».

Как правило, на таких курсах детям не объясняют самое главное. Ты пожизненно будешь рабом каких-то тупых соглашений, на которые, к сожалению, ты повлиять вряд-ли сможешь.

Читать далее

MVVM-курильщика: почему ваша ViewModel — это помойка на 2000 строк, и как это исправить

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

Если вы когда-нибудь открывали проект, где ViewModel превратилась в свалку логики, навигации и форматирования дат - поздравляю, вы видели MVVM-курильщика. Рассказываю, почему «чистый» MVVM из учебников рассыпается в бою, как превратить ViewModel в машину состояний вместо мусорного ведра, и почему import UIKit в вашей VM - это диагноз. Без воды, с примерами кода и болью. Эта статья - не очередной пересказ документации. Вы научитесь разделять данные и их представление так, чтобы тесты писались сами собой, а ваши коллеги не проклинали вас на код-ревью.

Продолжим

Как я решил войти в Android Developing через вайбкодинг

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

Или как собрать и довести до релиза без кодинга и почти бесплатно. Или моя попытка разобраться в процессе разработки и далее использовать как учебное пособие не делая скучные "Hello world", калькуляторы. Что-то живое, нужное и настоящее.

Читать далее

Сохранение позиции прокрутки и состояния курсора при переходах по навигации в iOS

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

Вы когда-нибудь замечали разницу между просто хорошим приложением и тем, которое ощущается «родным», надежным и дорогим? Часто дело не в дизайне или анимациях, а в мелочах, которые мы воспринимаем как должное, пока они не ломаются. Одна из таких критических мелочей - способность приложения помнить, где вы остановились. Вы читаете длинную статью, сворачиваете приложение, чтобы ответить на сообщение, возвращаетесь через минуту, а вас выбрасывает в самое начало текста. Раздражает, правда? Или пишете заметку, переключаетесь на браузер, возвращаетесь, а клавиатура скрыта и курсор потерян. В этой статье мы разберем, как технически грамотно реализовать сохранение позиции скролла и состояния курсора в iOS-приложениях. Мы уйдем дальше банальных советов и рассмотрим реальные сценарии с навигацией, табами и асинхронной загрузкой данных, чтобы ваши пользователи никогда не чувствовали себя потерянными.

Продолжим

Паттерн Memento в Android: полный разбор сохранения состояния

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

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

В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.

Читать далее

Kotlin и Arrow: функциональное программирование с Either, Validated и эффектами

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

Сегодня расскажем про библиотеку Arrow в Kotlin. Arrow привносит в Kotlin крутые штуки из функционального программирования: типы вроде Either и Validated для работы с ошибками, эффекты для безопасной работы с внешним миром, ну и много всего. Звучит мощно, но когда за это действительно стоит браться?

Читать далее

Особенности построения и развития дизайн-системы в мобильном приложении СберЗдоровья

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

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

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

Меня зовут Илья Гущин. Я старший Android-разработчик в СберЗдоровье — MedTech компании №1 в России. В этой статье я расскажу, как мы в СберЗдоровье строили мобильную дизайн-систему и оптимизировали интерфейсы.

Читать далее

FlutterPulse: Январский дайджест 2026 — новости, переводы и обновления месяца

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

Привет, Flutter-разработчики! 👋
Январь выдался по-настоящему снежным и спокойным - идеальное время, чтобы подтянуть знания, разобрать отложенные статьи и обновить стек перед новым рабочим сезоном.

И этот месяц для нас особенный!

Читать далее

Что нам стоит на КМП построить?

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

Рассказываю с цифрами в руках о сокращении трудозатрат разработки под несколько платформ при использовании Kotlin Multiplatform

Читать далее

Почему PWA на iOS всё ещё не торт — и что на самом деле разрешает Apple

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

Если вы открыли эту статью, значит, ваш менеджер или заказчик снова пришли с «гениальной» идеей: «А давайте не будем тратить бюджет на нативную iOS-разработку, а сделаем PWA? Это же кроссплатформенно, модно и дешево!». И теперь вам нужно аргументированно объяснить (или понять самому), почему в 2026 году, несмотря на все обещания открытого веба и давление регуляторов, PWA на iPhone всё ещё ощущается как гражданин второго сорта.

В этом тексте не будет маркетинговой шелухи про «единый код для всех». Мы разберем суровую техническую реальность Safari 19, ограничения WebKit, о которых Apple предпочитает молчать, и те немногие лазейки, которые позволяют сделать опыт использования веб-приложений хотя бы терпимым. Вы узнаете, почему localStorage умирает при установке, как заставить работать Deep Links (и почему они все равно ломаются), и в каких редких случаях PWA действительно может заменить App Store. Это гайд по выживанию в экосистеме, которая активно сопротивляется вашему присутствию.

Продолжим

Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences

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

В Android-разработке рано или поздно придётся столкнуться с задачей передачи данных между приложениями. Казалось бы, что тут сложного - отправил intent, получил результат. Но стоит копнуть глубже, и выясняется, что за простым API скрывается целый зоопарк потенциальных дыр в безопасности. Мы разберем три основных механизма обмена данными в Android: intents, URI schemes и shared preferences. Посмотрим, как они работают под капотом, где подстерегают грабли и как защитить своё приложение от любопытных глаз. Если вы пишете на Android и хотите понять, почему «просто передать данные» - это плохая идея, читайте дальше.

Продолжим

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

Безопасный обмен данными между приложениями в iOS

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

Межпроцессное взаимодействие в iOS - штука хитрая. Apple выстроила целую систему песочниц и ограничений, и просто так передать данные из одного приложения в другое не получится. Зато когда разберёшься, открывается масса возможностей: от банальной передачи изображений до выстраивания целых экосистем приложений. Давай разберем все основные способы обмена данными между приложениями (от URL Schemes до App Groups) с акцентом на безопасность и реальные проблемы, которые могут возникнуть. Покажу код, расскажу, где какой метод уместен, и объясню, как не наделать дыр в защите данных пользователя.

Продолжим

Когда данных от Apple недостаточно: собираем метрики производительности UI

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

Привет, Хабр! Меня зовут Виталий Барабанов, я iOS-разработчик в hh.ru. Недавно мы столкнулись с проблемой: пришёл фидбэк от пользователей о тормозах и фризах в мобильном приложении. Но чтобы установить их причину, нам не хватило данных, которые по дефолту собирает Apple.

Что делать в такой ситуации? А запилить собственный сбор метрик: с какой угодно фильтрацией, сбором любой информации, интеграцией со своей аналитикой и наблюдением в дебаг-панели! В статье я хочу поделиться с Хабром, как мы это сделали, сколько времени потратили и как интерпретировали результаты.

Читать далее

Мобильная разработка за неделю #616 (19 — 25 января)

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

В этом выпуске разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и плагины для Android Studio, миграция на Android Gradle Plugin 9.0, сокращение потребления памяти, бесплатный Skip, FunctionGemma от Google и многое другое. Заходите!

Читать далее

Deeplink-и во Flutter: динамические ссылки и app_links

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

Привет! Меня зовут Анна Ахлестова, я Flutter Team Lead в компании Friflex. Мобильные приложения, в том числе на Flutter, позволяют настраивать обработку различных ссылок. В этой статье я разберу, как во Flutter реализовать поддержку deeplink-ов и универсальных ссылок и как управлять ими на уровне платформы.

Читать далее

Почему «заканчивается» время в iOS-будильнике и как мы искали предел в часах Samsung

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

Работает ли это? А что, если… ? Как настоящие QA, мы всегда задаемся этими вопросами. Неудивительно, что вся наша команда взбудоражилась, увидев рилс про «фейковую бесконечность» прокрутки в будильнике на iPhone. Неужели правда? Конечно, тут же проверили на тестовых айфонах. Оказалось, часы и минуты в iOS-будильнике действительно не цикличны. Это список, который можно быстро долистать до конца.

Нам стало интересно, баг ли это, откуда он в iOS и есть ли такое в Android. Чтобы разобраться и найти ответы, нам даже пришлось «на коленке» написать автотест на C#. Но обо всем по порядку.

Читать далее

Ошибки, которые убивают шанс на оффер в первые 10 минут: взгляд лида рекрутинга

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

Вы классный разработчик. Знаете стек, пишете чистый код, умеете решать задачи. Но на ваши отклики не отвечают. После интервью на позицию вашей мечты говорят, что напишут позднее, но не связываются. Или отказывают после тестового — без объяснений. И вы не понимаете, в чем дело.

Меня зовут Татьяна Горбацевич, я лид рекрутинга в KODE. Я веду подбор сотрудников по всем техническим направлениям — от специалистов обеспечения качества до разработчиков — и каждый день вижу, как сильные специалисты теряют оффер в первые десять минут. Не на техническом интервью, а гораздо раньше: на этапе резюме, на скрининге, в первом разговоре. Рассказываю, что на самом деле влияет на решение о найме, и почему до проверки ваших хард-скиллов могут просто не дойти.

Узнать причину

Погружение в разработку плагинов для Android Studio (часть 2)

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

Всем привет! Меня зовут Алексей, я техлид Android-направления в компании Домклик.

Добро пожаловать во вторую часть статьи про разработку плагинов для Android Studio. В предыдущей части мы сделали первоначальные настройки и рассмотрели некоторые задачи. Здесь рассмотрим ещё несколько примеров разных задач и способы их решения с помощью собственного плагина. Предполагается, что проект уже настроен, поэтому без вступления сразу перейдём к делу.

Читать далее