<commit_before># v=mc2
Evolution of MVC on iOS with examples.

## Sample app
App is very simple. It has just one button and one label. If user clicks button, app displays loading indicator and after a second displays some text. Also it has simple push navigation.

## 1. MassiveVC
Massive View Controller is usual approach for most iOS apps, UIViewController does almost everything
## 2. ControllerVC
Attempt to apply clean MVP arhitecture where UIViewController is Presenter (Controller)
## 3. MVVM
This is how Microsoft tech can be adapted to iOS using some 'toy' reactive framework for bindings. UIViewController is View.
## 4. VIPER
Famous VIPER adopted to reality of our super complex app. Most interesting part is Routing. UIViewController is View.
## 5. MVP+Routing
If we rip off useless stuff from VIPER we get actually MVP adopted to iOS + elegant solution for navigation 
## 6. MVP+Routing+Bindings
VIPER and MVP+Routing are using delegate for interfaces, but here we use our 'toy' reactive framework to replace delegates with reactive interfaces. Kind of MVVM + VIPER + Rip Off useless things.<commit_msg>readme update<commit_after># v=mc2
Evolution of MVC on iOS with examples.

## Sample app
App is very simple. It has just one button and one label. If user clicks button, app displays loading indicator and after a second displays some text. Also it has simple push navigation.

## 1. MassiveVC
Massive View Controller is usual approach for most iOS apps, UIViewController does almost everything
## 2. ControllerVC
Attempt to apply clean MVP arhitecture where UIViewController is Presenter (Controller).
## 3. VIPER aka 'MVP + Routing'
Famous VIPER adopted to reality of our super complex app. UIViewController is View.
## 4. MVVM
This is how Microsoft tech can be adopted to iOS. UIViewController is View.
{'fraction_non_alphanumeric': 0.0489010989010989, 'fraction_numerical': 0.006593406593406593, 'mean_word_length': 4.568807339449541, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2571811', 'n_tokens_mistral': 492, 'n_tokens_neox': 445, 'n_words': 274}