Когда вы планируете собственный продукт, возникает вопрос: использовать готовое решение, которое предоставляет SDK или API, или разрабатывать компонент кастомно? Какой подход будет более выгодным в долгосрочной перспективе? Что нужно учитывать, чтобы сделать правильный выбор?

Эта статья поможет принять решение.

Что такое SDK?

Сначала разберемся, о чем мы говорим. SDK — это набор инструментов, по сути готовое решение, которое можно использовать при разработке для определенных платформ. В SDK может быть одно или несколько API, инструменты программирования и документация. То есть, для сборки и интеграции компонента по-прежнему потребуются усилия разработчиков, но не придется писать код с нуля. Это в свою очередь — меньше времени на разработку и меньше затрат.

В этой статье мы сосредоточимся на SDK для коммуникационных продуктов.

Некоторые разработчики чаще отдают предпочтение конкретным SDK, потому что хорошо с ними знакомы. Но не всегда это лучший выбор для платформы, над которой они работают. Отсюда вопрос —

Как выбрать правильный SDK?

Вот набор параметров, которые нужно проверить для каждого мультимедийного SDK, который вы рассматриваете:

  1. Документация API и SDK — насколько она понятна разработчикам. Если она составлена плохо или непонятно, на интеграцию придется потратить больше времени и денег, так как программистам потребуется больше времени, чтобы разобраться.
  2. Набор технологий. Это языки и фреймворки, которые вы используете, и документация к ним. Платные API и SDK предоставляют документацию для большинства языков и фреймворков. У бесплатных API с этим сложнее.
  3. Поддержка. Насколько хорошо компания-провайдер оказывает техническую поддержку, если возникают сложности в настройке компонента.
  4. Надежность. Нужно, чтобы провайдер гарантировал 99,99% уровня обслуживания. Это значит, что система будет работать исправно 99,99% времени.
  5. Ограничения масштабируемости. Некоторые компоненты имеют ограничения по числу одновременных пользователей. Ваши требования могут не вписываться в это ограничение.
  6. Безопасность. В текстовых и видеочатах передаются чувствительные данные. Поэтому видео API должны соответствовать самым высоким стандартам безопасности данных. В основном это применимо только к платным SDK. Но зато вместе с компонентом вы “покупаете” и соответствие вашего продукта стандартам безопасности. Тем самым экономите время.
  7. Код лицензии компонента. Если SDK находится под лицензией GPL2/GPL3, вы будете обязаны предоставить доступ к исходному коду всей вашей системы по запросу. Это означает, что любой разработчик может запросить код для вашего продукта и использовать его бесплатно.
  8. Региональная поддержка. То есть, работает ли провайдер в вашей целевой стране — там, где находятся ваши пользователи. Например, Twilio работает в 50 странах, а Vonage — в 80 странах.

Плюсы и минусы SDK для мультимедиа-продуктов

Плюсы

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

Минусы

  • Использование SDK ограничивает гибкость настройки для разработчиков — им придется работать в рамках ограничений конкретного решения, которое они используют. Например, некоторые SDK для редактирования AR-видео не позволяют загружать собственные маски. Не все SDK для создания интерактивных досок для обучения позволяют прикреплять видеофайлы.
  • В SDK может не оказаться всех функциональностей, которые необходимы разработчику. Например, добавление редактора формул к компоненту доски. То есть, даже с платным решением ваш продукт может по-прежнему требовать кастомной разработки.
  • Использование SDK — дополнительные ежемесячные расходы. Если ваша платформа растет быстрее, чем вы ожидали, вы можете потратить больше средств на поддержку необходимой нагрузки.

Как понять, что вам нужна кастомная разработка

Ответьте на эти 3 вопроса:

1. Насколько необходимая вам функциональность сложная?

Вам нужен простой текстовый чат или целая система управления обучением (LMS)? Какие особенности вы ожидаете от своего продукта?
Сложность системы оценивается на этапе планирования. Это может быть как простая функция текстового чата один на один, так и компонент доски для презентаций, настройка ролей пользователей или применение определенного кодека, FPS, стриминг-протокола.

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

2. Сколько пользователей нужно поддерживать всего и одновременно?

Некоторые мультимедийные SDK имеют ограничения на количество комнат и юзеров, которые используют платформу одновременно. Есть ограничения и на звонки, конференции, стримы, чаты. Если вам нужно больше, чем предлагает SDK, потребуется кастомная разработка — для масштабирования.

3. Готовы ли вы переплачивать каждый месяц?

Рассмотрим на примере.

Вам нужен простой групповой видеочат на 5 человек с качеством видео 480p. Встреча должна длиться один час. По нашим данным, стоимость обработки этой встречи с помощью SDK — ~ $1,2 в час. Для кастомного компонента это будет $0,69 в час.

Также требуется функция записи видео. Это увеличивает стоимость встречи с SDK до ~ $2,4 в час. Для кастомного компонента стоимость увеличится всего на 6 центов — общая стоимость будет $0,75 в час.

Записи видеоконференций часто хранятся в облачном хранилище, чтобы участники имели к ним доступ. Это еще одна статья расходов. Как рассчитать размер видео.

По нашим данным, для хранения одной записи видеоконференции нужно 13,72 ГБ. Это увеличит стоимость до ~ $3,04 доллара в час c SDK, а с кастомным компонентом будет всего $0,81 в час.

Распознавание текста увеличит почасовую стоимость до $4,96 для SDK и лишь до $2,25 в случае кастомного компонента.

Итак, использование SDK в среднем вдвое дороже. Однако есть нюанс. Для 500 встреч в месяц использование SDK обойдется в ~$2480 против $1125 в нашем примере. Такая ежемесячная переплата должна продолжаться не менее 3 лет, чтобы покрыть расходы на заказную разработку. Если ваш бизнес пока на уровне стартапа или вы просто проверяете гипотезу / создаете MVP, вы не ожидаете большой нагрузки. И эта разница в затратах не покроет инвестиции, которые вы могли бы сделать в разработку кастомного компонента. Кроме того, некоторые поставщики SDK предлагают скидки и ограниченное бесплатное использование для стартапов.

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

Итак, когда стоит выбор между заказной разработкой и использованием SDK, нужно учитывать множество параметров оценки, а также перспективы роста системы. Но в целом SDK обычно лучше всего подходят для MVP.

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

  • Вопросы клиентов