Checklist for iOS Maintenance Project
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Checklist for iOS Maintenance Project

Uploaded on

Checklist and tips for an iOS application maintenance project. Presented at CocoaHeads Helsinki meetup June 2013

Checklist and tips for an iOS application maintenance project. Presented at CocoaHeads Helsinki meetup June 2013

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 14 14

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. MaintenanceProjectChecklist2013 June 5HelsinkiOS / CocoaHeads HelsinkiAt FlowdockTo Be UpdatedContinuously
  • 2. Why? Why? Why?●Why Maintenance– Major iOS release once a year●Why Project– Base backlog + new features + bug reports●Why Checklist– Continuous improvement– DRY (dont repeat yourself)– Public review
  • 3. Understand the Application●User Perspective– Install and try to use it– Read ALL documents, including reviews, bugreports, online user comments, iTunes●Technical Perspective– Read ALL tech docs (if any, even if old)– Analyze as a whole unit– Hardware changes
  • 4. Study High-Level Architecture●“” by Nicolas Seriot at Github (link)– Graph non-system import/include dependancies– Refactoring by graphing class dependencies– Graphviz opens generated .dot files (link)●Demo– iOctocat master branch (big and complex) (link)– Console On Device (small and simple) (link)
  • 5. Study High-Level Architecture●Reveal App (link)– Runtime inspection for iOS apps●Spark Inspector (link)– Monitor & Experiment in Real-time●Demo– Xcode, iPhone Simulator and Spark Inspector– See UI view hierarchy with runtime changes
  • 6. Compiler is Your Friend●Clang Static Analyzer●ARC●Modern Objective-C– Clang 3.4 Objective-C Literals (link)●Storyboard(s) vs. XIBs●Clang Warnings– Presentation by @AliRantakari at last meetup– Treat Warnings as Errors– Clang-warnings.h (link)
  • 7. Use the Source●Code review and refactor●Search for “magic” strings– TODO, NOTE, MAGIC– HACK, BUG, FIX●Read comments (if any)– Version control commits●Refactor to Self-Documenting Code– File and folder names, methods and parameters,variables, notifications, protocols, constants– Web API Design by Apigee (link)
  • 8. Missing Parts●Missing Testing Plan– A Mind Map for iOS Testing (link)●Missing Localization– Linguan (link) with iOctocat demo– Easy Xib Localization Entity (link), iLocalize 4 (link)●Missing Graphics– ResourceHelper (link) with iOctocat demo●Missing User Info– Crashlytics, HockeyApp, Google Analytics
  • 9. War Stories●Dan Milstein:How to Survive a Ground-Up Rewrite Without Losing Your Sanity– aka: Screw you Joel Spolsky, Were Rewriting ItFrom Scratch!●Kevin Hoctor:Five Sure-Fire Ways to Sabotage a Release●Futurice Blog:A story about design decisions and legacy code
  • 10. Onwards and Upwards!Thank YoubyJouni