Мобильная разработка
13.9K subscribers
861 photos
237 videos
2.96K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Как я научил Jetpack Compose показывать рекомпозиции в реальном времени

Привет, Хабр! Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. Сегодня расскажу историю разработки своего пет‑проекта, которая началась с код‑ревью очередного экрана на Jetpack Compose.

Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.

Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI. А ведь для сложных асинхронных штук вроде RxJava или корутин есть визуализаторы — RxMarbles и FlowMarbles, а для самой частой головной боли в Compose до сих пор нет. Вот бы вместо стены текста просто кинуть ссылку со словами: «Смотри, вот что твой код делает на самом деле».

В этой статье я расскажу о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.
Читать далее

Читать: https://habr.com/ru/companies/yandex/articles/945276/

@a_cup_of_java | Другие наши каналы
🔥7👀6👍2
Как я научил Jetpack Compose показывать рекомпозиции в реальном времени

Привет, Хабр! Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. Сегодня расскажу историю разработки своего пет‑проекта, которая началась с код‑ревью очередного экрана на Jetpack Compose.

Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.

Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI. А ведь для сложных асинхронных штук вроде RxJava или корутин есть визуализаторы — RxMarbles и FlowMarbles, а для самой частой головной боли в Compose до сих пор нет. Вот бы вместо стены текста просто кинуть ссылку со словами: «Смотри, вот что твой код делает на самом деле».

В этой статье я расскажу о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.
Читать далее

Читать: https://habr.com/ru/companies/yandex/articles/945276/

@a_cup_of_java | Другие наши каналы
👍2👎1
2 причины смертельной болезни проекта: устаревшие технологии и монополия на знания. Рассказываем, как это лечить

В США до сих пор работают федеральные IT-системы возрастом 8–51 год, их поддержка обходится в $337 млн ежегодно. Бизнес тоже живёт на легаси: компании закладывают бюджет на модернизацию — в среднем это $2,7 млн в год, но 60–80% денег всё равно уходит на штопанье старого кода. При этом каждая такая система — дыра в безопасности: средний ущерб от утечки данных в 2024-м достиг $4,88 млн.

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

Я — Владимир Макеев, CEO Surf. В мобильной разработке часто сталкиваюсь с аналогичными  внутренними процессами у заказчиков. В статье расскажу, как «вечная» система тянет компанию ко дну, сколько бюджета тратится на старый стек и как перейти на новый без больших потерь для бизнеса.
Читать далее

Читать: https://habr.com/ru/companies/surfstudio/articles/947362/

@a_cup_of_java | Другие наши каналы
2
Как Swift Runtime влияет на производительность iOS-приложений

Привет, Хабр! Я Кристиан Бенуа, iOS-разработчиĸ в Т-Банĸе. В современном мире производительность приложения — ĸритичесĸи важный фаĸтор, определяющий его успех. Пользователи ожидают мгновенного отĸлиĸа и плавной работы, даже небольшие задержĸи могут негативно сĸазаться на восприятии приложения.

Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.

В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
Читать далее

Читать: https://habr.com/ru/companies/tbank/articles/947486/

@a_cup_of_java | Другие наши каналы
2
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов

В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это будет полезно тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проектах.
Читать далее

Читать: https://habr.com/ru/companies/cian/articles/920328/

@a_cup_of_java | Другие наши каналы
«Большие вызовы»: как школьники за 3 недели собрали модуль для офлайн-распознавания документов на Android

Привет, Хабр! Меня зовут Олег Милосердов, я руковожу проектами по компьютерному зрению в ВТБ. В июле мы с коллегами приняли участие в научно-технологической программе «Большие вызовы» от образовательного центра «Сириус» в качестве наставников. Мы предложили школьникам спроектировать и внедрить автономный модуль распознавания MRZ-зоны документов, удостоверяющих личность, прямо на мобильном устройстве под Android, которое работает без интернета, серверов и облака. В этой статье расскажу, как талантливые старшеклассники справились с задачей, какой опыт получили и какие выводы мы можем сделать как наставники.
Читать далее

Читать: https://habr.com/ru/companies/vtb/articles/947510/

@a_cup_of_java | Другие наши каналы
Полный айсберг Android. Часть 1

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

Читать: https://habr.com/ru/companies/selectel/articles/947484/

@mobi_dev | Другие наши каналы
👎71
Мобильная разработка
Как освоить ассемблер для разработчиков Swift: первые шаги
Освойте основы ассемблера для Swift: узнайте, как работают регистры, настройте Xcode для компиляции .s-файлов и напишите первую программу на ассемблере. Практическое руководство для iOS-разработчиков.

— Читать дальше «Как освоить ассемблер для разработчиков Swift: первые шаги»
Доверенный open source в российских продуктах: фантазия или рабочая цель?

Всем привет!

Сегодня представляем нового эксперта в нашей команде: Дмитрий Белков, руководитель консалтинга Application Security ГК «Солар». В своей первой колонке для Habr Дмитрий оценил вероятность появления доверенного open source и поделился своим мнением о процессах в основе безопасной разработки. Поехали!

Open source дал разработчикам главное — скорость и гибкость. Сторонние библиотеки ускоряют вывод релизов, снижают стоимость лицензий, расширяют функциональность. Но вместе с удобством пришли и угрозы: атаки через зависимости, бэкдоры, эксплойты. Мы все помним Log4j и OpenSSL: когда до 80% библиотек остаются не обновленными, отсутствие контроля зависимостей становится системным риском.

Может ли на этом фоне появиться доверенный open source — открытые компоненты, которые можно использовать без компромиссов по безопасности? Да. Но важно договориться о критериях и инфраструктуре.
Читать далее

