SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
iOS App File Structure and
Organization
Jenny Chang Ho
iOS Engineer
November 22nd, 2016
01
02
My Journey on becoming an iOS
engineer
03
04
When I joined GRUBHUB...
– Code base looked daunting
– Code reuse was not obvious
– It was not obvious where to look to update / create new files
– Searching for files required that I knew what I was looking for
– Xcode group did not necessarily match the file system directory
05
Why is file organization important?
– Majority of development time is spent searching
○ Command+Shift+O
○ You need to know part of the filename to find anything,
facilitated with prefix specific to our project
– Easily identify resources for code reuse
– Features or components were not always obvious
– Takes time for new developers to ramp up
1
1
1. images
2. Common
3. Views /
Utils
4. Models
5. API
6. UI /
Frameworks
2
2
3
5
4
6
07
Two Proposed File Structure
Approaches
– From architecture perspective
● API, Commands, Models, Views, View Controllers, Third
Parties, Storyboards
– From application perspective
● Web services (API, Command), UI
(Features/Components/Models/Storyboards), Third Parties
08
Architectural Approach
– Models
– Networking
– Application
– Libraries
09
Application /
UI Approach
– Features
– Components
– .xib, views
– view controllers,
storyboards
02
We are hiring iOS and Android
engineers!
Send resumes to:
jchangho@grubhub.com
@tiptopgs |
mobilepickup.tumblr.com
11

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentAly Abdelkareem
 
Object Oriented Design Concept
Object Oriented Design ConceptObject Oriented Design Concept
Object Oriented Design ConceptSharath g
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & ComponentsAkash Bisariya
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionYash Mody
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Waterfall model ppt final
Waterfall model ppt  finalWaterfall model ppt  final
Waterfall model ppt finalshiva krishna
 
Database administrator
Database administratorDatabase administrator
Database administratorTech_MX
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linuxVicent Selfa
 
Realtime vs Cloud Firestore
Realtime vs Cloud Firestore Realtime vs Cloud Firestore
Realtime vs Cloud Firestore Appinventiv
 
Engineering Software Products: 10. Devops and code management
Engineering Software Products: 10. Devops and code managementEngineering Software Products: 10. Devops and code management
Engineering Software Products: 10. Devops and code managementsoftware-engineering-book
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Neetu Marwah
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSam Brannen
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studioParinita03
 
Web Applications and Deployment
Web Applications and DeploymentWeb Applications and Deployment
Web Applications and DeploymentBG Java EE Course
 

Was ist angesagt? (20)

Uml
UmlUml
Uml
 
Rad model
Rad modelRad model
Rad model
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Object Oriented Design Concept
Object Oriented Design ConceptObject Oriented Design Concept
Object Oriented Design Concept
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer Introduction
 
Database security
Database securityDatabase security
Database security
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Waterfall model ppt final
Waterfall model ppt  finalWaterfall model ppt  final
Waterfall model ppt final
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Database administrator
Database administratorDatabase administrator
Database administrator
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linux
 
Realtime vs Cloud Firestore
Realtime vs Cloud Firestore Realtime vs Cloud Firestore
Realtime vs Cloud Firestore
 
Engineering Software Products: 10. Devops and code management
Engineering Software Products: 10. Devops and code managementEngineering Software Products: 10. Devops and code management
Engineering Software Products: 10. Devops and code management
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. REST
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studio
 
Web Applications and Deployment
Web Applications and DeploymentWeb Applications and Deployment
Web Applications and Deployment
 

Andere mochten auch

Memory management in iOS.
Memory management in iOS.Memory management in iOS.
Memory management in iOS.HSIEH CHING-FAN
 
Beyond Page Views: Modern Analytics for Online Marketing
Beyond Page Views: Modern Analytics for Online MarketingBeyond Page Views: Modern Analytics for Online Marketing
Beyond Page Views: Modern Analytics for Online MarketingCasey Winters
 
Food Truck Ordering
Food Truck OrderingFood Truck Ordering
Food Truck OrderingChristo K
 
Food valet presentation
Food valet presentationFood valet presentation
Food valet presentationFood Valet
 
Multithreading and Parallelism on iOS [MobOS 2013]
 Multithreading and Parallelism on iOS [MobOS 2013] Multithreading and Parallelism on iOS [MobOS 2013]
Multithreading and Parallelism on iOS [MobOS 2013]Kuba Břečka
 
Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016
Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016
Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016Digiday
 
