
Good day, Habr!
It's no secret that Google recently
approved Kotlin as the priority programming language for the Android OS. This and subsequent articles will talk about creating an application in this language.
Application Topics
An application can already be considered good if it solves a problem, which means it helps people. The following entry was found in my notes - notifications of new films in the cinema. In the applications I reviewed, such functionality was not found, and if it exists somewhere, please write in the comments.
')
Prototype
Prototyping allows you to determine the basic functionality. If the application already has analogues, you must first analyze them. Perhaps their authors have already decided the important issues that you are thinking about now.
Use Case Diagram
Define the required application functionality. First of all, the user will have to find new items, and this will require filters. After that, you will need to save the movies, which will be notified, which means you need to display this list. Now draw a Use Case diagram.
UX / UI Design
We outline the layouts of the screens using the UX / UI prototyping software, based on the created diagram. For this we use Mockplus, the basic functionality of the program is provided for free. Component design best practices are compiled
here .
Consider more elaborate layouts. All images are clickable.
- On the start page, the user can see all the news about which he will receive notifications. If the user does not want to receive, he will be able to click on the bell.
- On the tab you can find all the new products that match the wishes specified in the Settings tab, and add them to the list for notification.
- The Settings tab allows you to configure filters for searching for new products, namely IMDb rating and genres.
Architecture choice
We use the MVP architecture, i.e. Model-View-Presenter (model-presentation-presenter).
The views are Activity and Fragments. The model provides work with the server, and the presenter provides interaction between the presentation and the model.

Read more about this architecture
here .
ER database model
The local database will cache the received responses from the server to reduce the frequency of requests and thereby reduce the load. Consider an ER chart.

The essence of Movie is responsible for storing general information about new products, the essence of Genre for genres, and Movie genres contains genres for each new item.
Conclusion
The next article will talk about application design and core logic.
Part 2 (Design)