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

Что такое эти ваши экосистемы?

Давайте представим себе экосистему, как замечательный остров. На этом острове живут разные животные, растения, и даже есть реки и озера. Все они связаны между собой: рыбы питаются микроорганизмами, птицы едят рыбу, деревья предоставляют тень и плоды, а животные поддерживают баланс растительности. Эта сложная и удивительная взаимосвязь делает остров устойчивым и живым.

Теперь перенесём этот пример на технологии. Экосистемы, такие как Apple или Google, это как технологические "острова", где устройства, программы и сервисы взаимодействуют между собой. Если у вас есть iPhone (телефон от Apple), вы можете легко поделиться фотографиями с вашим iPad (планшетом) или посмотреть их на вашем Mac (компьютере). Всё это благодаря "экосистеме" Apple, где всё создано для удобства и простоты взаимодействия.

Google тоже имеет свою экосистему. Если вы используете почтовый сервис Gmail, то вы можете автоматически войти в YouTube, Google Drive или Google Photos. Одна учетная запись связывает все эти сервисы.

Другие примеры экосистем, более простых:

  • Microsoft: С помощью одной учетной записи вы можете работать на компьютере с Windows, играть на Xbox и использовать Office 365.

  • Amazon: Когда вы покупаете книгу на Amazon, вы можете прочитать её на Kindle или послушать аудиоверсию на Audible.

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

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

Чем же они хороши?

Экосистемы приносят ряд преимуществ, которые делают их привлекательными для пользователей:

  • Удобство: Один из основных плюсов — это удобство использования. Когда устройства и сервисы разработаны для работы вместе, пользовательский опыт становится более гладким и интуитивно понятным. Например, фотографии, сделанные на вашем iPhone, могут автоматически появиться на вашем Mac или iPad.

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

  • Безопасность: Такие компании, как Apple и Google, уделяют много внимания безопасности своих экосистем. Они обновляют свои системы, чтобы защитить данные пользователей от угроз и вирусов.

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

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

  • Доступ к новым продуктам и функциям: Пользователи экосистемы часто получают доступ к новинкам и эксклюзивным функциям.

  • Оптимизация под разные устройства: Программы и приложения, разработанные внутри экосистемы, часто оптимизированы для лучшей работы на всех устройствах этой экосистемы.

  • Обслуживание и поддержка: Компании, предоставляющие экосистемы, часто предлагают централизованную поддержку и обслуживание для всех своих продуктов.

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

Удобно? Бесспорно!

А где подвох?

В предыдущей своей статье я рассматривал возможность создавать мультиплатформенные приложния, просто потому что экосистемы задушили или почти задушили прекрасные проекты вроде Blackberry, ряда BSD систем и т.д. А ведь это по сути лишь одно из свойств мощных экосистем, так сказать, их побочный эффект воздействия на другие экосистемы и даже на людей использующих экосистемы. И таких свойств много, экономические, психологические и технические:

  • Зависимость от одного поставщика (Vendor lock-in): После того как пользователи инвестируют в определенную экосистему (покупка устройств, приложений, подписок), им может быть трудно перейти к другому поставщику без значительных затрат или потерь.

  • Ограниченный выбор: Пользователи могут быть ограничены в выборе приложений или устройств, которые оптимизированы для работы в рамках одной экосистемы.

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

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

  • Отсутствие инноваций: Если компания доминирует на рынке, ей может не хватать мотивации для инноваций, так как конкуренция уменьшается.

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

  • Риски безопасности: Хотя большие технологические компании уделяют много внимания безопасности, широко распространенные экосистемы могут стать целью для хакеров и мошенников.

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

Для многих из нас технология стала неотъемлемой частью жизни. Мы доверяем ей свои фотографии, заметки, даже бизнес-проекты. Но представьте себе ситуацию, когда, например, вы не можете оплатить подписку на свой облачный сервис, как это случилось со мной в Apple One. Внезапно я осознал, как многое из того, что мне дорого, зависит от одной компании.

И что теперь делать? (Манифест)

