SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Maintenance
Project
Checklist
2013 June 5
HelsinkiOS / CocoaHeads Helsinki
At Flowdock
To Be Updated
Continuously
Why? Why? Why?
●
Why Maintenance
– Major iOS release once a year
●
Why Project
– Base backlog + new features + bug reports
●
Why Checklist
– Continuous improvement
– DRY (don't repeat yourself)
– Public review
Understand the Application
●
User Perspective
– Install and try to use it
– Read ALL documents, including reviews, bug
reports, online user comments, iTunes
●
Technical Perspective
– Read ALL tech docs (if any, even if old)
– Analyze as a whole unit
– Hardware changes
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)
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
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)
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)
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
War Stories
●
Dan Milstein:
How to Survive a Ground-Up Rewrite Without Lo
sing Your Sanity
– aka: Screw you Joel Spolsky, We're Rewriting It
From Scratch!
●
Kevin Hoctor:
Five Sure-Fire Ways to Sabotage a Release
●
Futurice Blog:
A story about design decisions and legacy code
Onwards and Upwards!
Thank You
by
Jouni Miettunen
jouni.miettunen@gmail.com
@jomtwi

Mais conteúdo relacionado

Mais de Jouni Miettunen

2023-11-iOSMeet-TipKit.pdf
2023-11-iOSMeet-TipKit.pdf2023-11-iOSMeet-TipKit.pdf
2023-11-iOSMeet-TipKit.pdfJouni Miettunen
 
Static Swift Code Analysis - The Background Story
Static Swift Code Analysis - The Background StoryStatic Swift Code Analysis - The Background Story
Static Swift Code Analysis - The Background StoryJouni Miettunen
 
Automated Xcode 7 UI Testing
Automated Xcode 7 UI TestingAutomated Xcode 7 UI Testing
Automated Xcode 7 UI TestingJouni Miettunen
 
HelsinkiOS Jan 2015: Useful iOS Code Snippets
HelsinkiOS Jan 2015: Useful iOS Code SnippetsHelsinkiOS Jan 2015: Useful iOS Code Snippets
HelsinkiOS Jan 2015: Useful iOS Code SnippetsJouni Miettunen
 
HelsinkiOS Nov 2014: My Favorite Non-Apple Developer Tools
HelsinkiOS Nov 2014: My Favorite Non-Apple Developer ToolsHelsinkiOS Nov 2014: My Favorite Non-Apple Developer Tools
HelsinkiOS Nov 2014: My Favorite Non-Apple Developer ToolsJouni Miettunen
 
iOS Sensors for Beginners
iOS Sensors for BeginnersiOS Sensors for Beginners
iOS Sensors for BeginnersJouni Miettunen
 

Mais de Jouni Miettunen (7)

2023-11-iOSMeet-TipKit.pdf
2023-11-iOSMeet-TipKit.pdf2023-11-iOSMeet-TipKit.pdf
2023-11-iOSMeet-TipKit.pdf
 
Walk The Talk
Walk The TalkWalk The Talk
Walk The Talk
 
Static Swift Code Analysis - The Background Story
Static Swift Code Analysis - The Background StoryStatic Swift Code Analysis - The Background Story
Static Swift Code Analysis - The Background Story
 
Automated Xcode 7 UI Testing
Automated Xcode 7 UI TestingAutomated Xcode 7 UI Testing
Automated Xcode 7 UI Testing
 
HelsinkiOS Jan 2015: Useful iOS Code Snippets
HelsinkiOS Jan 2015: Useful iOS Code SnippetsHelsinkiOS Jan 2015: Useful iOS Code Snippets
HelsinkiOS Jan 2015: Useful iOS Code Snippets
 
HelsinkiOS Nov 2014: My Favorite Non-Apple Developer Tools
HelsinkiOS Nov 2014: My Favorite Non-Apple Developer ToolsHelsinkiOS Nov 2014: My Favorite Non-Apple Developer Tools
HelsinkiOS Nov 2014: My Favorite Non-Apple Developer Tools
 
iOS Sensors for Beginners
iOS Sensors for BeginnersiOS Sensors for Beginners
iOS Sensors for Beginners
 

Último

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Último (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Checklist for iOS Maintenance Project

  • 1. Maintenance Project Checklist 2013 June 5 HelsinkiOS / CocoaHeads Helsinki At Flowdock To Be Updated Continuously
  • 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 (don't repeat yourself) – Public review
  • 3. Understand the Application ● User Perspective – Install and try to use it – Read ALL documents, including reviews, bug reports, 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 ● “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. 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 Lo sing Your Sanity – aka: Screw you Joel Spolsky, We're Rewriting It From 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 You by Jouni Miettunen jouni.miettunen@gmail.com @jomtwi