Moving From MVC To MVVM && Testable View Models with RxSwift


Details
Location:
Peloton Interactive, 125 W 25th Street - 12th floor. Between 6th & 7th avenues. (Use the 2nd elevator to get to the 12th floor).
-- Please bring ID --
Join us back at the offices of our friends at Peloton, for two great talks, one from Dean Silfen on writing testable code and the other from Bryan Oltman, on app architecture.
First, Dean Silfen will discuss how to write testable view models using dependency injection and leveraging RxSwift’s TestScheduler type. Test schedulers let us transform difficult-to-test asynchronous code into clean, synchronous code that is easier to reason about and more precise than their plain XCTest counterparts.
Dean is an iOS Engineer at Peloton, where he works primarily on the application’s media player (built entirely with RxSwift). Before Peloton, Dean wrote Ruby and was constantly mad about null-pointer exceptions. Now, Dean writes Swift and while he doesn’t miss null-pointer exceptions, he constantly complains about Xcode’s refactoring tool not working.
---
Model-View-Controller (MVC) is the default iOS architecture, but may not always be the best choice for your app. Bryan Oltman's talk discusses why architecture is important in the first place, the drawbacks of MVC, and how your app can borrow some ideas from other architectural patterns (specifically Model-View-ViewModel (MVVM)) to deal with those drawbacks.
Bryan Oltman has been working in the iOS ecosystem since 2010. He is currently an iOS engineer at Anchor, where he is helping to build the future of podcasting (with MVVM 🙂). In past lives, he has worked on both iOS apps and backend systems at Blue Apron, Compass, and OkCupid, solving problems like “managing food deliveries” and “finding love on the internet”. He does not like writing about himself in the third person, but we at Brooklyn Swift love it when he does.
Food and drinks provided.
Thanks again to Pelaton for being such a great sponsor!

Moving From MVC To MVVM && Testable View Models with RxSwift