Поговорить об архитектуре всегда интересно, в особенности когда ты ее используешь повсеместно во всех своих приложениях. Сейчас очень популярно и модно везде использовать MVVM архитектуру которую я описывал тут буквально недавно.
Сегодня я хочу поговорить про такой паттерн который используется в большинстве современных приложений, который называется MVP, на его замену пришел уже названный ранее MVVM который является более простым и понятным паттерном, но MVP в современной разработке используется везде где можно и нельзя, и так же она имеет применение в мобильной разработке, которую я так сильно люблю.
Продолжаем работать с видосиками. У меня недавно был случай что потребовалось нарезать один видео файл на много маленьких файлов вырезая ненужные части. И я такое запедалил с помощью замечательной библиотеки от Google которая называется mp4parser.
Эта библиотека позволяет помимо нарезки так же: — соединять файлы у которых одинаковые настройки енкодинга; — накладывать аудио дорожку на видео; — изменение или добавление меты;
Библиотека очень мощная, вот прям не могу даже ничего плохого про нее сказать. Очень быстро справляется со всеми задачами, прямо вот в долю секунды. Однажды пробовал нарезать огромный видео файл на несколько частей, так либа справлялась за 2 — 3 секунды, даже боюсь представить как они это сделали, там реально какая-то магия.
Бывают такие задачи в которых приходится распределять работу функционала, что бы каждая задача выполнялась после окончания предыдущей. В таких случаях обычно пихают внутри колбека об окончании процесса что бы стартовал новый процесс, это выглядит не очень красиво, сильно грубо и нагромождено.
В таких случаях обычно стараются использовать такую штуку как очередь. Она помогает поставить процесс понятно и легкоизменяемо, каждый просесс выполняется в отдельном потоке, отдельном классе, и никак не задевает работу следующего или предыдущего процесса, все предельно понятно и логично.