В современном мире технологий, где крупные компании, такие как Apple или Google, занимают доминирующие позиции, иногда кажется, что выбора у нас мало. Однако, мы забываем, что именно маленькие команды и инди-разработчики часто стоят у истоков инноваций и предоставляют нам инструменты, которые делают нашу повседневную жизнь проще и удобнее.

Мультиплатформенные приложения – это именно тот мост, который поможет сравнять правила игры. Они убирают границы между устройствами и платформами, предоставляя пользователям свободу выбора. Представьте, что у вас есть любимое приложение для заметок на вашем iPhone, и вы хотите использовать его на рабочем компьютере с Windows. Если это приложение мультиплатформенное, то проблем нет!

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

Если вы инди разработчик и читаете это, примите вызов! Пусть ваше приложение будет доступно для всех, независимо от их выбора устройства или операционной системы. Помимо увеличения дохода, ваша репутация и благодарность пользователей будут расти. Потому что, в конечном итоге, для нас, разработчиков, нет ничего ценнее, чем довольные пользователи нашего продукта.

Памятка создателям приложений

Возьмем пример Apple. Взглянем как устроена операционная система, мы увидим логично разбитые папки Документы, Изображения, Музыка. 

Но, заглянем в папку Изображения, где мы видим пару сущностей “Медиатека Фото.photoslibrary”, “Фототека Photo Booth”. Если нажать на них, откроется приложение Фото или Photo booth. Эти сущности называются пакетами, это папки “с защитой от дурака”. Что бы посмотреть содержимое такой папки/пакета можно вызвать дополнительное меню и выбрать “посмотреть пакет”. Внутри пакета мы видим папку с нашими фото, а так же дополнительные метаданные и БД требующиеся для приложения. Но так ли важна такая защита? Ответ нет, потому что…

Взглянем теперь на папку Музыка, где вместо пакета, находится обычная открытая для всех папка “Music” в которую мы спокойно можем зайти и увидеть список папок с исполнителями. Приложение музыка не запаковывает всю папку в пакет. Правда, всё равно хранит всю папку с музыкой “при себе”.

Когда создавались основные папки Документы, Изображения, Музыка обществом закладывался иной подход и иная идея. Каждая папка должна была быть наполенена самими файлами, а не пакетами программ и их базами данных. Задумывалось это для того что бы ЛЮБАЯ программа работающая с фотографиями, могла работать с фотографиями пользователя, а не только приложение “Фото” от Apple.

Это пример того как именно Apple ограничевает людей оставляя в своей экосистеме. Например если вы найдете альтернативное приложение для работы со своими фотографиями, то для использования совместно с программой “фото” от Apple, вам придется сделать дубликат всех ваших фотографий, или пользоваться приложением с API Apple, или искать иной подход.

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

Немного про облака их использование

Сейчас когда ты дочитал до этого места, ты непременно задаешься вопросом… автор ты в курсе что есть облака вообще-то, понимаешь что файлы в папках пользователя это всего лишь дополнительное кеширование?

Когда я понял, что мои данные находятся целиком в iCloud я понял насколько зависимость от вендора высока. Действительно я сразу зашел в настройки и убрал галочки “оптимизации”. Я сделал так что бы файлы ханились на моем устройстве, а для синхронизации использовали облако, а не наоборот.

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

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

Ну не только же в софте дело?

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

Да действительно, если посмотреть на остальные удобства которые предоставляет нам например Apple это:

  1. Синхронизация данных между всеми своими девайсами

  2. Универсальный буфер обмена

  3. Шаринг данных для наших знакомых и друзей

  4. И еще целый список неспецифичных для каждодневного использования фич

Это пожалуй основные якоря которые не позволяют вот так просто взять и перейти на другую экосистему. И кстати некоторые пункты касаются как не удивительно софта.

Синхронизация данных между всеми своими девайсами

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

Универсальный буфер обмена

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

Вообще как устроен буффер обмена? При копировании в буффере обмена создается несколько видов форматов данных. Например мы выделили кусок текста содержащего текст и картинки. В буффере обмена создается как сам кусок в формате RTF, так и отдельно текст, и отдельно картинки. Когда же мы делаем вставку, приложение которое берет инфромацию из буффера обмена, принимает первый наиболее подходящий ему формат.

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

