<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Firebase</title>
    <description>Firebase — облачная платформа от Google, предоставляющая широкий набор инструментов для разработки мобильных и веб-приложений. Она включает в себя такие сервисы, как Firebase Cloud Messaging для отправки push-уведомлений, Firebase Crashlytics для отслеживания ошибок, Firebase Remote Config для управления конфигурацией приложений и другие. Firebase помогает разработчикам быстро развернуть бэкенд, реализовать аналитику, настроить A/B-тестирование и улучшить пользовательский опыт.</description>
    <link>https://tproger.ru/tag/firebase</link>
    <atom:link href="https://tproger.ru/tag/firebase/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 03 Oct 2026 14:15:40 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Firebase</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Хакер собрал публичную базу «навайбкоженных» приложений с сотнями уязвимостей</title>
      <link>https://tproger.ru/news/haker-sobral-publichnuyu-bazu--navajbkozhennyh--prilozhenij-s-sotnyami-uyazvimostej</link>
      <comments>https://tproger.ru/news/haker-sobral-publichnuyu-bazu--navajbkozhennyh--prilozhenij-s-sotnyami-uyazvimostej?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/haker-sobral-publichnuyu-bazu--navajbkozhennyh--prilozhenij-s-sotnyami-uyazvimostej</guid>
      <description><![CDATA[<p>Хакер собрал публичный реестр iOS-приложений, созданных вайб-кодингом с ИИ, где нашли сотни уязвимостей и открытые базы данных</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/haker-sobral-publichnuyu-bazu--navajbkozhennyh--prilozhenij-s-sotnyami-uyazvimostej">Хакер собрал публичную базу «навайбкоженных» приложений с сотнями уязвимостей</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Firebase]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 22 Jan 2026 10:42:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Анонимный хакер <a href="https://firehound.covertlabs.io/">запустил</a> публичный реестр небезопасных iOS-приложений, созданных с помощью вайб-кодинга.</p><p>Судя по всему, это те самые приложения, которые были собраны на скорую руку с помощью ИИ. В базе уже <b>167 приложений</b>. Проект опубликован на платформе <b>Firehound</b> и активно обсуждается в <a href="https://www.reddit.com/r/iosdev/comments/1qhw9by/a_hacker_is_making_a_list_of_vibecoded_apps_198/">сообществе</a> iOS-разработчиков на <b>Reddit</b>.</p><h2>Что именно нашли</h2><p>Firehound сканирует iOS-приложения и ищет публично доступные базы данных и файлы — без взлома, логинов и обхода защиты. Речь идет о классической ошибке конфигурации: бэкенд приложения открыт для всех желающих.</p><p>В реестре уже есть приложения с:</p><ul><li>десятками миллионов записей в открытых базах;</li><li>доступными коллекциями profiles, posts, comments, likes;</li><li>утекшими email-адресами, никнеймами, метаданными активности.</li></ul><p>Один из лидеров антирейтинга — приложение <i>Adult Coloring Book – Pigment</i>. У него <b>более 7,7 млн документов</b> оказались доступны без какой-либо аутентификации.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-01-22/77f179d5-9a1e-470f-b146-6617e72e50b0.jpeg" alt="" /></figure><h2>Причем тут вайб-кодинг</h2><p>По словам автора проекта, большинство уязвимостей выглядят одинаково: разработчики используют ИИ для генерации кода и инфраструктуры, но не понимают, <b>что именно деплоят в прод</b>.</p><p>Типичный сценарий:</p><ul><li>ИИ предлагает использовать Firebase, Supabase или MongoDB.</li><li>Конфигурация безопасности либо отсутствует, либо остается дефолтной.</li><li>Ключи и переменные окружения попадают в клиентский код.</li><li>База становится публичной — иногда буквально в один клик.</li></ul><p>Как подчеркивают участники обсуждения на Reddit, проблема не в ИИ как таковом, а в том, что вайб-кодинг часто заканчивается <b>полным отсутствием базовой гигиены кибербезопасности</b>.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-01-22/64f6ee24-b42d-4286-b0b1-a34e198067f5.jpeg" alt="" /></figure><h2>Это не взлом — и в этом главная проблема</h2><p><b>Важно:</b> Firehound не эксплуатирует уязвимости. Он лишь показывает то, что уже открыто. Данные в публичной версии интерфейса частично замаскированы, но сам факт доступности никто не отрицает.</p><p>Именно это делает ситуацию неприятной: формально никто ничего не «ломал», но пользовательские данные все равно утекли.</p>]]></content:encoded>
    </item>
    <item>
      <title>Push-уведомления: от базовых принципов до омниканальных систем</title>
      <link>https://tproger.ru/articles/puwi-na-vse-platformy--kak-rabotaet-novyj-rossijskij-servis-multipushed</link>
      <comments>https://tproger.ru/articles/puwi-na-vse-platformy--kak-rabotaet-novyj-rossijskij-servis-multipushed?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/puwi-na-vse-platformy--kak-rabotaet-novyj-rossijskij-servis-multipushed</guid>
      <description><![CDATA[<p>Рассказываем, как push-уведомления помогают бизнесу доставлять пользователям сообщения с 99.9% вероятностью и как работают изнутри.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/puwi-na-vse-platformy--kak-rabotaet-novyj-rossijskij-servis-multipushed">Push-уведомления: от базовых принципов до омниканальных систем</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Firebase]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 13 May 2025 13:09:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>Push-уведомления стали неотъемлемой частью цифровых продуктов, позволяя приложениям и сайтам оперативно взаимодействовать с пользователями. Они информируют о новостях, обновлениях или событиях в реальном времени, повышая удержание аудитории и конверсию. В отличие от email или SMS, пуши не требуют открытия отдельного приложения и появляются прямо на экране устройства, что делает их эффективным инструментом для маркетинга, уведомлений о транзакциях или системных алертах.</p><p>Рассмотрим, в чем особенность пушей и почему командам стоит к ним присмотреться.</p><h2>Почему сначала пуши, а потом СМСки</h2><p>Казалось бы, мы уже настолько привыкли к пушам из приложений, что СМСки кажутся прошлым веком. Однако многие компании продолжают ими пользоваться — это в какой-то степени логично, поскольку не все устанавливают приложения. Но часто бывает и такое, что бизнес в принципе не стал внедрять подобную функцию.</p><p>А зря: во-первых, СМС — всегда сильная зависимость от оператора связи. Пуши же — более гибкая опция, поскольку при их отправке используются ваши собственные каналы связи. Плюс стоимость отправки push-уведомлений значительно ниже, чем у СМС, при этом данные шифруются, а значит, злоумышленники не смогут украсть важные коды.</p><p>После 2022 года выбор сервисов для push-уведомлений стал сложнее из-за санкций. Долгое время компании пользовались и по инерции продолжают пользоваться сервисом Firebase Cloud Messaging от Google, но сейчас этот канал не может быть единственным для отправки push, так как могут возникнуть определенные санкционные риски и для бизнеса, а также другие проблемы:</p><ul><li>Одноразовые коды и другие уведомления — чувствительная информация. Зарубежные сервисы передают данные за пределы России, что может быть рискованно.</li><li>Условно-бесплатные аналоги, такие как FCM, не гарантируют доставку и не предоставляют аналитику.</li><li>Некоторые сервисы вовсе заблокированы в России, а другие не работают в Китае, где многие сейчас ведут бизнес.</li></ul><h2>Как работают push-уведомления: техническая основа</h2><p>Push-уведомления основаны на клиент-серверной архитектуре, где сервер отправляет данные на устройство через специализированные сервисы. Процесс начинается с регистрации: при запуске приложения устройство генерирует токен (device token) и отправляет его на сервер разработчика. Этот токен используется для маршрутизации сообщений.</p><p>Доставка происходит через платформо-зависимые сервисы:</p><ul><li>APNs (Apple Push Notification service): Для iOS и macOS, требует сертификата от Apple и поддерживает богатые уведомления с изображениями и действиями.</li><li>FCM (Firebase Cloud Messaging): Для Android, кросс-платформенный сервис от Google, интегрируется с другими каналами.</li><li>HPK (Huawei Push Kit): Альтернатива для устройств Huawei, особенно актуальна в регионах без Google Services.</li><li>RuStore и Aurora: Российские аналоги для Android, ориентированные на локальный рынок и совместимые с санкционными ограничениями.</li></ul><p>Для веб-приложений используются Web Push Notifications на базе Service Workers и протокола Push API, совместимого с браузерами Chrome, Firefox и Edge. Сообщения шифруются с помощью VAPID (Voluntary Application Server Identification) для аутентификации отправителя.</p><p>Модель Pub/Sub (Publish/Subscribe) лежит в основе масштабируемых систем: издатели публикуют сообщения в топики, а подписчики (устройства) получают их асинхронно. Это позволяет обрабатывать миллионы подключений без перегрузок. WebSocket или long-polling обеспечивают постоянное соединение для минимальной задержки – часто менее 0,1 секунды.</p><p>Вызовы включают:</p><ul><li>Оффлайн-доставку: Если устройство выключено или без интернета, сообщение может потеряться; ретраи (повторные попытки) и каскадирование (переключение на альтернативные каналы) решают эту проблему.</li><li>Географические ограничения: Сервисы вроде FCM могут блокироваться в некоторых странах, требуя омниканальных подходов.</li><li>Безопасность: Уведомления с чувствительными данными (коды аутентификации) нуждаются в end-to-end шифровании, чтобы предотвратить перехват.</li><li>Пользовательский контроль: Пользователи могут отключать пуши, поэтому важно соблюдать регуляции вроде GDPR или 152-ФЗ, избегая спама.</li></ul><p>Преимущества пушей над SMS: низкая стоимость (почти нулевая для больших объемов), мгновенная доставка, поддержка мультимедиа (изображения, кнопки действий) и аналитика (открытия, клики).</p><h2>Омниканальность и лучшие практики внедрения</h2><p>Омниканальные системы объединяют несколько каналов в единую платформу, обеспечивая доставку независимо от устройства или региона. Это включает каскад: если основной канал (например, собственный WebSocket) недоступен, система переключается на FCM или APNs. Такие подходы достигают 99,9% доставки, с ретраями и мониторингом.</p><p>При выборе системы учитывайте:</p><ul><li>Масштабируемость: Поддержка высоких нагрузок, как во время пиковых событий (распродажи, новости).</li><li>Аналитика: Реал-тайм отчеты о доставке, конверсии и отказах для оптимизации кампаний.</li><li>Кастомизация: Deeplink для перехода в конкретный раздел приложения, добавление изображений, ссылок или персонализированного контента.</li><li>Интеграция: REST API и SDK для популярных фреймворков (React Native, Flutter), чтобы внедрение заняло минимум времени.</li><li>Соответствие регуляциям: Локализация данных, сертификаты безопасности (PCI DSS, ФСТЭК) для работы с финансовыми или государственными данными.</li></ul><p>Лучшие практики: сегментируйте аудиторию по поведению, тестируйте A/B-варианты сообщений, интегрируйте с CRM для персонализации. Для бизнеса в e-commerce пуши идеальны для напоминаний о корзине, в банках – для транзакций, в медиа – для новостей.</p><h2>MULTIPUSHED как пример омниканальной платформы</h2><p>В качестве примера рассмотрим российскую систему <a href="https://multipushed.ru">MULTIPUSHED</a> от МУЛЬТИФАКТОР, ориентированную на доставку уведомлений в условиях санкций и локальных требований. Она использует SaaS-модель с инфраструктурой в дата-центрах Tier3 (DataLine, Selectel, LinxCloud), защищенной от DDoS через NGENIX.</p><p>Архитектура включает Pub для приема сообщений по HTTPS API, Broker для распределения и Router для маршрутизации по каналам: собственный PUSHED, APNs, FCM, HPK, RuStore, Aurora. Sub-серверы поддерживают WebSocket Secure для онлайн-доставки, с каскадированием для оффлайн-случаев.</p><p>Процесс: устройство регистрируется, получает токен; отправитель передает сообщение Pub; система маршрутизирует и подтверждает доставку. Совместима с iOS, Android, Aurora, РОСА МОБАЙЛ, KasperskyOS и веб. SDK для Android, iOS, React Native, Flutter, Aurora и Web упрощают интеграцию.</p><p>Функции: аналитика в реальном времени, кастомизация (deeplink, изображения), глобальная доставка (включая Китай и регионы РФ). Сообщения шифруются, соответствует 152-ФЗ и PCI DSS, внесена в реестр российского ПО.</p><h2>Итоговые рекомендации</h2><p>Push-уведомления эволюционируют в сторону омниканальности, чтобы преодолевать платформенные барьеры и обеспечивать надежность. Для бизнеса это инструмент роста вовлеченности, но успех зависит от баланса между частотой и релевантностью.</p><p>При внедрении тестируйте на реальных сценариях, мониторьте метрики и адаптируйте под регуляции – это минимизирует риски и максимизирует отдачу.</p>]]></content:encoded>
    </item>
    <item>
      <title>От идеи к успеху: как создать популярное мобильное приложение</title>
      <link>https://tproger.ru/articles/ot-idei-k-uspehu--kak-sozdat-populyarnoe-mobilnoe-prilozhenie</link>
      <comments>https://tproger.ru/articles/ot-idei-k-uspehu--kak-sozdat-populyarnoe-mobilnoe-prilozhenie?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ot-idei-k-uspehu--kak-sozdat-populyarnoe-mobilnoe-prilozhenie</guid>
      <description><![CDATA[<p>Кирилл Васильев, руководитель кластера кросс-функциональных команд в RuStore, рассказывает, как создать популярное приложение.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ot-idei-k-uspehu--kak-sozdat-populyarnoe-mobilnoe-prilozhenie">От идеи к успеху: как создать популярное мобильное приложение</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Операционные системы]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Социальные сети]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[App Store]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Google Analytics]]></category>
      <category><![CDATA[Xcode]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[Dart]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Firebase]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Apr 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Создание и продвижение мобильного приложения — это путь, который требует грамотного подхода на каждом этапе. Как разработать идею, выбрать функционал и сделать продукт удобным? Какие инструменты продвижения эффективны в цифровом мире? В этой статье Кирилл Васильев, руководитель кластера кросс-функциональных команд в RuStore, разобрал весь процесс: от идеи до привлечения тысяч пользователей.</p><h2>Определяем цель</h2><p>Успех приложения начинается с четкого понимания, зачем оно нужно — так становится проще определить целевую аудиторию. Это влияет не только на функционал, но и на дизайн, способы продвижения и даже тон общения с пользователями.</p><p>Некоторые программы помогают развивать существующий бизнес — как это делают банковские сервисы, которые упрощают работу с клиентами. Другие становятся самостоятельными продуктами, например, для обучения, занятий спортом или развлечений.</p><p>Кроме того, приложение должно решать реальные проблемы пользователей. Допустим, вы задумали создать программу для фрилансеров. Решили провести исследование, и оно показало, что фрилансеры часто страдают от прокрастинации и ненавидят заниматься выставлением счетов клиентам. Ваша идея и главная фишка — приложение, которое автоматизирует процесс оплаты, контролирует сроки выполнения проектов и помогает планировать рабочее время.</p><p>Чтобы убедиться, что идея действительно рабочая, проведите опросы в Telegram-каналах фрилансеров или создайте анкету. Вы можете спросить, какие функции для них наиболее актуальны: автоматический расчет налогов, интеграция с платежными системами или отслеживание времени работы. Это поможет сфокусироваться на действительно важных фичах и отсеять второстепенные.</p><h2>Выбираем платформу и инструменты</h2><p>Сегодня на российском рынке <a href="https://lenta.ru/articles/2025/03/12/luchshie-smartfony-na-android/">доминируют</a> две мобильные операционные системы: Android (около 70% пользователей) и iOS (около 30%). Оптимальным решением будет разработка приложения для обеих платформ, особенно если вы ориентируетесь на крупные города, где доля пользователей iOS существенно выше.</p><p>Приложения под Android большинство разработчиков пишет на Kotlin, хотя Java до сих пор остается одним из вариантов из-за обширной базы готовых решений и библиотек. Основной средой выступает Android Studio — в ней есть весь необходимый инструментарий для создания, отладки и тестирования приложений. Современные разработчики активно используют Jetpack Compose для построения пользовательского интерфейса, Room для работы с базами данных, Retrofit для сетевых запросов и Dagger или Hilt для внедрения зависимостей.</p><p>В мире iOS основным языком программирования стал Swift — современный и безопасный инструмент для нативных приложений. Разработка ведется в среде Xcode, официальной IDE от Apple. Для построения интерфейсов все чаще используется SwiftUI, для управления данными — Core Data, а для сетевого взаимодействия — фреймворк Alamofire. Работа с асинхронными событиями упрощается с помощью фреймворка Combine.</p><p>При ограниченных ресурсах можно рассмотреть кросс-платформенную разработку. Так, Flutter использует язык программирования Dart и позволяет создавать производительные приложения с нативным внешним видом. React Native дает возможность применять веб-технологии для мобильной разработки, а Xamarin ориентирован на разработчиков, привыкших к экосистеме Microsoft и языку C#.</p><p>Выбор платформы и инструментов должен основываться на характеристиках вашей ЦА, требованиях к функционалу и имеющихся ресурсах. Учитывайте также, что для разных магазинов приложений (RuStore, App Store, Google Play) могут потребоваться специфические оптимизации и настройки.</p><h2>Продумываем функционал</h2><p>При разработке функционала важно следовать концепции MVP (Minimum Viable Product) — минимально жизнеспособного продукта. Это позволит быстрее выйти на рынок, получить обратную связь и итеративно улучшить приложение.</p><p>Возьмем для примера приложение доставки еды. В этом случае MVP должен включать:</p><ul><li>авторизацию пользователя через телефон, email или социальные сети;</li><li>каталог ресторанов с фильтрацией по кухне, рейтингу и времени доставки; меню каждого заведения с фотографиями и описанием блюд;</li><li>корзину с возможностью изменения состава заказа;</li><li>оформление заказа с выбором адреса доставки и способа оплаты;</li><li>отслеживание статуса заказа в реальном времени;</li><li>профиль пользователя с историей заказов.</li></ul><p>Важно уделить внимание и техническим аспектам функционала:</p><ul><li>Локальное кэширование данных. Поддерживает работу приложения при слабом интернет-соединении или его отсутствии. Сохраняет каталоги, популярные позиции и историю действий пользователя.</li><li>Офлайн-режим. Определяет набор функций, доступных без подключения к сети. Критически важен для удержания пользователей в зонах с плохим интернетом.</li><li>Система пуш-уведомлений. Информирует пользователей о важных событиях, статусах заказов и специальных предложениях. Повышает вовлеченность и возвращаемость в приложение.</li><li>Многопоточная обработка. Выполняет ресурсоемкие операции в фоновом режиме. Гарантирует отзывчивость интерфейса даже при выполнении сложных задач.</li><li>Оптимизация изображений. Внедряет алгоритмы сжатия для быстрой загрузки визуального контента. Обеспечивает комфортное использование даже при ограниченной скорости соединения.</li></ul><p>При этом разработчики часто допускают ошибки, и одна из самых распространенных — функциональная перегруженность. Не стоит добавлять AR-анимации, игровые механики и другие «модные» функции, если они не решают реальных проблем клиентов.</p><p>Также многие игнорируют обратную связь пользователей, хотя механизмы ее сбора стоит включать уже в MVP. Недостаточное внимание к безопасности может стать критичным для приложений с личными данными и платежами. А отсутствие встроенных инструментов аналитики затрудняет понимание того, как пользователи взаимодействуют с программой.</p><p>Выбор правильной архитектуры — это фундамент, который определяет надежность, масштабируемость и удобство поддержки. Вот основные паттерны для мобильных приложений:</p><ul><li>MVVM — рекомендуемый Google подход с разделением UI и бизнес-логики</li><li>MVI — однонаправленный поток данных, хорошо сочетается с реактивным программированием</li><li>MVP — классическая архитектура. Популярна благодаря простоте реализации</li><li>Clean Architecture — многослойный подход с упором на тестируемость и гибкость</li><li>VIPER (iOS) — расширенный MVC со строгим разделением ответственности</li></ul><p>Важное значение имеет также выбор технологий для хранения и передачи данных. Для локальной работы подойдут SQLite + Room, Realm или DataStore; для сетевого взаимодействия на Android чаще всего используют Retrofit + OkHttp, а в реактивных сценариях — Ktor Client.</p><p>Правильный выбор архитектуры напрямую зависит от масштаба проекта и размера команды. Небольшие приложения могут обойтись простыми решениями, тогда как сложные продукты требуют комплексного подхода с продуманным разделением ответственности.</p><h2>Создаем удобный интерфейс</h2><p>Интерфейс — это лицо приложения. Даже если у вас отличный функционал, но пользоваться им неудобно, людям будет проще удалить программу и найти что-то другое.</p><p>Эффективный UI/UX строится на пяти ключевых принципах:</p><ol><li>Очевидность (интуитивное понимание интерфейса);</li><li>Экономия внимания (минимум шагов для достижения цели);</li><li>Консистентность (единообразие элементов с одинаковой функциональностью);</li><li>Обратная связь (видимый результат каждого действия);</li><li>Прощение ошибок (возможность отмены операций).</li></ol><p>Современные инструменты значительно ускоряют создание качественных интерфейсов. Дизайнеры используют Figma, Adobe XD и Sketch для прототипирования. Android-разработчики предпочитают Jetpack Compose и Material Design Components. Для iOS актуальны SwiftUI, UIKit и Human Interface Guidelines от Apple.</p><p>Наглядный пример различий между хорошим и плохим интерфейсом — приложения для доставки еды. В удачном решении ключевые элементы находятся в зоне комфортного доступа, процесс заказа разбит на логические шаги с индикацией прогресса, а дизайн адаптируется к условиям использования. В неудачном — мелкие тесно расположенные кнопки, длинные формы без разбивки на шаги и непонятная навигация.</p><h2>Проводим тестирование</h2><p>Юзабилити-тесты с фокус-группами, A/B-тестирование элементов и аналитика пользовательского поведения дают объективную картину взаимодействия клиентов с приложением.</p><p>Комплексное тестирование включает два основных направления:</p><ol><li>Автоматизированное тестирование: unit-тесты (JUnit, XCTest) для проверки отдельных компонентов; интеграционные тесты для проверки взаимодействия между модулями; UI-тесты (Espresso, XCUITest) для проверки интерфейса; end-to-end тесты для имитации полного пользовательского сценария.</li><li>Ручное тестирование: функциональное (соответствие требованиям), тестирование производительности (работа под нагрузкой), юзабилити (оценка удобства), кросс-платформенное тестирование (проверка на разных устройствах) и тестирование подключений (поведение при различном качестве интернет-соединения).</li></ol><p>Для этого используют специализированные инструменты: Firebase Test Lab для запуска тестов на множестве устройств, Crashlytics для мониторинга сбоев, Android Profiler и Xcode Instruments для анализа производительности. А Accessibility Scanner помогает адаптировать интерфейс для людей с ограниченными возможностями, расширяя потенциальную аудиторию.</p><h2>Публикуем приложение</h2><p>После тестирования и исправления проблем наступает ответственный момент публикации. Каждый магазин приложений имеет свои особенности процесса:</p><ul><li>Google Play: создание аккаунта разработчика ($25 единоразово); подготовка материалов (иконка, скриншоты, видео, описание); загрузка APK/App Bundle; заполнение формы оценки контента; настройка дистрибуции и ценообразования; ожидание проверки (до 2 дней).</li><li>App Store: регистрация в Apple Developer Program ($99/год); создание записи в App Store Connect; подготовка маркетинговых материалов; загрузка сборки из Xcode; заполнение информации о возрастных ограничениях; ожидание рассмотрения (1-7 дней).</li><li>RuStore: бесплатное создание аккаунта; подготовка материалов; загрузка APK; заполнение метаданных; быстрая модерация (до часа).</li></ul><p>Перед публикацией важно убедиться в соответствии приложения правилам магазина, подготовить политику конфиденциальности и настроить аналитику для мониторинга производительности с первого дня.</p><h2>Поддерживаем и обновляем</h2><p>После выпуска начинается непрерывный процесс поддержки и совершенствования продукта. Разработчики регулярно исправляют найденные ошибки, добавляют новые функции и улучшают работу уже существующих.</p><p>Для эффективного мониторинга используют комплексные аналитические инструменты: Firebase Crashlytics для отслеживания сбоев, Firebase Analytics/Google Analytics для анализа пользовательского поведения, RuStore Remote Config — бесплатный аналог  Firebase, Mixpanel для углубленного анализа пользовательских путей, AppMetrica от Яндекса как комплексное решение для российского рынка.</p><p>Автоматизация процессов разработки критически важна для регулярных релизов. CI/CD-системы (GitHub Actions, GitLab CI, Bitrise, Fastlane) позволяют автоматизировать сборку, тестирование и публикацию обновлений, значительно сокращая время выхода новых версий.</p><p>Оптимальная стратегия обновлений включает регулярный график релизов (каждые 2-4 недели) с четким приоритетом задач: критические исправления, новые функции, оптимизация производительности. В тренде современной разработки: персонализация на основе ИИ, многофункциональные суперапп-решения, адаптация под новые форм-факторы устройств и повышенное внимание к приватности данных.</p><h2>Продвигаем приложение</h2><p>На рынке огромная конкуренция, и без активного продвижения ваш продукт просто затеряется среди тысяч других программ. Важную роль здесь играет ASO (App Store Optimization) — оптимизация для магазина приложений. В некоторых случаях был <a href="https://www.businessofapps.com/marketplace/app-store-optimization/research/app-store-optimization-strategies/">зафиксирован</a> рост установок до 70% благодаря сильным ASO-стратегиям.</p><p>Для Android-приложений это означает настройку страницы так, чтобы пользователи легко находили ваш продукт. Здесь важно правильно подобрать ключевые слова для описания, создать привлекательную иконку и подготовить качественные скриншоты. Чтобы понять, какое оформление работает лучше, разработчики всё чаще используют A/B-тесты — такая возможность есть, например, в RuStore. Она позволяет сравнить разные версии карточки приложения и выбрать ту, которая эффективнее привлекает пользователей.</p><p>Также разработчики могут использовать как бесплатные, так и платные форматы продвижения. Один из бесплатных форматов — фичеринг, когда редакция размещает приложение в подборках, разделах или на главной странице магазина. Платное же продвижение позволяет настраивать таргетинг по демографии, географии, интересам, ключевым фразам и устройствам, а также запускать кампании прямо в поисковой выдаче магазина.</p><p>Еще один инструмент для продвижения приложений — социальные сети. Здесь можно показывать функционал программы, общаться с пользователями, отвечать на их вопросы и рассказывать о новых опциях. Это помогает создать активное сообщество вокруг продукта. Так, к примеру, В 2023 году компания Geozilla, разработчик приложения для отслеживания местоположения близких, провела кампанию по продвижению с инфлюенсерами в социальных сетях. В рамках сотрудничества удалось собрать более 1 миллиона просмотров, а коэффициент конверсии из кликов в установки приложения составил 24%.</p><p>Партнерские программы и рекламные кампании тоже сильно влияют на привлечение новых пользователей. Нельзя забывать и о работе с отзывами — нужно активно отвечать на комментарии и решать проблемы, о которых пишут люди.</p><p>Собственный сайт или блог разработчика тоже может привлечь внимание к приложению, особенно если у вас уже есть известный бренд.</p><h2>Подводим итоги</h2><p>Создание успешного приложения начинается с четкого определения цели и понимания потребностей пользователей. Затем нужно выбрать подходящие технологии, продумать необходимые функции, спланировать архитектуру и разработать понятный интерфейс. Обязательно проведите тщательное тестирование перед запуском. После публикации важно регулярно обновлять приложение на основе отзывов пользователей и данных аналитики, а также активно продвигать его в магазинах приложений и социальных сетях.</p><p>Не гонитесь за модными технологиями ради технологий — сосредоточьтесь на том, что действительно нужно вашим пользователям. Если вы создадите действительно полезный и удобный продукт, он найдет свою аудиторию и станет успешным.</p><p>iOS или Android? React Native или Flutter? Собираем все новости и гайды по мобильной разработке <a href="https://t.me/+Fb6_4ek5P6gzOTcy">тут</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Android-приложение без Firebase — миф или реальность?</title>
      <link>https://tproger.ru/articles/android-prilozhenie-bez-firebase---mif-ili-realnost-</link>
      <comments>https://tproger.ru/articles/android-prilozhenie-bez-firebase---mif-ili-realnost-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Илья Илемков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/android-prilozhenie-bez-firebase---mif-ili-realnost-</guid>
      <description><![CDATA[<p>Ищем альтернативы платформе Firebase от Google и разбираемся, почему разработчику важно хранить инструменты в разных корзинах.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/android-prilozhenie-bez-firebase---mif-ili-realnost-">Android-приложение без Firebase — миф или реальность?</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Firebase]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 15 Aug 2024 08:23:09 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет! Я Илья Илемков. С 2017 года успел поработать в Directum, EPAM Systems и Huawei. Попробовал почти всё в мобильной разработке: от написания обычных клиентских приложений до разработки системного ПО под Android. Теперь я старший программист-разработчик в инфраструктурной команде ВКонтакте — занимаюсь основным приложением и не только.</p><p>В этой статье на основе опыта работы с Firebase расскажу о плюсах, минусах и альтернативах использования этой платформы. Текст будет полезен тем, кто разрабатывает или планирует разрабатывать мобильные приложения.</p><p>В основе статьи — онлайн BoF-сессия на IT-конференции Mobius 2024, во время которой я обсуждал Firebase с коллегой Сергеем Мясниковым из ВКонтакте, Кириллом Поповым из ОК, Артёмом Ковардиным из RuStore и Алексеем Гладковым — мобильным разработчиком, автором проекта Mobile Developer.</p><h3>Что такое Firebase?</h3><p>Платформа Firebase популярна как набор решений для упрощения разработки мобильных приложений. С помощью её инструментов можно развернуть бэкенд со своей серверной логикой, подключить push-сообщения и аналитику, получать отчёты об ошибках, проводить A/B-тестирование. Платформа облачная: все ресурсы приложений, в том числе базы данных и клиентская аналитика, хранятся на серверах Google.</p><p>Самые востребованные инструменты Firebase:</p><ul><li>Firebase Cloud Messaging (FCM) — позволяет отправлять push-сообщения на устройства пользователей;</li><li>облачная служба Firebase Remote Config — позволяет вносить изменения в конфигурацию приложения в режиме реального времени;</li><li>сервис Firebase Crashlytics — помогает находить в приложениях причины зависаний, сбоев и медленной работы, собирать ошибки с продакшена, систематизировать их и фильтровать;</li><li>сервис Firebase Performance Monitoring — инструмент для аналитики, позволяет отслеживать ключевые метрики: использование памяти, CPU, сетевого трафика;</li><li>сервис Google Analytics — инструмент для продуктовой аналитики, позволяет получать информацию об использовании приложений и вовлечённости пользователей.<br /></li></ul><p>Именно с этих инструментов независимые разработчики и стартаперы обычно начинают знакомство с Firebase.</p><h3>Альтернативы Firebase: почему они важны?</h3><p>У Firebase действительно много полезных инструментов для мобильной разработки. Однако некоторые из них несовершенны и могут замедлить развитие проекта. Именно поэтому важны альтернативы, с которыми можно более точечно работать над продуктом.</p><figure><img src="https://media.tproger.ru/user-uploads/102205/2024-08-12/5cf94d10-cb0f-45e3-b4fa-05190cd7b947.jpg" alt="" /></figure><blockquote>Firebase — хороший выбор для старта приложения, в нём есть всё необходимое для запуска. Можно без лишних затрат опробовать технологии, поиграться с ними. Но сейчас мы находимся на этапе, когда Firebase постепенно теряет свою монополию. Альтернативные механики начинают давать не просто аналоги инструментам платформы, они открывают много новых опций. Поэтому вы даже выиграете, если будете использовать в том числе и альтернативные решения</blockquote><p>Есть ещё одна причина, почему важны альтернативы Firebase: разработчикам необходимо поддерживать свои продукты на версиях Android без сервисов Google, например на ОС, собранных на базе AOSP. Но вне зависимости от операционной системы и её версии лучше держать в голове (а желательно в инструментарии) запасные варианты на случай, если что-то пойдёт не так.</p><h3>Чем можно заменить FCM?</h3><p>Push-сообщения — один из самых востребованных инструментов Firebase. Часто именно из-за него разработчики начинают использовать эту платформу в своих проектах; у них просто нет вариантов — push-сообщения используют Google-сервисы, которые, в свою очередь, имеют «системные привилегии».</p><p>Однако если вы собираетесь делать приложение для рынка России, то крайне желательно рассмотреть и другие инструменты и подумать над запасными решениями. Часть рынка РФ занимают, например, смартфоны Huawei, в которых нет сервисов из Google Play.</p><ul><li>RuStore Push — фактически альтернативный вариант для доставки push-сообщений, причём со своим транспортом. Чтобы упростить интеграцию, есть и омниканальное решение — <a href="https://www.rustore.ru/help/sdk/general-push-notifications/">Universal Push</a>. Благодаря ему в рамках одного SDK можно обеспечить отправку в HMS, FCM и RuStore. Использование универсального API позволит подготовить некоторый fallback-механизм и поможет несколько повысить доставляемость уведомлений.</li><li>Отдельные вендоры смартфонов разрабатывают свои решения для своих устройств. Например есть облачная служба Push Kit для рассылки уведомлений. С помощью неё можно отправлять push-сообщения на устройства Android и iOS, а также в веб-приложения.</li><li>Если вы работаете в сфере B2B, то на рынке есть много MDM-решений — некоторые из них базируются на AOSP со своим транспортом для push-сообщений и со своим сервисом, который интегрируется в инфраструктуру заказчика. Этот вариант обычно используют компании, чтобы управлять устройствами сотрудников.</li></ul><blockquote>Когда проект только стартует, в нём обычно используется лишь Firebase. В дальнейшем желательно сразу заложить в проект несколько вариантов: например, RuStore Push, HMS Core, Firebase и один из омниканальных сервисов, — это позволит обезопасить себя и повысить доставляемость</blockquote><h3>Remote Config: какие есть аналоги?</h3><p>Второй по популярности инструмент Firebase — Remote Config. Из названия понятно, что сервис позволяет добавлять в приложение параметры, которые можно изменять удалённо с бэкенда. Он достаточно легко интегрируется в мобильные приложения — как на Android, так и на iOS.</p><p>Одно из главных достоинств Remote Config — аналитика. Благодаря этому инструменту можно проводить A/B-тесты и изучать аудиторию приложения на основе таких критериев, как возраст или увлечения.</p><p>В качестве альтернативы FRC можно назвать <a href="https://www.rustore.ru/help/developers/tools/remote-config/">RuStore Remote Config</a>, который также позволяет конфигурировать приложения и проводить A/B-тесты. Это решение доступно для приложений на устройствах c Android и iOS и позволяет заменить Firebase.</p><blockquote>Возможность конфигурировать свои приложения и проводить А/В-тесты — важная часть любого проекта, которая помогает делать его лучше для пользователей. Я советую диверсифицировать риски и использовать разные инструменты, чтобы не зависеть от одного сервиса</blockquote><h3>Анализ ошибок: Firebase vs Tracer</h3><p>Анализ ошибок — один из важнейших параметров, на которые опираются при создании и развитии приложений. Если баги не устранять, они могут потянуть за собой ухудшение UX, потерю лояльности и отток аудитории, а также смещение фокуса с написания продуктового кода на исправление ошибок.</p><p>Сервис Firebase Crashlytics предоставляет подобную функциональность поиска ошибок. Он пользуется популярностью среди разработчиков, однако возможности сервиса сравнительно ограничены: в нём неудобный поиск, неточная группировка событий (ошибок, ANR) по типу, нет инструментов для работы с non-fatal ошибками, из-за чего они могут создавать свалку. И это только небольшой список проблем — на деле их гораздо больше.</p><p>В вопросе анализа ошибок у Firebase есть крепкая альтернатива — сервис <a href="https://apptracer.ru/#/doc/about">Tracer</a> от ОК. Если сравнивать эти два инструмента, то Tracer не только предлагает похожую функциональность по анализу, но и расширяет инструментарий разработчика. В нём есть:</p><ul><li>полнотекстовый поиск по стектрейсу;</li><li>полноценный поиск по User ID — не только крешей, но и любых событий;</li><li>возможность самому на клиенте решать, как группировать ошибки. Например, отдельно отслеживать все баги, связанные с авторизацией;</li><li>поиск и фильтрация по любым полям и атрибутам;</li><li>поддержка A/B-тестов;</li><li>возможность профилирования и анализа утечек памяти в продакшене с загрузкой дампов памяти.</li></ul><blockquote>Мы начали создавать Tracer, когда разработчики Crashlytics, по ощущениям, совсем его забросили. Главная страница долго грузилась, сервис не умел сортировать ошибки по количеству задетых пользователей, не было полноценного поиска. В какой-то момент мы с коллегами решили делать свой продукт, в котором не было бы этих проблем</blockquote><p>Ещё одна альтернатива Crashlytics — сервис <a href="https://github.com/getsentry/sentry">Sentry</a>. Это open-source проект, главная особенность которого — возможность развёртки внутри собственной инфраструктуры. Это позволяет минимизировать риски, связанные с утечкой чувствительных данных: например, словарей обфускации или логов с пользовательскими данными. Однако в России легально приобрести и развернуть self-hosted решение от Sentry не выйдет. К тому же на больших объёмах данных оно работает не идеально. И при всём этом требует затрат на поддержку и инфраструктуру.</p><h3>Аналитика от Firebase: альтернативы есть</h3><p>Аналитика, прежде всего, помогает разработчикам зарабатывать на их продуктах. Без неё не получится закупить трафик и будет непонятно, как много времени пользователь проводит в приложении и сколько удалось заработать с каждого источника.</p><p>Сервис для аналитики от Firebase — <a href="https://firebase.google.com/products/analytics">Google Analytics</a> — позволяет увидеть общую картину того, что происходит в приложении. Однако для глубокого погружения он не очень подходит — для этого лучше использовать более локальные решения. Кстати, их довольно много: Google Analytics можно назвать самым легко заменяемым продуктом от Firebase.</p><p>Например, сервис <a href="https://tracker.my.com/">MyTracker</a> от VK. Он ориентирован на российский рынок, менее загружен, чем Performance Monitoring. Соответственно, позволяет более точно анализировать ключевые показатели мобильных приложений, эффективность источников трафика и монетизации. С помощью него можно сегментировать аудиторию и строить прогнозы LTV, оттока. Сервис интегрирован с RuStore и другими альтернативными сторами. На данных и сегментах MyTracker работают Remote Config и могут работать push-уведомления RuStore.</p><p>Ещё один вариант — написать свой движок для аналитики.</p><blockquote>Аналитика от Google позволяет только примерно представить, что происходит с приложением. Если вам необходимо детальное понимание, то лучше всегда держать „второе мнение“. Обычно мы используем внешние системы аналитики и самописные вещи. В этом есть значительный плюс: не надо отдавать важные и персонализированные данные о пользователях сторонней компании</blockquote><h3>Архитектурная гибкость</h3><p>Запуститься совсем без Firebase невозможно, однако у инструментов этой платформы есть альтернативы. Те решения, о которых я рассказал, дополнят необходимую функциональность. Я не призываю навсегда отказаться от Firebase — просто рекомендую проектировать архитектуру так, чтобы была возможность переключиться на другой инструмент. Благодаря этому вы сможете закрыть свои потребности, работать быстрее либо с бо́льшим удобством.</p>]]></content:encoded>
    </item>
    <item>
      <title>Платформа Google Firebase будет давать советы разработчикам, анализируя действия пользователей</title>
      <link>https://tproger.ru/news/google-firebase-predictions</link>
      <comments>https://tproger.ru/news/google-firebase-predictions?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Антон Фабрициус]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-firebase-predictions</guid>
      <description><![CDATA[<p>На мероприятии в Амстердаме компания рассказала о новых сервисах, которые скоро станут частью Firebase. Добавят инструменты для тестирования и поиска багов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-firebase-predictions">Платформа Google Firebase будет давать советы разработчикам, анализируя действия пользователей</a>»</p>]]></description>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Firebase]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Nov 2017 17:23:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Firebase, начинавшая как база данных, уже давно стала комплексной платформой для построения бэкенда. Она объединяет в себе множество сервисов и помогает разработчикам создавать и поддерживать работу приложений для смартфонов и веба.</p><p>На днях компания <a href="https://firebase.googleblog.com/2017/10/whats-new-at-firebase-dev-summit-2017.html">представила</a> несколько новых инструментов для разработки. Среди них наиболее интересными стали Firebase Predictions, о которой мы расскажем далее, и интеграция с Crashlytics, которая займётся анализом багов в приложениях.</p><h3>Firebase Predictions</h3><p>Данная технология использует машинное обучения для того, чтобы лучше понимать пользователей и их будущие действия. Система подскажет, кто купит больше всех, а кто совсем воздержится от трат. Это позволит сделать ваше приложение более персонализированным. Подобный анализ не является чем-то инновационным — новинкой стала простота использования. Predictions работает на основе алгоритмов компании Google, которая является владельцем Firebase.</p><p>Сервис пока находится в стадии беты, более подробную информацию можно найти на сайте компании.</p><h3>Интеграция с Crashlytics и A/B Testing</h3><p>Crashlytics отслеживает баги в приложении и классифицирует их, тем самым помогая вам правильно расставить приоритеты при исправлении ошибок. Данное обновление станет доступно в ближайшее время.</p><p>Внося изменения в проект, не всегда можно предугадать реакцию пользователей. При помощи A/B Testing разработчик сможет протестировать новую функцию на небольшом количестве устройств. Система автоматически проводит ряд экспериментов для выяснения наилучших параметров приложения. Желающим опробовать эту фичу советуем <a href="https://firebase.google.com/docs/remote-config/abtest-config">ознакомиться</a> с документацией.</p><h3>Редизайн консоли</h3><p>Консоль для разработчиков получила новый дизайн, что ожидаемо, учитывая добавление новых сервисов. На главном экране разместили больше информации о проекте. Все инструменты поделили на четыре основные категории: разработка, стабильность, аналитика и рост.</p>]]></content:encoded>
    </item>
  </channel>
</rss>