Обновить
161.19

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

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

Что упало — не пропало? EXC_BAD_ACCESS vs. LLDB

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

В работе постоянно сталкиваешься с багами. В топе самых неприятных — крэш. Еще хуже — когда он неочевидный, и сразу сложно сказать, откуда "растут ноги". В этой статье попробуем воспользоваться LLDB для разбора проблемы на реальном примере.

Читать далее

Новости

Автоматизация публикаций в Telegram: бот для интерактивных постов и автоматического управления доступом к чатам

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

Это первая часть цикла статей о разработке системы публикации структурированных интерактивных постов через Telegram Bot API. В следующих частях — архитектура, рендеринг шаблонов и управление доступом к закрытым чатам.

С чего всё начинается

Представьте типичную задачу: пользователь вашего сервиса хочет опубликовать в своём Telegram-канале структурированный пост. Не просто текст — а пост с заголовком, многострочным описанием, блоком реквизитов, динамическим индикатором прогресса и интерактивными кнопками. Пост, который после публикации будет обновляться в реальном времени по мере поступления новых данных. Пост, под которым есть кнопка, открывающая отдельный диалог в боте — и всё это происходит без перехода в браузер, без форм, без лишних шагов.

На первый взгляд — ничего сложного. Telegram Bot API умеет отправлять текст, прикреплять медиа, рисовать inline-кнопки. Но именно в этот момент начинается то, что разработчики называют «дьявол в деталях».

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

Читать далее

Не Vibe-Coding, а инженерия с AI: как я за полгода сделал Android-приложение: социальный трекер привычек

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

Не Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android‑приложение «Трекер привычек» с социальными функциями, синхронизацией, офлайн-режимом и виджетом

Читать далее

Дыра в безопасности в Ze-Post: как подменить личность любого пользователя в мессенджере MAX

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

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

Читать далее

Как я добавил функциональность в приложение Telegram с помощью ИИ

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

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

Когда-то давно мне приходилось работать над стартапом, цель которого была — форкнуть основной клиент приложения Telegram и доработать его, а именно добавить в него ИИ-чат-ботов, с которыми можно было общаться. Но это было в далёкие времена, когда ИИ ещё не был на таком «хайпе», как сейчас.

Боль каждого лида — это ответы на сообщения в чатах, и вот недавно я задумался: а что, если спасти себя и заодно опробовать ИИ? Попробовать добавить в Telegram функциональность генерации ответа на сообщение и сделать это без глубокого погружения в исходный код, просто как продакт, который просит своего разработчика что-то для него сделать. Для этих целей я выбрал инструмент — Cursor, с которым общался в визуальном редакторе. Давайте посмотрим, получилось у меня или нет!

Читать далее

Нет соединения — не значит нет UX. Как не потерять доверие пользователя вместе с интернетом

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

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

Продолжим

Что будет с джунами в эпоху ИИ-кодинга?

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

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

Если вы хотите узнать ещё больше об организации процессов ML-разработки, подписывайтесь на наш Телеграм-канал Варим ML

Давайте вообще кратко вспомним, в чём проблема. До текущего момента стандартный путь разработчика или ML-инженера выглядел примерно так:

Читать далее

Когнитивный инжиниринг: почему ваш код — это слепок вашей психики (Каскад 1)

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

Мы привыкли думать, что архитектура программ рождается из требований бизнеса, бюджетов и технологий. Но в самом начале любого проекта лежит архитектура мышления — разработчика, заказчика, пользователя. Эта статья и ряд других в серии «каскад» — попытка рассмотреть проектирование как отражение когнитивных механизмов человека. Не UX, не поведение пользователей, а именно то, как фазы нашего мышления формируют будущую систему. И главное — как, поняв это, создавать более устойчивые и человечные архитектуры.

Читать далее

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

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

В новом дайджесте новая статья про шейдеры Metal и переход от Dagger к Metro, 10 фич в Android-приложение за один заход и лучшая производительность Flutter, новый подход к прогнозированию погоды, настройка конвейера доставки и многое другое. Заходите!

Читать далее

Кастомная галерея на iOS: от лага на 60 000 фото до lazy-загрузки и Combine

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

Если вы когда-нибудь разрабатывали мессенджер, то наверняка сталкивались с задачей выбора фотографий и видео для отправки. На первый взгляд кажется, что Apple предоставляет всё необходимое: UIImagePickerController, PHPickerViewController. Но стоит только копнуть чуть глубже, и оказывается, что стандартные компоненты не покрывают и половины того, что нужно в реальном продукте.

Читать далее

Как мы написали React Native библиотеку для Яндекс Карт за два дня с Claude

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

Сначала коротко о том, зачем нам это было нужно.