Читать: https://habr.com/ru/companies/solarsecurity/articles/947882/

@mobi_dev | Другие наши каналы
2👍1
И ещё немного про то, что const в dart надо ставить где попало

В статье рассказал про случай из реальной жизни, когда использование const и линтера на него помогли бы мне сэкономить полдня рабочего времени и сохранить нервы
Читать далее

Читать: https://habr.com/ru/articles/948074/

@mobi_dev | Другие наши каналы
👍4
Андроид всё еще не готов к RAW-видео

Уверен, что многих возмутит уже само название этой статьи. А некоторые сразу же побегут в комментарии указывать на приложение, которое “смогло”. Но не стоит спешить, друзья!
Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.
Читать далее

Читать: https://habr.com/ru/articles/947578/

@mobi_dev | Другие наши каналы
Как создать собственный RenderObject

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

Меня зовут Александр, я Flutter-разработчик в Surf, и сегодня мы сделаем ещё один небольшой шаг к этим крутейшим возможностям — мы научимся создавать собственные RenderObject.

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

Читать: https://habr.com/ru/companies/surfstudio/articles/947394/

@mobi_dev | Другие наши каналы
4👍1
Android
Зачем нужны приложения, можно ли писать код на смартфоне — ответы эксперта на самые безумные вопросы о мобильной разработке
Ответы на самые странные и частые вопросы о мобильной разработке: в чем разница между iOS и Android, почему нужно платить $99 для тестирования на iPhone и можно ли писать код на смартфоне. Обсуждаем Flutter, нативную разработку, пуши и безумные требования менеджеров с экспертом Аней Жарковой.

— Читать дальше «Зачем нужны приложения, можно ли писать код на смартфоне — ответы эксперта на самые безумные вопросы о мобильной разработке»
👍4
Стоит ли переносить правила из Cursor в Copilot и Windsurf: проверка на практике

Недавно я показывал, как ускорить создание админ-панели с помощью Admiral — фреймворка от команды dev.family для построения бэк-офиса на React. Тогда я использовал Cursor rules — набор текстовых правил, которые инструмент автоматически превращает в код.

Со временем я заметил, что такие правила универсальны: это обычные .md-файлы, которые можно использовать не только в Cursor, но и в других средах. Например, в GitHub Copilot, Windsurf, Replit, Zed, Continue и т.д. Возникает логичный вопрос: дадут ли они такой же эффект там, где изначально не задумывались?

Чтобы это проверить, я сравнил, как три популярных инструмента — Cursor, Copilot и Windsurf — справляются с одними и теми же инструкциями для админки. В статье разберём:
Choose your fighter

Читать: https://habr.com/ru/articles/948604/

@mobi_dev | Другие наши каналы
Большой гайд как соответствовать ожиданиям работодателя в IT

Ты думаешь, что в IT достаточно быть сильным специалистом? Ошибаешься. Работодатели ждут от тебя гораздо большего, и часто об этом не говорят прямо.
Читать далее

Читать: https://habr.com/ru/articles/948680/

@mobi_dev | Другие наши каналы
👍3🔥2
Мессенджер
Фейковая ошибка MAX: PWA для iPhone помогает избежать установки мессенджера
Российский разработчик создал PWA для iPhone, которое имитирует сбой MAX, помогая сотрудникам избежать установки мессенджера

— Читать дальше «Фейковая ошибка MAX: PWA для iPhone помогает избежать установки мессенджера»
🤣12🔥4💊1
Строки в Swift

Привет, Хабр! Сегодня поговорим о теме, которая вроде бы знакома каждому разработчику, но при этом часто остаётся в тени. Речь пойдёт о строках в Swift.

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

Читать: https://habr.com/ru/articles/948870/

@mobi_dev | Другие наши каналы
🔥3👍2
Мобильная разработка за неделю #603 (15 — 21 сентября)

В новом дайджесте Swift Runtime и производительность iOS-приложений, вопрос на 16К и полный айсберг Android, проектирование интерфейсов по азиатски, 17 платящих клиентов за час из Tinder, реклама на холодильниках и многое другое. Заходите!
Читать далее

Читать: https://habr.com/ru/articles/949032/

@mobi_dev | Другие наши каналы
👍2
Офлайн-режим в мобильном приложении: зачем он нужен и как его реализовать

Представьте: пользователь открывает ваше приложение в метро, за секунду до въезда в тоннель. Вместо ошибки «Нет соединения» он видит контент, который уже загрузил, или даже продолжает заполнять форму — потому что приложение просто отложит синхронизацию до момента, когда сеть появится.
Это не магия, а продуманный офлайн-режим. В этой статье мы расскажем как реализовать его в приложении на iOS.
Читать далее

Читать: https://habr.com/ru/companies/beget/articles/943730/

@mobi_dev | Другие наши каналы
🔥4
Игра
Недельный геймдев: #244 — 21 сентября, 2025
У движка Nau Engine ликвидируют юридическое лицо, продажи игр серии Amnesia превысили пять миллионов копий за 15 лет, продажи No, I’m not a Human превысили 100к копий — за 4 дня после релиза.

— Читать дальше «Недельный геймдев: #244 — 21 сентября, 2025»
👍2
Новые подходы в Swift для тестирования: разбор технологии Swift Testing

Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию.

Меня зовут Кирилл Гусев. Я мобильный разработчик в ОК. В этой статье я расскажу о том, какие возможности предоставляет Swift Testing и как мы планируем их применять в ОК.
Читать далее

Читать: https://habr.com/ru/companies/vk/articles/949260/

@mobi_dev | Другие наши каналы
🔥2