История Stiger

Как я придумал Stiger.


ЧАСТЬ I: Появление идеи

Говорят, когда начинаешь делать свой проект, надо отталкиваться от реальной необходимости. Делать что-то, что пригодится самому; чем бы ты сам пользовался, если бы оно существовало или было достаточно удобным (если уже существует неудобное).

Как и многие в 2025-2026 я сидел перед экраном ноутбука и думал. Энтропии везло: я не нуждался ни в AI обёртке, ни в трекере финансов, ни в таймере медитации. Но что меня привлекает? В чём я испытываю необходимость?..

наступает время для лирического отступления

Дело в том, что четыре года назад я стал эмигрантом. В России, откуда я родом, содержимое телефона может иметь значение. Грубо говоря, если при проверке телефона находят лишнее, у тебя могут быть проблемы: ключ доступа, сохранённая статья, подписка не на тот канал, не то приложение…

Окей, можно было бы отталкиваться от этого, но что я могу сделать?..

Ещё в юности мне запала в душу идея стеганографии.

Стеганогра́фия (от греч. στεγανός — скрытый + γράφω — пишу; дословно — «тайнопись») — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения). Этот термин ввёл в 1499 году аббат бенедиктинского монастыря Святого Мартина в Шпонгейме Иоганн Тритемий в своём трактате «Стеганография» (лат. Steganographia), зашифрованном под магическую книгу.

—https://ru.wikipedia.org/wiki/Стеганография

Думаю, я узнал о ней из журнала “Хакер”. Позже, помню, была на слуху чудесная утилита, объединявшая rar архив и jpeg изображение, которая делала возможным такой сценарий:

Красиво? Красиво!

Отдельная красота решения для меня заключалась в том, что от принимающей стороны не требовалось никаких дополнительных технических средств: достаточно было иметь популярный архиватор, чтобы быть готовым к получению информации. Можно было раскладывать пасхалки по интернету (тогда хостеры картинок часто не делали рекомпрессию), веселиться и… И, в общем-то, больше ничего.

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

Беглый поиск по категории не даст соврать: вдохновлённые академической красотой разработчики сосредоточены на алгоритмах в большей степени, чем на хорошем интерфейсе и пользовательских сценариях. Стеганографические утилиты это как правило самостоятельные приложения, которые никак (или почти никак) не встраиваются в повседневную жизнь человека: пользователю в большинстве случаев предлагается установить приложение, импортировать фотографию, добавить секретное сообщение, экспортировать это изображение и отправить как вложение. Зачастую как файл, а не как изображение: то есть без превью, чтобы не потерять секрет в результате компрессии. Чтобы прочитать секрет, надо повторить всё в обратном порядке: скачать вложение, установить приложение, импортировать изображение…

На стеганографическом рынке есть другой тип утилит, которые прячут сообщения не в картинках, а через невидимые пробельные символы. Но иметь сообщение “Привет!”, нашпигованное пробельными символами, — это всё равно что расписаться в использовании стеганографии. Это заметно и при простом копировании, и при самом поверхностном анализе с показом специальных символов. Также все эти скрытые пробелы и другие специальные символы потенциально будут индексироваться текстовым поиском устройства (наравне с обычными текстами и сообщениями, в отличие от бинарных файлов изображений).

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

И это обидно, потому что… ну… понимаешь, ЭТО КРАСИВО.

Но программисты не были бы программистами, если бы так легко сдавались! Надо делать эмпирические тесты и держать в голове образ пользователя.

ЧАСТЬ II: Проверка гипотезы

Итак, какие вводные я получил к этому моменту:

Какие проблемы вероятно встанут перед человеком, который захочет пользоваться (вернее, он ещё даже и не знает, что захочет) стеганографией?

Простому пользователю не нужно ни сложных утилит, ни технических подробностей протокола встраивания секрета. Это должна быть стеганография на кончиках пальцев. Как можно ближе к клавиатуре. Получается, нужен прототип клавиатуры со встроенным поиском изображений и интеграцией пользовательского секрета. Ещё проще: галерея изображений и текстовое поле ввода.

Окей, чем мы обмениваемся из клавиатуры?

В Твиттере/X.com есть органично встроенный поиск анимированных гифок. Им особо никто не пользуется, но звучит близко к тому, что нам нужно. Только вот стеганография в gif… хм. Чем ещё обмениваются люди? Мемами? (Ещё ведь обмениваются? Или это уже как анекдоты, которые никто больше не рассказывает?) Окей, можно сделать в качестве прототипа каталог мемов. Формат? Наверное, для качественной графики подойдёт png. Делаем обзор способов встраивания секрета в png, берём подходящее решение, создаём на коленке кастомную клавиатуру-галерею, которая вставляет тестовое изображение с секретом, смотрим…

…И видим, что успеха нет ни в Telegram, ни в WhatsApp: png не переживает пересылку в неизменном виде, мессенджеры нормализуют изображение и наше секретное сообщение теряется. Попутно выясняется, что если твой проект это клавиатура-галерея, но тебе надо ввести свой текст (текст секретного сообщения), то ты не можешь вызвать из неё системную клавиатуру (что логично), а значит… надо создавать настоящую клавиатуру!

И как итог: Proof of Concept не работает! Фиксируем причины:

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

Но куда и как?

ЧАСТЬ III: iMessage

Всю свою карьеру, все 15+ лет я занимался веб-разработкой, разработка под iOS — новая для меня область. Swift в целом напоминает мой родной язык TypeScript, мобильные экраны мне знакомы по мобильному вебу, но экосистему изнутри я не наблюдал, только снаружи, как пользователь.

Размышляя над безутешными результатами, я увидел Xcode target “iMessage extension”…

Дело в том, что популярный в англоязычных странах iMessage совершенно не популярен в России. Настолько непопулярен, что по состоянию на середину 2026 года его не блокировали. Возможная причина (это моя догадка): блокировка iMessage на сетевом уровне может нарушить работу всего iPhone. Как бы там ни было, я попробовал отправить png через iMessage и — о, чудо! — отправленное изображение успешно пережило пересылку, я смог прочитать свой секрет!

С этого момента я сосредоточился на iMessage, в нём было всё, что нужно для решения поставленной в Части I задачи:

Вот собственно и вся история появления Stiger. Дальше были прототипы, проработка MVP, тестирование. Несколько кругов доработок. То, что получилось, можно посмотреть, если твой айфон поддерживает iOS 15+.

После установки тебе доступны все основные функции, но без шифрования. Этого достаточно не только для ознакомления, если твои задачи не требуют обязательного шифрования, можешь чувствовать себя свободно: пересылать шутки, общаться с друзьями. Нет никакого trial или ограничения по времени, просто знай, что без шифрования любой другой пользователь Stiger может прочитать твои стикеры. Шифрование, как и некоторые другие расширенные возможности, предоставляется по подписке. Подписка, а также магазин стикеров — это и есть моя модель монетизации.

От идеи универсальной клавиатуры с мемами через несколько итераций я пришёл к идее iMessage Extension со стикерами. От идеи копипастить стикеры со временем пришёл к более дружелюбному drag’n’drop.

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

Таким образом, интерфейс Stiger нацелен на широкую аудиторию, иконка приложения намеренно следует паттерну “security through obscurity by design”, но за интерфейсом и дизайном есть также privacy tool архитектура и идеи, которые позволяют мне надеяться, что твои и мои сообщения достаточно хорошо защищены. Шифрование, встраивание и чтение секретов происходят на твоём устройстве, аналитика не собирается.

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


← Назад к Stiger