Legacy app to fully tested RxSwift MVVM iOS application - Lessons learned

updated 10 months ago

This proposal has been withdrawn...

Abstract

This talk is about a side project I worked on in the past and how I utilized Reactive framework and MVVM architecture to bring it in the good shape. I will talk about how I started this project with untested Objective-C MVC architecture and my journey into converting it to fully tested MVVM (Model-View-ViewModel) Swift version

Description

Making a new app takes time. It's even more challenging when a developer writes the full application and as time goes it undergoes major refactoring and improvements. During this talk, I would like to cover my own experience with using Reactive Swift framework and MVVM app architecture. The idea of MVVM is not new, but given the steep learning slope for reactive concepts, it could be hard for large teams to adopt the pattern in a reasonable timeline. However, benefits that Reactive framework and MVVM provide outperform the initial hurdles. In other terms, it's a great long-term investment.

Through this talk, I will elaborate my own experience developing an app using this framework and architecture in Swift. How this setup acted as a good foundation for testable, stable and large-scale applications. Unit testing is often ignored area in the app development. However, if properly written, MVVM app can provide direct testability without having to do extra work just for the sake of testing.

At the end, I will be sharing my own Reactive and MVVM learnings while working with a small team and challenges faced during development. I hope this advice will be equally useful to beginner and experienced iOS developers who are aiming to adopt it for future work.

Below is the summary of points I would like to cover during presentation:

  1. Brief overview of an inspiration behind an app idea
  2. Walking through the initial stage when app was written in Objective-C
  3. Why MVVM and RxSwift for reactive setup?
  4. How MVVM architecture helped in writing testable and easily maintainable code
  5. Challenges faced and Lessons learned
  6. Advice for iOS developer and teams aiming to go for MVVM

The presentation will be accompanied by a live demo.

Duration

Considering total time for presentation and demo, it will run somewhere between 30-35 minutes

Who am I?

I am a Senior iOS developer working for a mid-sized e-commerce on the east coast of USA. I am a part of checkout, shipping and loyalty team which handles cart, payments, discounts and gift cards in the app.

Besides working at my full-time job, I like to get involved with side-projects and open source my work in the spare time. I write a blog which touches active topics in iOS development along with occasional off-topics such as food, travel and web development

Suggestions