Qt — фреймворк на С++ для создания кроссплатформенных приложений. Он позволяет разработать одно приложение для пользователей разных операционных систем: iOS и Android. Это помогает ускорить сроки разработки и сэкономить бюджет: проектом занимается одна команда разработчиков вместо двух.
У OrbitSoft большой опыт разработки на Qt. Например, мы использовали этот фреймворк при создании приложений для системы учета продаж и медицинской видеоплатформы. В этой статье рассказываем про разработку приложения с видео для детского развивающего центра.
Детский клуб хочет проводить развивающие занятия онлайн
Baby Cool — это детский клуб раннего развития. В нем проводятся занятия для детей: иностранные языки, шахматы, подготовка к школе и другие. Раньше обучение проводилось только очно, что ограничивало целевую аудиторию клуба.
Руководителю клуба пришла идея создать мобильное приложение с видео, чтобы предлагать те же уроки онлайн. Он обратился в OrbitSoft. Нам предстояло разработать приложение, где дети и их родители могут проходить занятия с преподавателями, играть в развивающие игры, изучать языки, читать сказки и заниматься онлайн-творчеством.
Разработали концепцию, спроектировали UX/UI
У заказчика были только идея и техническое задание, поэтому разработку начали с создания концепции проекта. Дизайнеры составили прототип интерфейса с учетом пользовательского опыта. Клиент увидел, как будет выглядеть приложение и как пользователь будет вести себя в нем. Пользовательский путь получился простым и интуитивно понятным.
После оплаты подписки пользователь получает доступ к контенту. В приложении есть несколько разделов с видео: изучение языков, развивающие занятия, сказки, идеи для творчества. Чтобы быстрее выпустить приложение, мы сосредоточились на основных разделах. В дальнейшем планируется добавить больше активностей, языков для изучения и раздел с контентом для родителей.
Контент детского приложения разделен по возрастам: от 2 лет и старше. Когда пользователь выбирает другую возрастную группу, наполнение разделов меняется соответственно возрасту. В рамках одного аккаунта взрослого в приложении можно создать несколько аккаунтов для детей разных возрастов.
Один из основных разделов приложения — развивающие занятия. Каждый курс занятий имеет подробное описание и удобную навигацию, каждое видео можно сохранить для повторного просмотра или скачать для просмотра офлайн. По завершении каждого курса или обучающего блока предусмотрены тестовые вопросы и задания.
Родители управляют приложением из личного кабинета. В нем можно изменить данные взрослого, добавить или удалить данные о детях, управлять подпиской на приложение. В специальном разделе личного кабинета родитель может отслеживать прогресс ребенка: сколько занятий и тестов он прошел, сколько осталось.
Написали приложение на Qt
После согласования дизайна с заказчиком приступили к разработке приложения. Мы выбрали Qt — фреймворк на языке C++. Это решение позволило с помощью одной команды сделать приложение сразу для двух платформ. Если писать два нативных приложения, требуется две команды: Swift-разработчики для iOS и Kotlin-разработчики для Android.
Преимущества разработки на Qt
- Сэкономили бюджет: заказчик заплатил за работу одной команды программистов, а получил приложение сразу для двух платформ.
- Ускорили разработку: когда тестировщики указывают на ошибку в коде, ее нужно исправлять только в одном приложении, а не в двух.
- Упростили интеграцию: так как основные банковские решения написаны на С++, то интеграция Qt-приложения с банком легко настраивается и работает без ошибок.
Qt оптимально подходит для создания MVP и проверки гипотез. Если нужно проверить, как рынок реагирует на продукт, изучить реакцию пользователей разных платформ, стоит начать с кроссплатформенного решения. Модели поведения аудитории iOS и Android сильно отличаются. После проверки может оказаться, что продукт подходит именно пользователям iOS. Тогда можно сфокусировать ресурсы и бюджет на разработке одного нативного приложения.
У Qt есть и свои недостатки, поэтому за разработкой приложений стоит обращаться к опытным командам, которые знают возможности и ограничения фреймворков и могут подобрать оптимальный для каждого проекта.
Приложение на стадии тестирования
Нам понадобилось 5 месяцев для завершения активной стадии разработки. Проектом занималась команда из 7 человек: дизайнера, двух Qt-разработчиков, бэкенда, фронтенда, тестировщика и проджект-менеджера. Сейчас приложение на стадии тестирования и наполнения контентом.
Чтобы заказчику было удобнее работать с контентом, мы реализовали административную панель не в приложении, а на отдельном сайте. Основной контент приложения — видео. При загрузке файлов такого типа на сервер может возникать ряд проблем:
- вручную загружать большое количество роликов один за другим — это долго;
- нужно, чтобы страница загрузки была постоянно открыта;
- если файлы большие, а интернет неустойчивый, загрузка прервется и придется начинать сначала.
Мы настроили систему непрерывной загрузки. Она позволяет загружать видео целой коллекцией: ставит файлы в очередь, разбивает их на небольшие кусочки и по очереди загружает. Администратор в это время может заниматься другими делами: загрузка происходит автоматически.
Подробней про систему непрерывной загрузки больших файлов мы рассказали в кейсе разработки обучающей видеоплатформы для сети клиник пластической хирургии.
Когда видео загружается, оно сразу транскодируется в форматы разного качества: 240, 360, 480, 720p и Full HD. Формат выбирается плеером приложения автоматически при воспроизведении видео и зависит от скорости интернета: чем она выше, тем лучше качество. Даже при плохом соединении видео продолжает воспроизводиться, но в меньшем разрешении.
Вся система характеризуется быстродействием и возможностью масштабирования. Мы достигли этого за счет грамотной архитектуры: один сервер загружает видео, другой транскодирует, третий хранит. Сервера не отнимают ресурсы друг у друга, каждый из компонентов архитектуры можно горизонтально масштабировать при увеличении нагрузки.
> Узнайте больше об услугах разработки ПО, приложений и сайтов, а также об IT-аутсорсинге и аутстаффинге от ORBITSOFT ЗДЕСЬ <