Месяц: Март 2026

Пишем декларативный Package.swift: DSL для модульной архитектуры iOS проекта

Swift Package Manager отлично подходит для модульной архитектуры, но по мере роста проекта Package.swift быстро превращается в длинный список строковых зависимостей. В статье показываю, как превратить Package.swift в типобезопасный DSL на Swift: — убрать строковые зависимости— автоматически генерировать feature-модули— зафиксировать архитектурные правила на уровне компиляции Читать далее Щелкните ниже, чтобы поставить оценку! Всего: 0 В...

Как мы сделали автогенерацию контента для риелторов в мобильном приложении

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

Искусство просить отзывы: как легально поднять рейтинг до 4.9 и не взбесить пользователя

Вы открываете приложение, чтобы быстро проверить баланс или забронировать стол, и тут же получаете в лицо: «Вам нравится наше приложение? Оцените нас!». Ваша реакция? В лучшем случае — машинальное нажатие на крестик, в худшем — удаление. Моя личная боль — открываешь банковское приложение для оплаты на кассе по СБП и получаешь аж три баннера один...

Война доменов: как TikTok, OnlyFans и гемблинг отбирают внимание у игр

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

Docker как контейнер-песочница, v2

Иногда бывает нужно запустить рабочие программы так, чтобы отделить их от ОС (не устанавливать поверх системы, использовать другие библиотеки, сформировать portable пакет и т.д.). Например, защитить от нежелательного обновления, или наоборот, потестировать обновление перед тем как применить его в работу. Простейшее решение — устанавливать и запускать их внутри контейнера docker. Читать далее Щелкните ниже, чтобы...

Google убивает независимый Android. Обращение и 19 аргументов против насильной регистрации разработчиков

https://keepandroidopen.org/ru/https://keepandroidopen.org/open-letter/https://www.change.org/p/stop-google-from-limiting-apk-file-usage?recruiter=1370041382&recruited_by_id=fddec6e0-0e30-11f0-a55d-cd0eb0fd0ac4 Уважаемая команда Google и руководство Android, я пишу вам не как случайный пользователь, а как человек, который уже больше 15 лет выбирает Android именно потому, что он был открытой платформой. Платформой, которая отличалась от яблочной тюрьмы iOS тем, что не требовала разрешения корпорации, чтобы я мог установить любое приложение, помочь другу с установкой или...

Прямая трансляция во Flutter через WebCodecs: как пришлось написать свой декодер

Когда live-видео приходит как сырой H.264 поток через WebSocket, стандартные Flutter-плееры перестают работать. В этой статье я разбираю, почему готовые решения не подошли и как я пришёл к необходимости реализации собственного декодера на C++ с использованием FFmpeg. Читать далее Щелкните ниже, чтобы поставить оценку! Всего: 0 В среднем: 0