jmstants Whirlpool Company Presentation
jmstants Whirlpool Company Presentationjmstants Whirlpool Company Presentation
jmstants Whirlpool Company PresentationJacob Stants
 
[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart; Former Growth Lead at Pin...
[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart;  Former Growth Lead at Pin...[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart;  Former Growth Lead at Pin...
[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart; Former Growth Lead at Pin...500 Startups
 
Android Tamer BH USA 2016 : Arsenal Presentation
Android Tamer BH USA 2016 : Arsenal PresentationAndroid Tamer BH USA 2016 : Arsenal Presentation
Android Tamer BH USA 2016 : Arsenal PresentationAnant Shrivastava
 

Andere mochten auch (15)

12 deadlock concept
12 deadlock concept12 deadlock concept
12 deadlock concept
 
Memory management in iOS.
Memory management in iOS.Memory management in iOS.
Memory management in iOS.
 
Beyond Page Views: Modern Analytics for Online Marketing
Beyond Page Views: Modern Analytics for Online MarketingBeyond Page Views: Modern Analytics for Online Marketing
Beyond Page Views: Modern Analytics for Online Marketing
 
Food Truck Ordering
Food Truck OrderingFood Truck Ordering
Food Truck Ordering
 
Presentation2
Presentation2Presentation2
Presentation2
 
Life at GrubHub
Life at GrubHubLife at GrubHub
Life at GrubHub
 
Food Surf Presentation
Food Surf PresentationFood Surf Presentation
Food Surf Presentation
 
Food valet presentation
Food valet presentationFood valet presentation
Food valet presentation
 
Multithreading and Parallelism on iOS [MobOS 2013]
 Multithreading and Parallelism on iOS [MobOS 2013] Multithreading and Parallelism on iOS [MobOS 2013]
Multithreading and Parallelism on iOS [MobOS 2013]
 
Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016
Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016
Grubhub’s vision for moving eating forward, Digiday Brand Summit, December 2016
 
Company Presentation
Company PresentationCompany Presentation
Company Presentation
 
jmstants Whirlpool Company Presentation
jmstants Whirlpool Company Presentationjmstants Whirlpool Company Presentation
jmstants Whirlpool Company Presentation
 
[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart; Former Growth Lead at Pin...
[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart;  Former Growth Lead at Pin...[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart;  Former Growth Lead at Pin...
[WMD 2016] Advisor to Pocket, Airbnb, Darby Smart; Former Growth Lead at Pin...
 
Android Tamer BH USA 2016 : Arsenal Presentation
Android Tamer BH USA 2016 : Arsenal PresentationAndroid Tamer BH USA 2016 : Arsenal Presentation
Android Tamer BH USA 2016 : Arsenal Presentation
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
 

Ähnlich wie iOS file structure and organization

Autopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics ConferenceAutopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics ConferenceBasis Technology
 
Re-usable metadata, re-usable content
Re-usable metadata, re-usable contentRe-usable metadata, re-usable content
Re-usable metadata, re-usable contentPaul Walk
 
Discovery Systems Used in Academic Libraries Projects & Case Study
Discovery Systems Used in Academic Libraries Projects & Case StudyDiscovery Systems Used in Academic Libraries Projects & Case Study
Discovery Systems Used in Academic Libraries Projects & Case StudyHong (Jenny) Jing
 
Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...J. Kevin Parker, CIP
 
IR: Open source state
IR: Open source stateIR: Open source state
IR: Open source stateDmitry Kan
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesTao Xie
 
Ep structured share point development - v.4
Ep   structured share point development - v.4Ep   structured share point development - v.4
Ep structured share point development - v.4Ivan Sanders
 
SharePoint Demystified
SharePoint DemystifiedSharePoint Demystified
SharePoint Demystifiedkjordanbaker
 
Implementing Archivematica, research data network
Implementing Archivematica, research data networkImplementing Archivematica, research data network
Implementing Archivematica, research data networkJisc RDM
 
Building a blog with an Onion Architecture
Building a blog with an Onion ArchitectureBuilding a blog with an Onion Architecture
Building a blog with an Onion ArchitectureBarry O Sullivan
 
Onion Architecture and the Blog
Onion Architecture and the BlogOnion Architecture and the Blog
Onion Architecture and the Blogbarryosull
 
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSEDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSOpen Cyber University of Korea
 
People centralized SharePoint solutions
People centralized SharePoint solutionsPeople centralized SharePoint solutions
People centralized SharePoint solutionsNicki Borell
 
Supporting program comprehension with source code summarization icse nier 2010
Supporting program comprehension with source code summarization icse nier 2010Supporting program comprehension with source code summarization icse nier 2010
Supporting program comprehension with source code summarization icse nier 2010Sonia Haiduc
 

Ähnlich wie iOS file structure and organization (20)

Autopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics ConferenceAutopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics Conference
 
Re-usable metadata, re-usable content
Re-usable metadata, re-usable contentRe-usable metadata, re-usable content
Re-usable metadata, re-usable content
 
Discovery Systems Used in Academic Libraries Projects & Case Study
Discovery Systems Used in Academic Libraries Projects & Case StudyDiscovery Systems Used in Academic Libraries Projects & Case Study
Discovery Systems Used in Academic Libraries Projects & Case Study
 
Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...
 
IR: Open source state
IR: Open source stateIR: Open source state
IR: Open source state
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Ep structured share point development - v.4
Ep   structured share point development - v.4Ep   structured share point development - v.4
Ep structured share point development - v.4
 
Delve and Office Graph
Delve and Office GraphDelve and Office Graph
Delve and Office Graph
 
LibreOffice intern activities 2017-2018 Aschalew
LibreOffice intern activities 2017-2018 AschalewLibreOffice intern activities 2017-2018 Aschalew
LibreOffice intern activities 2017-2018 Aschalew
 
Sharepoint
SharepointSharepoint
Sharepoint
 
SharePoint Demystified
SharePoint DemystifiedSharePoint Demystified
SharePoint Demystified
 
Implementing Archivematica, research data network
Implementing Archivematica, research data networkImplementing Archivematica, research data network
Implementing Archivematica, research data network
 
MIDESS
MIDESSMIDESS
MIDESS
 
Building a blog with an Onion Architecture
Building a blog with an Onion ArchitectureBuilding a blog with an Onion Architecture
Building a blog with an Onion Architecture
 
Onion Architecture and the Blog
Onion Architecture and the BlogOnion Architecture and the Blog
Onion Architecture and the Blog
 
Sharepoint
SharepointSharepoint
Sharepoint
 
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSEDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
 
People centralized SharePoint solutions
People centralized SharePoint solutionsPeople centralized SharePoint solutions
People centralized SharePoint solutions
 
CS3391 -OOP -UNIT – I NOTES FINAL.pdf
CS3391 -OOP -UNIT – I  NOTES FINAL.pdfCS3391 -OOP -UNIT – I  NOTES FINAL.pdf
CS3391 -OOP -UNIT – I NOTES FINAL.pdf
 
Supporting program comprehension with source code summarization icse nier 2010
Supporting program comprehension with source code summarization icse nier 2010Supporting program comprehension with source code summarization icse nier 2010
Supporting program comprehension with source code summarization icse nier 2010
 

Kürzlich hochgeladen

Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxMuhammadAsimMuhammad6
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersMairaAshraf6
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxSCMS School of Architecture
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxNadaHaitham1
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesRAJNEESHKUMAR341697
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilVinayVitekari
 

Kürzlich hochgeladen (20)

Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 

iOS file structure and organization

  • 1. iOS App File Structure and Organization Jenny Chang Ho iOS Engineer November 22nd, 2016 01
  • 2. 02 My Journey on becoming an iOS engineer
  • 3. 03
  • 4. 04 When I joined GRUBHUB... – Code base looked daunting – Code reuse was not obvious – It was not obvious where to look to update / create new files – Searching for files required that I knew what I was looking for – Xcode group did not necessarily match the file system directory
  • 5. 05 Why is file organization important? – Majority of development time is spent searching ○ Command+Shift+O ○ You need to know part of the filename to find anything, facilitated with prefix specific to our project – Easily identify resources for code reuse – Features or components were not always obvious – Takes time for new developers to ramp up
  • 6. 1 1 1. images 2. Common 3. Views / Utils 4. Models 5. API 6. UI / Frameworks 2 2 3 5 4 6
  • 7. 07 Two Proposed File Structure Approaches – From architecture perspective ● API, Commands, Models, Views, View Controllers, Third Parties, Storyboards – From application perspective ● Web services (API, Command), UI (Features/Components/Models/Storyboards), Third Parties
  • 8. 08 Architectural Approach – Models – Networking – Application – Libraries
  • 9. 09 Application / UI Approach – Features – Components – .xib, views – view controllers, storyboards
  • 10. 02
  • 11. We are hiring iOS and Android engineers! Send resumes to: jchangho@grubhub.com @tiptopgs | mobilepickup.tumblr.com 11