% Lokální makra patří do hlavního souboru, ne sem.
% Tady je mám výjimečně proto, že chci nechat hlavní soubor bez maker,
% která jsou jen pro tento dokument. Uživatelé si pravděpodobně budou
% hlavní soubor kopírovat do svého dokumentu.

\def\ctustyle{{\tenss CTUstyle}}
\def\ttb{\tt\char`\\} % pro tisk kontrolních sekvencí v tabulkách

\label[Application design]
\chap{Application design}

I've split this chapter into two. The first one would describe the front-end of the application and the second the back-end. In both parts, I would describe the features, decisions behind and design.

\label[Front-end]
\sec Front-end

The front-end would mean the application that is running on a mobile phone. I've chosen iOS which is the operating system for Apple devices. The reason behind is not just personal preference, but the main reason is testability of the application. Because iOS is exclusive to Apple, there is a low number of devices we would need to test the application on, to be 100\% sure that there are no device-specific problems that the user can face. [1]
Android the other main mobile OS has phones from many different manufacturers and testing would be costly to ensure the stability.

When it comes to a programming language, there are two options on the platform. First of them being Objective-C and the second is Swift which a new programming language from Apple released in 2014. I've chosen Swift as the more futureproof option as Apple continues to develop and improve the language and it's compatible with all Objective-C libraries. But the drawback with Swift is that updates of the language don't have to be backward compatible, and changes would be needed with an update.

When it comes to UI design, we will be focusing on the mobile, and the app won't be optimized for bigger screens that tables have. Also, to make it familiar to the user we will try to mimic Apple styled apps like Mail and with the first iteration keep the application as simple as possible.

\break
\label[Functions]
\secc Functions
At first, the application will have only two main functions. And that would be to display screening times for films. The second would be a similar thing and that show screenings for a selected cinema.

For the first, the user would have all the available films on one screen and when he selects one of them he would be presented with all screenings available in chronological order. The user could also see additional information about the film. 

The second will be implemented similarly, so the user is not confused when navigating through the application. There will be a list of all available cinemas and when a cinema is selected the user would see all screened times with film also in chronological order.

More advanced functions are planned but are not subject of this project and will be talking more about them in the last chapter.

\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}


\break
\label[Inspiration]
\secc Inspiration

When designing the application I've tried to stay as close to a stock Apple application look as possible. The reason behind is that the look and feel of the application would be familiar to the user. So this way he could easily navigate the application even without a tutorial or other documentation because he's used similar applications in the past.

\medskip \clabel[ Apple settings app (iOS 11)]{ Apple settings app (iOS 11)}
\picw=7cm \cinspic img/settings.png
\caption/f  Apple settings app (iOS 11)
\medskip

\break
\label[Wire-frame design]
\secc Wire-frame design

In this part, I would showcase wireframes for all the screens that the application will use and also include the one that won't be used due to a shift of focus of the application or where redesigned.

The application is going to be split into two branches. One is for searching screenings based on films and the second is to search for screenings for a particular cinema. These two screens also have the biggest differences in the app itself, everything else should mimic each other on both branches, so the user feels like he knows what to expect.

\medskip \clabel[(left) movie screen, (right) cinema screen)]{(left) movie screen, (right) cinema screen}
\picw=10 cm \cinspic img/wire1.png
\caption/f (left) movie screen, (right) cinema screen
\medskip

 On the left side of the screen is the film selection it will contain a poster for all the films in the cinema currently. In my opinion, the posters are designed in a way to appeal to the user with a clear name visible on them, so any other information seems unnecessary. And the right will function as a selection for cinemas. When a cinema is going to be picked, you will have a list of films.


\medskip \clabel[(left) list of screenings, (right) expanded list of screenings]{(left) list of screenings, (right) expanded list of screenings}
\picw=10 cm \cinspic img/wire2.png
\caption/f (left) list of screenings, (right) expanded list of screenings
\medskip

As the next screen from both branches mentioned above would this screen. It would be a list of all the screenings for the film or cinema. The style would be the same, but the displayed information would differ. So for a movie, you would see cinemas and screening times, and for cinemas, you would have movies with screening times, but the look and feel of both screens would be the same. Also, there would be an option to expand the individual segments to have more information displayed. The circle with an 'i' would open the next screen with information about film/cinema.

\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}
\phantom{somespacesomespacesomespace}

\medskip \clabel[(left) film info, (right) cinema info]{(left) film info, (right) cinema info}
\picw=10 cm \cinspic img/wire3.png
\caption/f (left) film info, (right) cinema info
\medskip

These two are the last screens that the application will have. They will contain detail information about film or cinema. So for the film, you would have description, actors, director and for cinema, you would have the pricing information and map to help you navigate.

\label [Back-end]
\sec Back-end 

The back-end will have two main functions. The first and more simple is to be the data source for front-end, meaning it will be communicating with front-end via API and all data prepared, so the mobile application itself could be more simple.

The second and more complicated part of it would be the aggregation of all the data. This would mean find a way how to get all the information about cinema and its program and match it with a film. Also get film information like a poster, director artist.

The most important on this is that it has to work dynamically and automated as much as possible. So this way we would have the latest data all the time, and it could be deployed on a cloud server fetching present data on a regular basis.

