Optimize and maintain your project in Xcode.

Bryn Bodayle
Bryn BodayleiOS Developer at Independent
Optimize and maintain
your project in Xcode.
A presentation by Bryn Bodayle
What is optimal?
Quick compile times
Easy maintenance
Avoiding crashes
Fast and lean apps
We will cover.
Compile time optimization
Compiler warnings and errors
Dependency management
Optimize compile time.
Use and eliminate warnings
Use asset catalogs
Clean out the garage
Use asset catalogs.
Migration tool is provided
Easy management and configuration
Compiles assets into binary format
Supports slicing in Xcode 7
Clean out the Garage
Extract IPA to check
Remove unused code and libraries
Remove unused assets
Use and eliminate warnings.
Use lots of compiler flags
Disable at a small scale
Order of compiler flags matters
Fix every warning
Use these compiler flags.
-Wall
-Wextra
-Werror
-Wconversion
-Wundef
-Wdeprecated-implementations
-Wno-unused-parameter
-Wfloat-equal
-Wimplicit-retain-self
-Wnewline-eof
-Wshadow
-Wsign-compare
For reference: http://f***ingclangwarnings.com
1. Disable inline.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[self performSelector:selector];
#pragma clang diagnostic pop
2. Disable per file.
3. Disable project-wide.
Order of compiler flags matters.
Fix every warning.
Use CocoaPods.
Stop it with submodules
Promotes healthy reuse
Easy version management
Questions?
Credits
Stopwatch by Edward Boatman from the Noun Project
Presenter by Björn Andersson from the Noun Project
Garage by Lloyd Humphreys from the Noun Project
1 of 16

Recommended

Java and services code lab spring boot and spring data using mongo db by
Java and services code lab spring boot and spring data using mongo dbJava and services code lab spring boot and spring data using mongo db
Java and services code lab spring boot and spring data using mongo dbStaples
228 views12 slides
App Mod 04: Reactive microservices with eclipse vert.x by
App Mod 04: Reactive microservices with eclipse vert.xApp Mod 04: Reactive microservices with eclipse vert.x
App Mod 04: Reactive microservices with eclipse vert.xJudy Breedlove
202 views21 slides
CNCF App-Delivery SIG Presentation - Litmus Chaos Engineering by
CNCF App-Delivery SIG Presentation - Litmus Chaos EngineeringCNCF App-Delivery SIG Presentation - Litmus Chaos Engineering
CNCF App-Delivery SIG Presentation - Litmus Chaos EngineeringUmasankar Mukkara
223 views25 slides
Progressive Web App Testing With Cypress.io by
Progressive Web App Testing With Cypress.ioProgressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.ioKnoldus Inc.
348 views20 slides
Afupday lille-2020 by
Afupday lille-2020Afupday lille-2020
Afupday lille-2020Nicolas De Boose
382 views44 slides
[FullStack NYC 2019] Effective Unit Tests for JavaScript by
[FullStack NYC 2019] Effective Unit Tests for JavaScript[FullStack NYC 2019] Effective Unit Tests for JavaScript
[FullStack NYC 2019] Effective Unit Tests for JavaScriptHazem Saleh
479 views21 slides

More Related Content

What's hot

Back to basic: continuous integration (Madrid DevOps) by
Back to basic: continuous integration (Madrid DevOps)Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)Sergio Navarro Pino
241 views25 slides
App Mod 05: App resiliency detecting and preventing issues in distributed apps by
App Mod 05: App resiliency detecting and preventing issues in distributed apps App Mod 05: App resiliency detecting and preventing issues in distributed apps
App Mod 05: App resiliency detecting and preventing issues in distributed apps Judy Breedlove
137 views17 slides
Eclipse based products by
Eclipse based productsEclipse based products
Eclipse based productsESPRIT
329 views11 slides
J hipster by
J hipsterJ hipster
J hipsterRasmita Jena
69 views11 slides
Alexey Kupriyanenko "Release Early, Often, Stable" by
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Fwdays
260 views64 slides
Ci2d - The Colossal Hood For Agile Development And Deployment by
Ci2d - The Colossal Hood For Agile Development And DeploymentCi2d - The Colossal Hood For Agile Development And Deployment
Ci2d - The Colossal Hood For Agile Development And DeploymentNaveen S.R
548 views13 slides

