MaintenanceProjectChecklist2013 June 5HelsinkiOS / CocoaHeads HelsinkiAt FlowdockTo Be UpdatedContinuously
Why? Why? Why?●Why Maintenance– Major iOS release once a year●Why Project– Base backlog + new features + bug reports●Why C...
Understand the Application●User Perspective– Install and try to use it– Read ALL documents, including reviews, bugreports,...
Study High-Level Architecture●“objc_dep.py” by Nicolas Seriot at Github (link)– Graph non-system import/include dependanci...
Study High-Level Architecture●Reveal App (link)– Runtime inspection for iOS apps●Spark Inspector (link)– Monitor & Experim...
Compiler is Your Friend●Clang Static Analyzer●ARC●Modern Objective-C– Clang 3.4 Objective-C Literals (link)●Storyboard(s) ...
Use the Source●Code review and refactor●Search for “magic” strings– TODO, NOTE, MAGIC– HACK, BUG, FIX●Read comments (if an...
Missing Parts●Missing Testing Plan– A Mind Map for iOS Testing (link)●Missing Localization– Linguan (link) with iOctocat d...
War Stories●Dan Milstein:How to Survive a Ground-Up Rewrite Without Losing Your Sanity– aka: Screw you Joel Spolsky, Were ...
Onwards and Upwards!Thank YoubyJouni Miettunenjouni.miettunen@gmail.com@jomtwi
Upcoming SlideShare
Loading in …5
×

Checklist for iOS Maintenance Project

933 views
791 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
933
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
10
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Checklist for iOS Maintenance Project

  1. 1. MaintenanceProjectChecklist2013 June 5HelsinkiOS / CocoaHeads HelsinkiAt FlowdockTo Be UpdatedContinuously
  2. 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. 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. 4. Study High-Level Architecture●“objc_dep.py” 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. 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. 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. 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. 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. 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. 10. Onwards and Upwards!Thank YoubyJouni Miettunenjouni.miettunen@gmail.com@jomtwi

×