SDK или собственная разработка — что подойдёт вашему продукту?
Когда вы планируете собственный продукт, возникает вопрос: использовать готовое решение с SDK или API или разрабатывать компонент самостоятельно? Какой подход окажется выгоднее в долгосрочной перспективе? На что обратить внимание, чтобы сделать правильный выбор?
Эта статья поможет вам принять решение.
Что такое SDK?
Сначала разберёмся, о чём идёт речь. SDK — это набор инструментов, по сути готовое решение, которое можно использовать при разработке для определённых платформ. В SDK может быть одно или несколько API, инструменты программирования и документация. То есть для сборки и интеграции компонента всё равно потребуются усилия разработчиков, но писать код с нуля не придётся. Соответственно — меньше времени на разработку и ниже затраты.
В этой статье мы сосредоточимся на SDK для коммуникационных продуктов.
Некоторые разработчики предпочитают определённые SDK, потому что хорошо с ними знакомы. Но это не всегда лучший выбор для платформы, над которой они работают. Отсюда возникает вопрос —
Как выбрать правильный SDK?
Вот набор параметров, которые нужно проверить для каждого мультимедийного SDK, который вы рассматриваете:
- Документация API и SDK — насколько она понятна разработчикам. Если она составлена плохо или непонятно, на интеграцию уйдёт больше времени и денег, потому что программистам понадобится больше времени, чтобы разобраться.
- Набор технологий. Это языки и фреймворки, которые вы используете, и документация к ним. Платные API и SDK обычно предоставляют документацию для большинства языков и фреймворков. У бесплатных API с этим сложнее.
- Поддержка. Насколько хорошо компания-провайдер оказывает техническую поддержку, если возникают сложности с настройкой компонента.
- Надежность. Провайдер должен гарантировать уровень обслуживания 99,99%. Это означает, что система будет работать без сбоев 99,99% времени.
- Ограничения масштабируемости. Некоторые компоненты рассчитаны на определённое количество одновременных пользователей. Ваши требования могут превышать эти пределы.
- Безопасность. В текстовых и видеочатах передаются конфиденциальные данные, поэтому видео API должны соответствовать самым высоким стандартам защиты информации. Обычно такие требования выполняются только в платных SDK. Зато вместе с компонентом вы получаете и соответствие вашего продукта стандартам безопасности — и экономите время.
- Код лицензии компонента. Если SDK распространяется под лицензией GPL2/GPL3, вы обязаны предоставить исходный код всей вашей системы по запросу. Это означает, что любой разработчик может запросить код вашего продукта и использовать его бесплатно.
- Региональная поддержка. То есть, работает ли провайдер в вашей целевой стране — там, где находятся ваши пользователи. Например, 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 доллара в час с использованием SDK, а с кастомным компонентом — всего 0,81 доллара в час.
Распознавание текста увеличит стоимость до $4,96 в час для SDK и до $2,25 в час для кастомного компонента.
Итак, использование SDK в среднем вдвое дороже. Однако есть нюанс. Для 500 встреч в месяц использование SDK обойдётся в ~$2480 против $1125 в нашем примере. Такая ежемесячная переплата должна продолжаться не менее 3 лет, чтобы покрыть расходы на заказную разработку. Если ваш бизнес пока на уровне стартапа или вы просто проверяете гипотезу / создаёте MVP, вы не ожидаете большой нагрузки. И эта разница в затратах не окупит вложений, которые можно было бы сделать в разработку собственного компонента. Кроме того, некоторые поставщики SDK предлагают скидки и ограниченное бесплатное использование для стартапов.
Но если система большая и вы ожидаете, скажем, 5000 видеозвонков в месяц, разница в затратах на поддержку будет существенной. Индивидуальная разработка окупится за полгода и значительно сократит расходы. То же самое касается всех мультимедийных компонентов — голосовых вызовов, текстовых чатов, стриминга, видеоплееров и других.
Итак, при выборе между заказной разработкой и использованием SDK важно учитывать множество факторов и перспективы развития системы. В целом SDK чаще всего лучше подходят для создания MVP.
Мы поможем вам принять решение и дадим профессиональные рекомендации. Чтобы получить консультацию, заполните форму или свяжитесь с руководителем отдела продаж Вадимом по Skype: vadim_prushchik

