QT — что это и почему мы выбрали его для детского приложения с видео

QT — что это и почему мы выбрали его для детского приложения с видео

Коротко о проекте

  • 01
    Заказчик

    Детский клуб раннего развития Baby Cool

  • 02
    Задача
    • Быстро и с минимальными вложениями создать детское приложение с видео для iOS и Android
    • Администраторам должно быть удобно загружать длинные видеоролики
    • Предусмотреть механизм платной подписки
  • 03
    Решение

    Разработать мобильное приложение на Qt, фреймворке C++

  • 04
    Результат
    • За 5 месяцев разработали мобильное приложение
    • UX/UI приложения ориентировано на детскую аудиторию
    • За счет Qt сэкономили бюджет и ускорили разработку: одна команда выпустила приложение сразу для двух платформ
    • Благодаря Qt framework упростили интеграцию с платежными системами: основные банковские решения написаны на С++, как и Qt
    • Настроили систему непрерывной загрузки видео: ролики можно загружать целой коллекцией, независимо от их размера и скорости интернета
    • Систему можно масштабировать в будущем

Qt framework написан на С++. На нем разрабатывают кроссплатформенные приложения — от английского cross-platform. Они работают одновременно на нескольких операционных системах: iOS, Android и других. Это ускоряет сроки разработки и экономит бюджет: команда пишет программный код для одного приложения вместо двух.

Qt является не только фреймворком. Это также библиотека классов языка C++ и набор инструментов для создания графических интерфейсов (GUI). Framework Qt предоставляет два основных набора инструментов:

  1. Qt for Application Development для создания кроссплатформенных приложений, работающих на Windows, Linux, macOS, iOS, Android и других ОС. Включает компоненты: Qt Framework, Qt Creator, Qt Quick и QML, Qt Widgets, Qt Mobility.
  2. Qt for Device Creation для разработки встраиваемых систем, работающих на устройствах: автомобильных развлекательных системах, медицинском оборудовании и других. Включает компоненты: Qt Framework, Qt for Device Creation Toolchain, Qt for Embedded Linux, Qt Automotive Suite.

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

Детский клуб хочет проводить развивающие занятия онлайн

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

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

Создали детское приложение с видео

Разработали концепцию, спроектировали UX/UI

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

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

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

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

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

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

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

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

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


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

Написали приложение на Qt framework

После согласования дизайна с заказчиком приступили к программированию приложения. Мы выбрали Qt — это фреймворк на языке C++. Это решение позволило с помощью одной команды сделать приложение сразу для двух платформ. Если писать два нативных приложения, требуется две команды: Swift-разработчики для iOS и Kotlin-разработчики для Android.

Преимущества разработки на Qt framework

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

Qt framework оптимально подходит для создания MVP и проверки гипотез. Если нужно проверить, как рынок реагирует на продукт, изучить реакцию пользователей разных платформ, стоит начать с кроссплатформенного решения. Модели поведения аудитории iOS и Android сильно отличаются. После проверки может оказаться, что продукт подходит именно пользователям iOS. Тогда можно сфокусировать ресурсы и бюджет на разработке одного нативного приложения.

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

Приложение на стадии тестирования

Нам понадобилось 5 месяцев для завершения активной стадии разработки. Проектом занималась команда из 7 человек: дизайнера, двух Qt-разработчиков, бэкенда, фронтенда, тестировщика и проджект-менеджера. Сейчас приложение на стадии тестирования и наполнения контентом.

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

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

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

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

Когда видео загружается, оно сразу транскодируется в форматы разного качества: 240, 360, 480, 720p и Full HD. Формат выбирается плеером приложения автоматически при воспроизведении видео и зависит от скорости интернета: чем она выше, тем лучше качество. Даже при плохом соединении видео продолжает воспроизводиться, но в меньшем разрешении.

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

В чем бы вы ни нуждались, мы можем помочь!

Расскажите нам, с какими проблемами вы сталкиваетесь в своем бизнесе. Мы с нетерпением ждем вашего ответа.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.