В приложении Kivach Life, разработанном на Flutter для мобильных операционных систем iOS и Android, разработан нативный компонент аудиозаписи и архив аудиозаписей. Компонент используется на экране создания консультации и на экране полного вида результата консультации, а также позволяет прикреплять записи к консультациям.
1. Запись аудио:
Запись включается при нажатии на красную кнопку с микрофоном. Доступны остановка, пауза и продолжение. Во время записи отображается таймер. Экран не блокируется, поэтому пользователь может продолжать работу с приложением.
Если запись была прервана - например, на время звонка или сворачивания приложения - после возврата приложение само ставит запись на паузу. Это предотвращает запись тишины.
2. Прослушивание и продолжение записи:
После остановки записи отображается аудиоплеер с последней записью: есть play/pause, перемотка, время, счетчик времени. Можно начать запись заново специальной кнопкой с микрофоном.
Если нужно дополнить существующую запись, используется кнопка для продолжения аудиозаписи. Новая часть записывается в конец уже существующей. Итоговый файл остается одним: то же место, то же имя, исходная дата. Таймер идет от текущей длительности, а не с нуля. После остановки плеер записи обновляется.
3. Архив аудиозаписей:
Все записи, которые не были прикреплены к консультации, сохраняются локально в архив. Архив хранится между запусками приложения. Каждая запись в архиве содержит плеер, перемотку, размер файла, дату и время записи, а также кнопку удаления.
Записи, файлы которых пропали, автоматически убираются из списка. При добавлении консультации можно не записывать новое аудио, а выбрать подходящую запись из архива. На экране полного вида консультации, если аудио ещё не прикреплено, также можно выбрать запись из архива или записать новую.
4. Прикрепление записи:
Запись выбирается при помощи чекбокса. Так нужное аудио прикрепляется к консультации. После отправки временный файл записи удаляется из локального хранилища смартфона.
Особенности реализации:
- Приложение разработано на кроссплатформенном фреймворк от Google - Flutter, с использованием языка программирования Dart.
- iOS: поддерживаются все актуальные устройства под управлением iOS 14 и выше, включая iPhone Air, 17, 18 Pro, 18 Pro Max, а также iPad Air 2024 и новее.
- Android: поддерживаются устройства под управлением операционной системы Android 5 и выше.
После тестирования разработанной фичи был выполнен релиз обновлений приложений в Apple App Store и Google Play.
Все выполнено строго по ТЗ.