Работает просто, звучит просто, но саму программу буффера обмена я пока только проектирую.

Шаринг данных для наших знакомых и друзей

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

Так какие еще приложения еще требуются?

Собственно можно выделить несколько необходимых приложений, удобных как приложения от Apple:

  1. Демон универсального буффера обмена (формат .rtfd), для Syncthing

  2. Приложение заметки (папка “документы/заметки”, в виде .rtfd или .pdf файлов).

  3. Приложение списка дел (папка “документы/дела”, в виде .tda или иного формата файлов) 

  4. Приложение календарь (папка “документы/календари”, в виде .ics файлов)

  5. Приложение контактов (папка “документы/контакты”, в виде .vcard или .vcf файлов)

  6. Приложение фото (папка “документы/альбомы”)

Главное требование это работа и хранение данных локально не используя сервера третьих лиц и приятный интерфейс. Эти требования на самом деле довольно серьезные, т.к. большинство приложений которые я смотрел имели эти недостатки.

Божемой, да зачем все это нужно еще и писать?

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

Тут-то и начнётся головная боль: как всё вернуть? Эта статья как раз приглашение к размышлению и, возможно, один из ответов на этот вопрос. Давайте не ждать, пока молния ударит — лучше быть готовыми заранее.

Комментарии (9)


  1. SalazarMAX
    01.09.2023 09:41
    +4

    Всё основное — self-hosted: Plex для музыки, видео и фотографий, Nextcloud для облачной синхронизации, GitLab для хранения кода, Duplicati для бэкапа файлов в зашифрованном виде во внешние облака, Zoneminder для видеонаблюдения. Тем не менее, отказываться от экосистем полностью не вижу смысла: мои личные сервисы доступны только по VPN: например, быстро скинуть архив с файлами продуктивнее через публичный облачный сервис.


  1. LyuMih
    01.09.2023 09:41

    Ещё сюда можно добавить Fediverse и Mastadon, которые хотят по своему повлиять на данную ситуацию.
    https://www.youtube.com/watch?v=is_q7CFUdTI&list=PLeDR6lYFEHWGE-kI9ChrIaPsB0iPbQIVQ&ab_channel=Теплицасоциальныхтехнологий


  1. kost_tr
    01.09.2023 09:41
    +1

    Есть ролик у Mr Freeman там он ставит вопрос зрителю: "А не боишься просто взять и отдать свой гаджет незнакомцу?.. То то и оно, ведь без него тебя не существует...."

    С тех прошло много времени и я начал ценить другие вещи:)


  1. BugM
    01.09.2023 09:41

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

    Я не знаю зачем доступ ко всем моим фотографиям приложению Госуслуг. А вот фотку вот этой справки для отправки на Госуслуги я конечно ему дам. И тому подобное.


    1. svanichkin Автор
      01.09.2023 09:41

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


      1. BugM
        01.09.2023 09:41

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

        Вот и получается что не папочка с фотками, а сложная структура.


        1. svanichkin Автор
          01.09.2023 09:41

          это не так, на маке например любое приложение получает разрешение именно на доступ к папке

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


          1. BugM
            01.09.2023 09:41

            Есть такое. Мне система айфона нравится больше. Просто, логично и безопасно.

            Схему с таким доступом к любым файлам, кроме своего каталога, любого приложения стоит распространить вообще не все. И телефоны и компы. Уйдёт целый класс проблем. Но вместо обычной файловой системы у вас будет сложно-непонятная структура.

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


  1. Batalmv
    01.09.2023 09:41

    Мне почему-то кажется, что дело конкретно в Apple :)

    Из личного опыта. Я ни за что не плачу, так как мне хватает бесплатного места и сервисов. Поэтому половина аргументов типа vendor lock-in, дорого ... сразу встали и вышли.

    Я думаю, что самым простым стимулом быть "легким и независимым" - это ни за что не платить (как индивидум) в цифровом мире. И такая постановка вопроса сразу снимает все проблемы от слова "совсем".

    Да, работодатель конечно может купить мне софт, тут я не возражаю.

    -----

    Просто то, что а вдруг ... ребята, все проще. Честно. Есть волшебное слово - backup :) Либо - в реальности это не так важно :)