What's hot(20)

Back to basic: continuous integration (Madrid DevOps) by Sergio Navarro Pino
Back to basic: continuous integration (Madrid DevOps)Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)
App Mod 05: App resiliency detecting and preventing issues in distributed apps by Judy Breedlove
App Mod 05: App resiliency detecting and preventing issues in distributed apps App Mod 05: App resiliency detecting and preventing issues in distributed apps
App Mod 05: App resiliency detecting and preventing issues in distributed apps
Judy Breedlove137 views
Eclipse based products by ESPRIT
Eclipse based productsEclipse based products
Eclipse based products
ESPRIT329 views
Alexey Kupriyanenko "Release Early, Often, Stable" by Fwdays
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays260 views
Ci2d - The Colossal Hood For Agile Development And Deployment by Naveen S.R
Ci2d - The Colossal Hood For Agile Development And DeploymentCi2d - The Colossal Hood For Agile Development And Deployment
Ci2d - The Colossal Hood For Agile Development And Deployment
Naveen S.R548 views
A new Test Tool in SAP Circuit Diagram for Code: SAP ABAP Test Seams Moose2Model by ESUG
A new Test Tool in SAP Circuit Diagram for Code: SAP ABAP Test Seams Moose2ModelA new Test Tool in SAP Circuit Diagram for Code: SAP ABAP Test Seams Moose2Model
A new Test Tool in SAP Circuit Diagram for Code: SAP ABAP Test Seams Moose2Model
ESUG319 views
Chaos engineering with Litmus Chaos Framework by Anshul Patel
Chaos engineering with Litmus Chaos FrameworkChaos engineering with Litmus Chaos Framework
Chaos engineering with Litmus Chaos Framework
Anshul Patel532 views
Continuous Integration - What even is it? by Rob Jacoby
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?
Rob Jacoby260 views
Introduction to cypress in Angular (Chinese) by Hong Tat Yew
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
Hong Tat Yew270 views
Speed upyourtest with_appium by VodqaBLR
Speed upyourtest with_appiumSpeed upyourtest with_appium
Speed upyourtest with_appium
VodqaBLR421 views
Modern CI/CD in the microservices world with Kubernetes by Mikalai Alimenkou
Modern CI/CD in the microservices world with KubernetesModern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with Kubernetes
Mikalai Alimenkou841 views
Никита Манько “Code review” by EPAM Systems
Никита Манько “Code review”Никита Манько “Code review”
Никита Манько “Code review”
EPAM Systems834 views
ColdFusion Components by jsmith
ColdFusion ComponentsColdFusion Components
ColdFusion Components
jsmith591 views
Beyond the basics of SonarQube: improve your Java(Script) code even further by Johan Janssen
Beyond the basics of SonarQube: improve your Java(Script) code even furtherBeyond the basics of SonarQube: improve your Java(Script) code even further
Beyond the basics of SonarQube: improve your Java(Script) code even further
Johan Janssen829 views
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré by Xebia Nederland BV
TestWorks Conf Performance testing made easy with gatling - Guillaume CorréTestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
Xebia Nederland BV1.6K views
Arquillian: Effective tests from the client to the server by Lukáš Fryč
Arquillian: Effective tests from the client to the serverArquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
Lukáš Fryč1.7K views

Similar to Optimize and maintain your project in Xcode.

