Upgrade to Pro — share decks privately, control downloads, hide ads and more …

New Life for Your Product

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Mars Mars
September 22, 2019

New Life for Your Product

There is bunch of legacy code in most of the products which we are trying to improve the flexibility and reliability. However,

* How could we hanld with bugs or features and refactor the legacy code at the same time?
* How could we take the advantage of the moden language Swift and inject into Objective-C code?
* How could we turn the Massive-View-Controller chaos into Clean Architecture?

Therefore, for those developers who want to be in a higher level or try to refactor their legacy code of the product.
I will share my real-life experience and answer those questions.

Avatar for Mars

Mars

September 22, 2019
Tweet

More Decks by Mars

Other Decks in Programming

Transcript

  1. Powerful Swift • Generics • Enumeration with associated values •

    Structures / tuples • Typealiases • Nested types • so on
  2. Weak Swift • Enumeration with associated values • Structures /

    tuples • Typealiases • Nested types • so on
  3. Reference • Nelson:漫談 iOS 架構:MVC / MVVM / VIPER 與

    Redux • 黃惠勤:從 MVC 到 MVVM,再到 MVVMC 的開發經驗分 享
  4. –Uncle Bob “Clean architecture is an attempt to integrate all

    of these architectures into a single actionable idea”
  5. –Caio Zullo “None of those acronyms can be considered an

    architecture but just UI design pattern”
  6. Componentization Architectural Pattern • MVP • Presenter uses an interface

    to call view • Presenter manages the state of the view • MVI • View fires “Intent” events
  7. Coordinator • The Coordinator
 http://khanlou.com/2015/01/the-coordinator • How to use the

    coordinator pattern in iOS apps
 https://www.hackingwithswift.com/articles/71/how-to-use- the-coordinator-pattern-in-ios-apps • Advanced coordinators in iOS
 https://www.hackingwithswift.com/articles/175/advanced- coordinator-pattern-tutorial-ios • MVVMC-SplitViewController
 https://github.com/mgacy/MVVMC-SplitViewController
  8. UI Component • droidcon NYC 2018 - Netflix's componentization architecture

    with RxJava + Kotlin • part I
 https://www.youtube.com/watch?v=dS9gho9Rxn4 • part II
 https://www.youtube.com/watch?v=1cWwfh_5ZQs • sample code
 https://github.com/julianomoraes/componentizationArch • John Sundell - Building component driven UIs (Mobile Era 2016)
 https://vimeo.com/190713343 • Child View Controllers
 https://www.swiftbysundell.com/basics/child-view-controllers/
  9. Clean Architecture • Uncle Bob - The Clean Architecture
 https://blog.cleancoder.com/uncle-bob/2012/08/13/the-

    clean-architecture.html • Essential Developer - Clean iOS Architecture
 https://www.youtube.com/playlist? list=PLyjgjmI1UzlSWtjAMPOt03L7InkCRlGzb • iOS-Clean-Architecture-Example
 https://github.com/frankvalbuena/iOS-Clean- Architecture-Example