Мы в основном пилим решения для фудтеха, а для мобилок используем React Native (почему, рассказывали тут). 

В одном из таких проектов (российская сеть ресторанов по франшизе) нам нужно было прикрутить Яндекс Карты. Изначально хотели взять либу react-native-yamap (респект тем, кто ее делал) — но как выяснилось, она работает только на старой архитектуре RN. 

После обновления до 0.76 версии, где Fabric стала использоваться по умолчанию, приложения на iOS начали падать: карта не рендерится, события не доходят до JS, приложение крашится при взаимодействии с картой и вот это вот всё. И судя по открытым тикетам, мы не одни, кто столкнулся с этой проблемой. 

Полезли искать, написал ли кто-то уже библиотеку под новую архитектуру — но либо таких людей нет, либо ни с кем не делятся. Спойлер: мы пока тоже не будем, ещё обкатываем либу на своих проектах — но уже сейчас хотим рассказать, как собрали новый пакет с помощью Claude Code за два дня.

Читать далее

С чего начать путь в мобильную разработку

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

Мобильная разработка — довольно понятное направление в IT. Почти у каждого в кармане есть телефон с iOS или Android, и результат работы разработчика виден сразу: установил приложение — вот оно, работает. Ну, или не работает.

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

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

Читать далее

Подсказка вместо мышления: как автогенерация кода меняет junior и middle за один год

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

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

Читать далее

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

Как слить токен авторизации через виджет iOS — и как этого не допустить

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

Если вы разрабатываете iOS-приложение с виджетом, Watch-компаньоном (это приложение для Apple Watch, которое работает в паре с основным приложением на iPhone) или Share Extension - рано или поздно вам придётся передавать данные между процессами. App Groups - стандартный механизм для этого, и на первый взгляд он прост: добавил capability, написал UserDefaults(suiteName:), поехали. Но именно эта кажущаяся простота и создаёт проблемы. Данные лежат в незашифрованном контейнере, любое приложение из вашей команды может их прочитать, а валидация входящих данных почти никогда не делается. Давайте же рассмотрим, как правильно настроить App Groups, что реально можно туда класть, какие риски существуют и как организовать безопасный обмен (в том числе с примером передачи токена авторизации между приложением и виджетом).

Продолжим

Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose

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

Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений

Читать далее

Предоставьте мне разрешение к…

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

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

Результат немного предсказуем: вежливое кивание и разрешение вообще всего. Я прекрасно понимаю, что эти мои абстрактные «утечки данных» не пугают. Поэтому решил собрать в одном месте несколько конкретных случаев, когда одно нажатие на «разрешить» выходило боком. Теперь, когда кто‑то спросит: «кому нужны мои контакты» — я просто дам ему ссылку на эту статью.

Читать далее

«Разблокируй телефон» — как я реализовал фейковый мессенджер для допроса

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

Привет, Хабр! Я разрабатываю open-source мессенджер Xipher (C++/Android), и одна из фич, которую пришлось проектировать особенно тщательно — Panic Mode. Это система правдоподобной отрицаемости (plausible deniability): при вводе специального PIN-кода мессенджер показывает полностью фейковую, но убедительную базу данных с поддельными чатами, а параллельно отправляет скрытый SOS-сигнал на сервер.

В статье разберу архитектуру целиком — от криптографического разделения баз до генерации правдоподобных фейков и маскировки panic-алерта под рутинный сетевой запрос. Весь код — из реального проекта.

Исходники открыты — ссылка на GitHub в конце статьи.

Читать далее

Цифровая экология: делаем веб легче для планеты

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

Мы привыкли думать, что интернет — это что-то невесомое. Но за каждой загрузкой страницы стоит сервер, а он расходует электричество. Умножаем на миллиарды просмотров в день — и вот у веба уже вполне осязаемый углеродный след. Хорошая новость: мы, как разработчики и дизайнеры, можем его уменьшить. Давайте разберёмся, как.

Читать далее

Как мы улучшили время загрузки React Native приложения в 10 раз

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

Эта статья - перевод поста в блоге Alex, Baton Corporation Team Lead, вышедшего 20 февраля 2026 г.

Я публикую этот перевод, потому что сам много экспериментировал с переносом на этап сборки применение Tailwind стилей, убрав их из runtime. Хоть мне и не удалось добиться таких впечатляющих результатов, как автору статьи, опыт был сугубо положительный, скорость загрузки и многие другие метрики, связанные с отзывчивостью интерфейса, ощутимо выросли.

Далее следует перевод

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

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

В этом выпуске бесконечная история сторибордов и расцвет «достаточно хорошей» архитектуры в Android, Baseline Profiles и шейдеры, мягкая обводка текста, мобильный геймдев нулевых и многое другое. Заходите!

Читать далее
1
23 ...