I do not have a clear idea and understanding of the correct approaches to the implementation / programming of the UI-part of the application, so to say, the "backend" part, so far there are no special problems.
I will give an example:
When I realized that the application needed to submit to something more advanced and modern than simple MVC, I studied the issue of architectural patterns, chose the right one (VIPER), studied it in more detail and implemented it.
However, the following tasks:
I caused a lot more problems and google their implementation was much more difficult. In the end, I did everything myself, but I am sure that there are more correct and elegant approaches to solving those tasks with UI that appear every day. Also have a question: Storyboard or UI in the code? Or part there, part there? So far, I have a second option with a separate storyboard for each controller and interspersed with xib files for some reusable views, such as a round icon and a signature. However, there are suspicions that it is better to do this in code (setting sizes, positions, constraints), using third-party libraries for layout, because faster in terms of application performance, more convenient and easier in terms of version control.
The question is not specifically on the above points, but on general theoretical training and good practices for working with UIKit. For it is easy to distribute the necessary non-adaptive interface, connect it with outlets and fill out the view with the necessary content for a long time, even 70% of the autolayout tasks can be implemented quite well. However, in the process of growing and complicating the ui and capabilities of the application, I increasingly need the theory and practice of UIKit higher than junior. Please tell me what are currently bad / best practices, what is considered good and what is not? Maybe there are some sites / tutorials where they show how to create reusable UI components, how to build complex autolayout (as a rule, all tutorials are very simple and in real life you have to do something many times more complicated, and the correct theoretical basis for solving these or There are no other less complex and real tasks UI).