Code quality par Simone Civetta by
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone CivettaCocoaHeads France
4.8K views83 slides
Perfomatix - NodeJS Coding Standards by
Perfomatix - NodeJS Coding StandardsPerfomatix - NodeJS Coding Standards
Perfomatix - NodeJS Coding StandardsPerfomatix Solutions
107 views32 slides
Continuous Integration using Cruise Control by
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Controlelliando dias
1.2K views29 slides
Audit your reactive applications by
Audit your reactive applicationsAudit your reactive applications
Audit your reactive applicationsOCTO Technology
1.5K views25 slides
Efficient mobile automation by
Efficient mobile automationEfficient mobile automation
Efficient mobile automationVitaly Tatarinov
176 views53 slides
When to use Serverless? When to use Kubernetes? by
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
1.6K views69 slides

Similar to Optimize and maintain your project in Xcode.(20)

Continuous Integration using Cruise Control by elliando dias
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Control
elliando dias1.2K views
Audit your reactive applications by OCTO Technology
Audit your reactive applicationsAudit your reactive applications
Audit your reactive applications
OCTO Technology1.5K views
When to use Serverless? When to use Kubernetes? by Niklas Heidloff
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
Niklas Heidloff1.6K views
AppSec California 2016 - Making Security Agile by Oleg Gryb
AppSec California 2016 - Making Security AgileAppSec California 2016 - Making Security Agile
AppSec California 2016 - Making Security Agile
Oleg Gryb933 views
Avoid the Vendor Lock-in Trap (with App Deployment) by Peter Bittner
Avoid the Vendor Lock-in Trap (with App Deployment)Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)
Peter Bittner89 views
Java Attacks & Defenses - End of Year 2010 Presentation by James Hamilton
Java Attacks & Defenses - End of Year 2010 PresentationJava Attacks & Defenses - End of Year 2010 Presentation
Java Attacks & Defenses - End of Year 2010 Presentation
James Hamilton510 views
Real World Enterprise Reactive Programming using Vert.x by Mariam Hakobyan
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
Mariam Hakobyan5.9K views
Java Performance & Profiling by Isuru Perera
Java Performance & ProfilingJava Performance & Profiling
Java Performance & Profiling
Isuru Perera1K views
DCSF 19 Building Your Development Pipeline by Docker, Inc.
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
Docker, Inc.467 views
Creating a reasonable project boilerplate by Stanislav Petrov
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
Stanislav Petrov104 views
Making Security Agile by Oleg Gryb
Making Security AgileMaking Security Agile
Making Security Agile
Oleg Gryb1.4K views
Real World Enterprise Reactive Programming using Vert.x by Sascha Möllering
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
Sascha Möllering2.4K views
Build your first DApp using Substrate Framework - Part I by Knoldus Inc.
Build your first DApp using Substrate Framework - Part IBuild your first DApp using Substrate Framework - Part I
Build your first DApp using Substrate Framework - Part I
Knoldus Inc.254 views
Optimizing Spark Deployments for Containers: Isolation, Safety, and Performan... by Spark Summit
Optimizing Spark Deployments for Containers: Isolation, Safety, and Performan...Optimizing Spark Deployments for Containers: Isolation, Safety, and Performan...
Optimizing Spark Deployments for Containers: Isolation, Safety, and Performan...
Spark Summit2K views

Recently uploaded

FIMA 2023 Neo4j & FS - Entity Resolution.pptx by
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
17 views26 slides
predicting-m3-devopsconMunich-2023.pptx by
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptxTier1 app
8 views24 slides
Generic or specific? Making sensible software design decisions by
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
7 views60 slides
Top-5-production-devconMunich-2023.pptx by
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
9 views40 slides
How Workforce Management Software Empowers SMEs | TraQSuite by
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteTraQSuite
6 views3 slides
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...sparkfabrik
8 views46 slides

Recently uploaded(20)

FIMA 2023 Neo4j & FS - Entity Resolution.pptx by Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j17 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app9 views
How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite6 views
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik8 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi216 views
ADDO_2022_CICID_Tom_Halpin.pdf by TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 views
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8714 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492162 views
Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 views

Optimize and maintain your project in Xcode.