Целью работы является приобретение навыков создания мультимедийных веб-приложений. Создать мультимедийное веб-приложение.
\section{Задачи}
\begin{enumerate}
\item Установить среду разработки;
\item Описать критерии создания приложения;
\item Написать код и отладить работу приложения.
\end{enumerate}
\section{Выполнение работы}
Для написания мультимедйного приложения был выбран фреймворк Spring Boot. Разрабатываемое приложение - это единый мультимедийный просмотрщик файлов (офисные документы, pdf). Для реализации мультимедийности были выбраны несколько компонентов и создан экран, основной частью которого является область просмотра.
Иерархия проекта выглядит так, как показано на рис. \hrf{pic:hierarchy}
Основным классом является класс презентации, содержащий название, описание и ссылку на прикрепленный файл. Исходный код класса представлен в листинге \hrf{lst:present}.
public class PresentationEdit extends StandardEditor<Presentation> {
@Autowired
private BrowserFrame fileLookup;
@Subscribe
public void onAfterShow(AfterShowEvent event) {
Presentation presentation = getEditedEntity();
if (Objects.nonNull(presentation.getFileRef())) {
fileLookup.setSource(FileStorageResource.class)
.setFileReference(presentation.getFileRef());
}
}
}
\end{lstlisting}
Приложение запускается по адресу localhost:8080/app и имеет вид, представленный на рисунках \hrf{pic:welcome}, \hrf{pic:browse}, \hrf{pic:edit-and-view}.
\caption{Окно просмотра и редактирования презентации}
\label{pic:edit-and-view}
\end{figure}
\section{Контрольные вопросы}
\begin{enumerate}
\item\textbf{В чем преимущество TypeScript над JavaScript?} Строгая типизация и, как следствие, безопасность кода приложений.
\item\textbf{Какие модули включает в себя современное веб-приложение?} Чаще всего это модули учёта и авторизации пользователей, модуль работы с БД, фронтенд и другие модули, решающие бизнес-задачи.
\item\textbf{Для чего в проекте нужен docker-compose?} для одновременного запуска множества модулей приложения.
\item\textbf{В чём преимущество разделения на клиентскую и серверную части?} в возможности независимой разработки и в объединении нескольких серверных частей одной клиентской.
\item\textbf{Какой класс является репрезентацией таблицы в базе данных?}В описанном в данной работе приложении это класс Presentation.java (листинг \hrf{lst:present})
\item\textbf{Какие трудности возникают в процессе разработки веб-приложения?}У начинающих разработчиков это, обычно, понимание принципов работы веб-приложения, исполнения фронтенда, взаимосвязи модулей и работа с БД.
\end{enumerate}
\section{Выводы}
Для разработки мультимедийного приложения необходимо изучить разнообразный инструментарий, позволяющий манипулировать мультимедийными данными. Написание мультимедийнх приложений тесно связано с обработкой больших объёмов данных или использованием внешних библиотек и приложений. Мультимедийные приложения возможно написать для любых платформ и внедрить для любых категорий пользователей.