I mostly agree (though I think massive view controllers are a code quality/poor developer discipline issue).
I've seen nothing in React's (or Katana's) architecture that avoids doing things on the main thread when you shouldn't. I'd also argue that GCD offers a nice, elegant approach to not doing things on the main thread when you shouldn't.
But I'd say that MVC-discipline and thread-discipline are baseline skills that I'd expect from competent iOS devs.
RE: dependency management/unit testing, that's an area I agree needs improvement in general for iOS (though I do not see anything in Katana that significantly helps with that). Swinject (as one example) is alright. I'm not hugely impressed.
(though I think massive view controllers are a code quality/poor developer discipline issue)
After almost 4 decades, I'd like to think that the "programming field" would finally get the clue and realize that "massive view controllers" are the result of powerful short term incentives. (MVC was popularized by Smalltalk, and "massive view controller" was a problem even then.)
Remember, if you are a genius being outsmarted by laziness, something is seriously wrong -- the other side is putting in so much less effort!
I've seen nothing in React's (or Katana's) architecture that avoids doing things on the main thread when you shouldn't. I'd also argue that GCD offers a nice, elegant approach to not doing things on the main thread when you shouldn't.
But I'd say that MVC-discipline and thread-discipline are baseline skills that I'd expect from competent iOS devs.
RE: dependency management/unit testing, that's an area I agree needs improvement in general for iOS (though I do not see anything in Katana that significantly helps with that). Swinject (as one example) is alright. I'm not hugely impressed.