Все приложения на смартфоне без интернета. Мнения и опыт разработчиков
. Зачем софту постоянное подключение к Сети и можно ли работать без негоРазработчики рассказали, как создавать офлайн-приложения для смартфонов

Владельцы умных матрасов не могли уснуть из-за падений серверов Amazon Web Services (AWS), так как не умели работать в офлайн-режиме. Множество приложений в России не могут работать из-за отключений мобильного интернета в разных регионах страны.
Пользователи высказывают недовольство, а специалисты периодически бьют тревогу из-за того, что их приложения всецело зависят от интернет-соединения, хотя с точки зрения написания кода приложение может выполнять множество базовых функций и без постоянного подключения к Сети.
РБК Life опросил разработчиков и выяснил, почему же такая зависимость существует и реально ли решить проблему на практике.
Интернет-зависимость у приложений
Приложения зачастую полностью зависят от постоянного интернет-соединения потому, что они непрерывно получают через него данные, рассказал РБК Life разработчик и основатель сайта AppTractor.ru Леонид Боголюбов.
«Например, приложение для навигации получает данные о трафике с сервера провайдера и по этим данным строит более быстрый маршрут. Приложение — социальная сеть получает последние посты друзей и знаменитостей с сервера Сети, ему просто неоткуда брать данные, кроме как c сервера. И так далее. Зависимость от Сети если не глобальная, то очень сильная», — констатировал он.
Очень многое в зависимости приложения от интернета связано с его типом, рассказал РБК Life iOS-разработчик Иван Вавилов.
«Если мы говорим про банковские приложения или приложения для трансляции видео, приложения социальных сетей и мессенджеров, то здесь без интернета никак», — констатировал он.
В таких случаях используют интернет как канал связи с источником данных, чем является сервер. Необязательно, что сервер находится в том же городе или даже в той же стране, уточнил разработчик.
Современные приложения проектируются как распределенные сервисы — большая часть данных, правил и логики находится не в телефоне, а в облаке, рассказал РБК Life founder и CEO (основатель и генеральный директор) «Охвати.рф» Дмитрий Дедов.
«Например, нужна единая согласованная картина для всех пользователей и сотрудников. Если у нас централизованные правила ценообразования, бизнес-логика обработки заявок и история коммуникаций, мы хотим, чтобы все видели одну и ту же правду. Поэтому приложения чаще всего «спрашивают» у сервера, что сейчас актуально. И это делает устройство зависимым от Сети», — пояснил он.
Также Дедов указал на безопасность и соблюдение регуляций внутри приложений, чего сложнее достичь без интернета.
«Хранить большие объемы персональных и юридических данных локально рискованно. Сервер позволяет контролировать доступ, логирование действий и соответствие требованиям — еще одна причина держать логику в облаке, а не в телефоне», — добавил он.
Для понимания зависимости от интернета все приложения можно условно разделить на три категории, сообщил РБК Life разработчик мобильного приложения LegalHelp Денис Соколов:
- полностью автономные — когда вся логика работы заложена внутри самого приложения;
- условно автономные (с функцией синхронизации) — где выход в Сеть не является основным функционалом;
- зависимые от актуальных данных — это соцсети, маркетплейсы, банки и мессенджеры, где идет работа с постоянно обновляемой информацией.
Большинство современных приложений построены по принципу «тонкого клиента», когда данные вынесены на серверы, а само приложение служит удобным интерфейсом, рассказал РБК Life основатель ИТ-интегратора AWG и платформы гибкой занятости SkillStaff Александр Хачиян. По его словам, так приложения остаются легкими, быстро работают и обновляются.
Как может выглядеть офлайн-режим
Многие приложения просто не инвестируют деньги и время на то, чтобы реализовать именно отдельные офлайн-функции, указал Иван Вавилов.
«Например, при входе в банковское приложение без интернета выходит ошибка, и нельзя посмотреть никакую информацию о состоянии счетов», — отметил он.
Важно с точки зрения пользовательского интерфейса добавить, что данные потенциально устарели, если нужен офлайн-режим, уверен Вавилов.
«Указать, что баланс по этой карте в последний раз обновлен два часа назад, например», — описал специалист.
По словам Вавилова, в офлайн-режиме при желании социальные сети могут отображать последние загруженные посты, а мессенджеры — показывать последние сообщения. Большинство мессенджеров это уже делают, добавил разработчик.
Некоторым приложениям интернет вообще не нужен, рассказал Вавилов. К примеру, таким, как приложения для создания списков дел или покупок, фоторедакторы, и простейшим вроде калькулятора.
«Все это никак не взаимодействует с интернетом. Но если вы хотите редактировать списки или фото на разных устройствах, то нужно это синхронизировать, то есть интернет необходим», — предупредил он.
Вавилов констатировал, что разработчикам проще не сразу запрограммировать все возможные функции внутри приложения, но переложить часть на сервер. Например, новогодние фильтры в фоторедакторах — чтобы они подгружались не сразу, а уже после.
Приложение, которое основано на неменяющемся или редко меняющемся контенте, вполне может работать без постоянного интернета, отметил Леонид Боголюбов.
«Например, справочнику птиц для основного функционала не нужен интернет: новые виды на нашем континенте не появляются — можно сохранить все данные внутри приложения и выдавать их по запросу», — пояснил он.
По словам разработчика, точно так же навигатор может работать без интернета: можно закачать карту (она меняется достаточно редко) в телефон, и она прекрасно будет работать. Да, данных о трафике не будет, но главный функционал — построение маршрутов — будет работать, уточнил специалист.
«Можно представить и иные приложения без интернета, но все это будет усеченная версия полного продукта. Да, шагомер будет считать шаги локально, но сравнить свои успехи с друзьями или прочитать интересную статью о том, как полезна ходьба, вы уже не сможете», — заметил Боголюбов.
Приложения могут работать без интернета, но здесь важно разграничить два уровня — техническую возможность и пользовательский опыт, указал Дмитрий Дедов.
«Технически смартфон — полноценный компьютер: он может хранить данные, выполнять вычисления, собирать документы и взаимодействовать с пользователем в офлайне. Но вопрос в том, что именно вы хотите сохранить и какой пользовательский опыт ожидает клиент», — отметил он.
По словам разработчика, в офлайне приложение вполне может позволить пользователю просматривать те карточки автомобилей и условия, которые были загружены ранее, редактировать параметры поиска и многое другое, однако есть вещи, которые без Сети просто не работают полноценно.
«Можно подготовить много шагов офлайн, но ключевые подтверждения и юридически значимые операции почти всегда потребуют сервера и связи. Так что степень автономности приложений строго зависит от требований бизнеса и от того, какие процессы вы переносите на устройство», — резюмировал Дедов.
Даже в больших мобильных приложениях некоторые функции можно сделать доступными офлайн. Например, указывать режим работы и адреса, проигрывать скачанный контент, такой как фильм или книга. Задача разработчика — предугадать сценарии потребности офлайн-режима и предусмотреть возможность его использования, уверен Александр Хачиян.
Насколько ограничен функционал
Многие простые функции приложения могут выполнять и без подключения к интернету на постоянной основе: простое редактирование фото, набор текста, съемка видео, ведение расписания, фиксация физических показателей пользователя, карточки с иностранными словами и т.д., рассказал Леонид Боголюбов. Если кратко — все, где не нужны актуальные данные или внешние ресурсы.
«Сейчас даже нейронные сети прекрасно работают «внутри» смартфонов. Вопрос в том, с каким качеством и скоростью будут работать эти функции, будут ли они реально полезны людям», — пояснил разработчик.
По его мнению, те же Foundation Models, использующие «железные» ресурсы смартфона, очевидно, будут значительно уступать Nano Banana, которая работает, простыми словами, «на сотне графических процессоров в дата-центре Google».
«Да и обновляться модели на смартфоне будут гораздо реже. Будет ли полезно вам знать, что значит испанское слово desconectada, если вы не сможете посмотреть, как оно применяется в реальной жизни в разных вариациях?» — привел пример разработчик.
Постоянное соединение нужно самим разработчикам по нескольким причинам, пояснил Иван Вавилов.
Первая — проверка версии приложения, платные функции доступны или нет.
Вторая — использовать интернет для отправки аналитики и статистики. Но это, по идее, не должно быть преградой для работы приложения без интернета, пояснил iOS-разработчик.
Третья — условно бесплатные приложения с показом рекламы. В этом случае если нет интернета, то реклама тоже не может быть показана, потому что рекламные баннеры запрашиваются в Сети, а разработчики получают за это оплату, добавил специалист.
Если смотреть широко, то любое приложение может довольно много делать без интернета, рассказал Дмитрий Дедов.
«Главное правило простое: все, что не требует немедленного обмена данными с другими пользователями или внешними системами, можно вынести в офлайн», — отметил разработчик.
Он перечислил такой функционал:
- просмотр уже загруженной информации;
- создание и подготовка контента;
- написание черновиков и управление отложенными действиями, которые могут происходить по заранее запланированному алгоритму и без Сети;
- локальная логика и расчеты по платежам без обращения к серверу (интернет нужен для подтверждения и актуализации);
- навигация и интерфейс;
- камера, микрофон, галерея, сканирование документов, геолокация, локальные уведомления, то есть нативные возможности телефона, которые не зависят от интернета напрямую;
- накопление данных для последующей отправки.
«Хороший продукт не «ломается» без интернета, а меняет режим работы. Пользователь продолжает делать полезные вещи, а приложение просто дожидается момента, когда сможет синхронизироваться с сервером», — подчеркнул Дедов.
Уменьшить зависимость приложений от интернета можно, уверен Денис Соколов. Это возможно в том числе путем расширения их локального функционала.
«Для приложений, которым критически важны актуальные данные, существуют технические подходы: локальное кеширование (сохранение большого объема данных), а также фоновая синхронизация и отложенная отправка.
Каким должно быть офлайн-решение для приложений
Исправить зависимость приложений от интернета полностью нельзя, констатировал Леонид Боголюбов. По его словам, данные, получаемые через интернет, нужны подавляющему большинству приложений и сервисов.
«Отчасти — для полноценной работы, отчасти — для обогащения этой самой работы. Без них они работать не будут или это будут совсем другие приложения», — добавил разработчик.
В рамках потенциальной доработки офлайн-режима приложения должен быть применен разносторонний подход, заметил Иван Вавилов.
«Стоит проанализировать, какие функции могут работать офлайн. Например, какие наиболее важные и популярные у пользователей функции можно сделать доступными без интернета. Нет смысла сохранять внутри приложения на смартфоне какие-то совсем не используемые функции», — резюмировал разработчик.
Зависимость можно существенно смягчить, но при этом важно понимать обратную сторону: сложность разработки, затраты на поддержку и возможные компромиссы по безопасности и консистентности данных, рассказал Дмитрий Дедов.
По его словам, существуют практики в разработке, которые реально помогают. Например, проектировать приложение так, чтобы первичное взаимодействие происходило с локальным хранилищем (база на устройстве), а синхронизация с сервером шла асинхронно. В таком случае пользователь всегда получает отзывчивый интерфейс, даже если Сеть отсутствует, указал разработчик.
Еще один способ — когда все изменения (заявки, документы, корректировки) записываются в устойчивую очередь на устройстве, а при подключении к Сети отправляются разом на синхронизацию.
«Важно реализовать детекцию конфликтов и логику их разрешения — например, если два пользователя одновременно редактировали одну заявку на разных устройствах», — уточнил Дедов.
Основная причина того, что бизнес часто не заинтересован в глубокой офлайн-реализации, — экономическая целесообразность, констатировал Денис Соколов.
«Разработка и поддержка двух режимов работы (онлайн и офлайн) значительно удорожает проект. Основная аудитория крупных коммерческих приложений (мессенджеров, соцсетей, банков) — жители городов с постоянным доступом в интернет. Для них офлайн-функционал не является критичным», — добавил он.
По словам разработчика, для некоторых операций (например, финансовых в банковских приложениях) офлайн-режим невозможен из соображений безопасности или из-за самой логики сервиса, требующей мгновенного обмена данными с центральным сервером.
Проблема неготовности мобильных приложений к сбоям интернет-соединения кроется в психологической неготовности бизнеса выделять бюджеты на отказоустойчивость, уверен Александр Хачиян.
«Часто большие сервисы кажутся разработчикам нерушимыми, поэтому они не реализуют дорогостоящую инфраструктуру с резервной копией, размещенной в разных локациях. Бизнес идет на такие затраты, только если простой мобильного приложения на час стоит дороже, чем годовое содержание такой системы», — добавил он.
Хачиян привел в пример, как при загрузке сайта известной торговой компании перестало всплывать окошко с вопросом, верно ли определился город.
«Одним утром сайт перестал грузиться, потому что обращался за определением города в один из сервисов «Яндекса», который никогда не сбоил. Но как раз в это утро именно этот сервис не работал. И поскольку архитектура не предполагала пропуска этого шага, сайт не грузился несколько часов, пока мы не определили, где ошибка, а «Яндекс» чинил свой сервис», — резюмировал он.



















