SlideShare a Scribd company logo
1 of 48
Download to read offline
BEYOND HACKING
Crafting Quality Software
HOW IS SOFTWARE BUILT IN SMALL TEAMS?
WHY DOES THAT APPROACH NOT SCALE?
WHAT IS QUALITY?
HOW CAN WE ACCOMPLISH IT?
FROM CLEAN CODE - A HANDBOOK OF AGILE SOFTWARE CRAFTMANSHIP BY ROBERT C. MARTIN
Development Speed
Issues
WHAT IS QUALITY?
BUILDING SOFTWARE IN
SMALL TEAMS
App
1. Code
2. Deploy
<Code>
V 1.0 V 1.0.1 V 1.1 V 1.1.1
Add FeatureFix Bug Fix Bug
LIFE IS SIMPLE
LIFE IS GOOD
YOU ARE SHIPPING FAST
BUT SOMETHING FEELS
WRONG
def update(post, title)
@user = User.first
if @user.logged_in
if @user.type == "admin"
@user.type.permissions.each do |permission| {
if (permission == "update_permission") {
if post
begin
post.title = title
post.save
rescue
display_error("This horrible code is not workin!")
end
else
display_error("No Post provided")
end
}
}
elsif @user.type == "other"
return
else
display_error("Invalid User Type")
end
else
#What do here?
end
end
BAD CODE
TEAMS GROW, 

SOFTWARE GROWS
Rock 

Bottom
t
code complexity
dev velocity
issues
App
1. Code
2. Deploy
<Code>
?
?
!
!
!
?
?
!
WHAT NOW?
IT’S TIME TO REFACTOR
WHERE’S THE SPEC FOR
ALL FEATURES?
…
HOW CAN WE AVOID THIS?
AS SOFTWARE AND TEAM
GROW - ADD PROCESS
AND AUTOMATION
HOW CAN WE AVOID CHAOS?
Specification
Automated Testing
Continous Integration
Coding guidelines / Code Analysis
Reproducible development environment
(1)
SPECIFY YOUR
APPLICATION
TESTS CAN ACT AS
SPECIFICATION!
BDD FRAMEWORKS CAN BE USED TO
SPECIFY SOFTWARE
Cucumber Framework: http://cukes.info/
Feature: Search courses
Courses should be searchable by topic
Search results should provide the course code
Scenario: Search by topic
Given there are 240 courses which do not have the topic "biology"
And there are 2 courses, A001 and B205, that each have "biology" as one of the topics
When I search for "biology"
Then I should see the following courses:
| Course code |
| A001 |
| B205 |
Acceptance Test
(2)
WRITE AUTOMATED TESTS
(BEFORE WRITING APPLICATION CODE)
HOW SHOULD WE TEST?
ACCEPTANCE TEST
When it fails, it tells you that the
application is not doing what the
customer expects it to do
UNIT TEST
When it fails, it tells you what piece
of your code needs to be fixed
EXAMPLE
SignupService.POST(User:"Ben-G", PW:"&47-:#sdö").expect(200)
SignupService.POST(User:"Ben-G", PW:”").expect(400)
SignupService.POST(User:"Ben-G", PW:"&47-:#sdö").expect(200)
PasswordValidator.testPassword("&47-:#sdö").expect(true)
PasswordValidator.testPassword(“”).expect(false)
UsernameValidator.testUsername("Ben-G").expect(true)
PasswordValidator
SignupService
testPassword:Bool
HTTP POST
User: Ben-G
PW: &47-:#sdö
UsernameValidator
testUsername:Bool
SignupService.POST(User:"", PW:"&47-:#sdö").expect(401) UsernameValidator.testUsername("").expect(false)
Acceptance Tests Unit Tests
(3)
MEASURE CODE COVERAGE
CODE COVERAGE
= % OF CODE COVERED BY TEST
(4)
PROVIDE CODING
STYLEGUIDES, AUTOMATE
CODE QUALITY TESTING
GITHUB RUBY STYLEGUIDE:
https://github.com/styleguide/ruby
RUBOCOP, OCLINT, JSLINT
TOOLS THAT MEASURE
CONFORMANCE TO CODING
GUIDELINES + FIND CODE SMELLS
“static analyzers”
CODE
CLIMATE
STATIC
ANALYZER AS
A SERVICE
(5)
USE A CONTINUOUS
INTEGRATION SERVER
CONTINOUS INTEGRATION
Every time code is pushed:
• Run Static Analyzer
• Run All tests
• Measure Code Coverage
• Run the Build Process
Working product can be shipped at any time!
If anything breaks we find out right away
(6)
PROVIDE REPRODUCIBLE
DEVELOPMENT ENVIRONMENT
?
But it works
on my local
machine…
MINIMUM CONFIGURATION
git clone git@github.com:MakeGamesWithUs/www-makeschool.git
./server start
./server test
start rails server
run test suite
• Git repository contains the definition of a Docker container

+ a Fig configuration describing services
• App runs in Virtual Machine providing the same 

environment for all developers
+
VM
define
Rails App
MongoDB
Postgres
PUTTING IT ALL TOGETHER
Code Coverage Measurements
Unit Tests
enforce
Acceptance Tests
Specification
Low Issue Count
define
support
Refactoring
enable
High Code Quality
drives
enables
Automated Code
Quality Analysis
drives
drives
Development Speed
Reproducible Development
Environment
drives
enables
support
Continous
Integration
{
automates
QUALITY SOFTWARE
=
SLEEP WELL AFTER PUSHING NEW
CODE TO MILLIONS OF USERS
QUALITY SOFTWARE
t
code complexity
dev velocity
issues
benji@makeschool.com
THANK YOU!

More Related Content

What's hot

Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaSalesforce Developers
 
BDD approach with Selenium RC
BDD approach with Selenium RCBDD approach with Selenium RC
BDD approach with Selenium RCMykola Kolisnyk
 
Performance Testing REST APIs
Performance Testing REST APIsPerformance Testing REST APIs
Performance Testing REST APIsJason Weden
 
Presentation for soap ui
Presentation for soap uiPresentation for soap ui
Presentation for soap uiAnjali Rao
 
User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?Maveryx
 
Web API testing : A quick glance
Web API testing : A quick glanceWeb API testing : A quick glance
Web API testing : A quick glanceDhanalaxmi K
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesSauce Labs
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing ProcessQASource
 
Testing APIs in the Cloud
Testing APIs in the CloudTesting APIs in the Cloud
Testing APIs in the CloudSmartBear
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap uipkslide28
 
Request Validation In Spring Rest-Part2
Request Validation In Spring Rest-Part2Request Validation In Spring Rest-Part2
Request Validation In Spring Rest-Part2Mohammad Sabir Khan
 
Soa testing soap ui (2)
Soa testing   soap ui (2)Soa testing   soap ui (2)
Soa testing soap ui (2)Knoldus Inc.
 
Web based automation testing on Node.js environment
Web based automation testing on Node.js environmentWeb based automation testing on Node.js environment
Web based automation testing on Node.js environmentYu-Lin Huang
 
Remove Bugs With API Testing Services
Remove Bugs With API Testing ServicesRemove Bugs With API Testing Services
Remove Bugs With API Testing ServicesBugRaptors
 
Test Coverage for Your WP REST API Project
Test Coverage for Your WP REST API ProjectTest Coverage for Your WP REST API Project
Test Coverage for Your WP REST API ProjectPantheon
 

What's hot (20)

Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
 
BDD approach with Selenium RC
BDD approach with Selenium RCBDD approach with Selenium RC
BDD approach with Selenium RC
 
Performance Testing REST APIs
Performance Testing REST APIsPerformance Testing REST APIs
Performance Testing REST APIs
 
Presentation for soap ui
Presentation for soap uiPresentation for soap ui
Presentation for soap ui
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?
 
Web API testing : A quick glance
Web API testing : A quick glanceWeb API testing : A quick glance
Web API testing : A quick glance
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
 
Testing APIs in the Cloud
Testing APIs in the CloudTesting APIs in the Cloud
Testing APIs in the Cloud
 
Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
 
Request Validation In Spring Rest-Part2
Request Validation In Spring Rest-Part2Request Validation In Spring Rest-Part2
Request Validation In Spring Rest-Part2
 
Soa testing soap ui (2)
Soa testing   soap ui (2)Soa testing   soap ui (2)
Soa testing soap ui (2)
 
Web based automation testing on Node.js environment
Web based automation testing on Node.js environmentWeb based automation testing on Node.js environment
Web based automation testing on Node.js environment
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
Php Development Stack
Php Development StackPhp Development Stack
Php Development Stack
 
Remove Bugs With API Testing Services
Remove Bugs With API Testing ServicesRemove Bugs With API Testing Services
Remove Bugs With API Testing Services
 
Test Coverage for Your WP REST API Project
Test Coverage for Your WP REST API ProjectTest Coverage for Your WP REST API Project
Test Coverage for Your WP REST API Project
 

Viewers also liked

Cyber Threat Management Services
Cyber Threat Management ServicesCyber Threat Management Services
Cyber Threat Management ServicesMarlabs
 
6 rules of composition
6 rules of composition6 rules of composition
6 rules of compositionTaiSheng
 
Six Rules of Photography Composition
Six Rules of Photography CompositionSix Rules of Photography Composition
Six Rules of Photography Compositiondrummajjason
 
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCBECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCBEMA Design Automation
 
Conferences i/o - Audience Engagement System
Conferences i/o - Audience Engagement SystemConferences i/o - Audience Engagement System
Conferences i/o - Audience Engagement SystemJohn Pytel
 
U.S. Live Event Attendance Study
U.S. Live Event Attendance StudyU.S. Live Event Attendance Study
U.S. Live Event Attendance StudyLiveAnalytics
 
Basics Of 3 Dimensional Design
Basics Of 3 Dimensional DesignBasics Of 3 Dimensional Design
Basics Of 3 Dimensional DesignMark Creegan
 
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014Julien Vermillard
 
Choosing the Right Trading Desk for Your Display Programmatic Buying
Choosing the Right Trading Desk for Your Display Programmatic BuyingChoosing the Right Trading Desk for Your Display Programmatic Buying
Choosing the Right Trading Desk for Your Display Programmatic BuyingAcquisio
 
Insufficienza valvolare aortica
Insufficienza valvolare aorticaInsufficienza valvolare aortica
Insufficienza valvolare aorticaICARDIOLOGI
 
Critical chain - Eliyahu goldratt
Critical chain - Eliyahu goldrattCritical chain - Eliyahu goldratt
Critical chain - Eliyahu goldrattazadiriz
 
General 1 fixatives cytology
General  1 fixatives cytologyGeneral  1 fixatives cytology
General 1 fixatives cytologyNem Shrestha
 
4G Mobile Network & Applications
4G Mobile Network & Applications4G Mobile Network & Applications
4G Mobile Network & ApplicationsKuncoro Wastuwibowo
 
Intensive Reading: Methods and Strategies
Intensive Reading: Methods and StrategiesIntensive Reading: Methods and Strategies
Intensive Reading: Methods and StrategiesIsa Agudo
 
What Is Digital Quality Management?
What Is Digital Quality Management?What Is Digital Quality Management?
What Is Digital Quality Management?Crownpeak
 
Five Generic Competitive Strategies
Five Generic Competitive StrategiesFive Generic Competitive Strategies
Five Generic Competitive StrategiesOmi Dutta
 
Interferometric modulator (imod)
Interferometric modulator (imod)Interferometric modulator (imod)
Interferometric modulator (imod)Ankita Sinha
 

Viewers also liked (20)

Cyber Threat Management Services
Cyber Threat Management ServicesCyber Threat Management Services
Cyber Threat Management Services
 
6 rules of composition
6 rules of composition6 rules of composition
6 rules of composition
 
Six Rules of Photography Composition
Six Rules of Photography CompositionSix Rules of Photography Composition
Six Rules of Photography Composition
 
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCBECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
 
Conferences i/o - Audience Engagement System
Conferences i/o - Audience Engagement SystemConferences i/o - Audience Engagement System
Conferences i/o - Audience Engagement System
 
U.S. Live Event Attendance Study
U.S. Live Event Attendance StudyU.S. Live Event Attendance Study
U.S. Live Event Attendance Study
 
Basics Of 3 Dimensional Design
Basics Of 3 Dimensional DesignBasics Of 3 Dimensional Design
Basics Of 3 Dimensional Design
 
Seat design
Seat designSeat design
Seat design
 
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014
 
Choosing the Right Trading Desk for Your Display Programmatic Buying
Choosing the Right Trading Desk for Your Display Programmatic BuyingChoosing the Right Trading Desk for Your Display Programmatic Buying
Choosing the Right Trading Desk for Your Display Programmatic Buying
 
Insufficienza valvolare aortica
Insufficienza valvolare aorticaInsufficienza valvolare aortica
Insufficienza valvolare aortica
 
Critical chain - Eliyahu goldratt
Critical chain - Eliyahu goldrattCritical chain - Eliyahu goldratt
Critical chain - Eliyahu goldratt
 
General 1 fixatives cytology
General  1 fixatives cytologyGeneral  1 fixatives cytology
General 1 fixatives cytology
 
4G Mobile Network & Applications
4G Mobile Network & Applications4G Mobile Network & Applications
4G Mobile Network & Applications
 
Intensive Reading: Methods and Strategies
Intensive Reading: Methods and StrategiesIntensive Reading: Methods and Strategies
Intensive Reading: Methods and Strategies
 
Macro etching
Macro etching Macro etching
Macro etching
 
Methods of Dewatering
Methods of DewateringMethods of Dewatering
Methods of Dewatering
 
What Is Digital Quality Management?
What Is Digital Quality Management?What Is Digital Quality Management?
What Is Digital Quality Management?
 
Five Generic Competitive Strategies
Five Generic Competitive StrategiesFive Generic Competitive Strategies
Five Generic Competitive Strategies
 
Interferometric modulator (imod)
Interferometric modulator (imod)Interferometric modulator (imod)
Interferometric modulator (imod)
 

Similar to How to build quality software

Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoMoldova ICT Summit
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Sittiphol Phanvilai
 
Code Quality Practice and Tools
Code Quality Practice and ToolsCode Quality Practice and Tools
Code Quality Practice and ToolsBob Paulin
 
apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipios
apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipiosapidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipios
apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipiosapidays
 
Art of unit testing: how to do it right
Art of unit testing: how to do it rightArt of unit testing: how to do it right
Art of unit testing: how to do it rightDmytro Patserkovskyi
 
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)Future Insights
 
SELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdfSELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdfEric Selje
 
Acceptance Testing With Selenium
Acceptance Testing With SeleniumAcceptance Testing With Selenium
Acceptance Testing With Seleniumelliando dias
 
Manual testing centers marathahalli
Manual testing centers marathahalli Manual testing centers marathahalli
Manual testing centers marathahalli Gyanguide1
 
software testing technique
software testing techniquesoftware testing technique
software testing techniqueRana assad ali
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
Data Entry Operator Certification
Data Entry Operator CertificationData Entry Operator Certification
Data Entry Operator CertificationVskills
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanJaehoon Oh
 
Performance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity TestingPerformance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity TestingAkshay Patole
 
[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practice[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practicePierre Vincent
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Amazon Web Services
 

Similar to How to build quality software (20)

UI Testing
UI TestingUI Testing
UI Testing
 
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai Shevchenko
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]
 
Code Quality Practice and Tools
Code Quality Practice and ToolsCode Quality Practice and Tools
Code Quality Practice and Tools
 
apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipios
apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipiosapidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipios
apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipios
 
Art of unit testing: how to do it right
Art of unit testing: how to do it rightArt of unit testing: how to do it right
Art of unit testing: how to do it right
 
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
 
SELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdfSELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdf
 
AAA Automated Testing
AAA Automated TestingAAA Automated Testing
AAA Automated Testing
 
Acceptance Testing With Selenium
Acceptance Testing With SeleniumAcceptance Testing With Selenium
Acceptance Testing With Selenium
 
Manual testing centers marathahalli
Manual testing centers marathahalli Manual testing centers marathahalli
Manual testing centers marathahalli
 
software testing technique
software testing techniquesoftware testing technique
software testing technique
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Data Entry Operator Certification
Data Entry Operator CertificationData Entry Operator Certification
Data Entry Operator Certification
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
 
Performance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity TestingPerformance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity Testing
 
[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practice[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practice
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
 
Lisa
LisaLisa
Lisa
 

More from Make School

Automated Testing on iOS
Automated Testing on iOSAutomated Testing on iOS
Automated Testing on iOSMake School
 
Memory Management on iOS
Memory Management on iOSMemory Management on iOS
Memory Management on iOSMake School
 
Swift Objective-C Interop
Swift Objective-C InteropSwift Objective-C Interop
Swift Objective-C InteropMake School
 
Client Server Synchronization iOS
Client Server Synchronization iOSClient Server Synchronization iOS
Client Server Synchronization iOSMake School
 
Dependency Management on iOS
Dependency Management on iOSDependency Management on iOS
Dependency Management on iOSMake School
 
Xcode Project Infrastructure
Xcode Project InfrastructureXcode Project Infrastructure
Xcode Project InfrastructureMake School
 
Localization and Accessibility on iOS
Localization and Accessibility on iOSLocalization and Accessibility on iOS
Localization and Accessibility on iOSMake School
 
Distributing information on iOS
Distributing information on iOSDistributing information on iOS
Distributing information on iOSMake School
 
Error Handling in Swift
Error Handling in SwiftError Handling in Swift
Error Handling in SwiftMake School
 
Client Server Communication on iOS
Client Server Communication on iOSClient Server Communication on iOS
Client Server Communication on iOSMake School
 
Standard libraries on iOS
Standard libraries on iOSStandard libraries on iOS
Standard libraries on iOSMake School
 
Intro to iOS Application Architecture
Intro to iOS Application ArchitectureIntro to iOS Application Architecture
Intro to iOS Application ArchitectureMake School
 
Make School 2017 - Mastering iOS Development
Make School 2017 - Mastering iOS DevelopmentMake School 2017 - Mastering iOS Development
Make School 2017 - Mastering iOS DevelopmentMake School
 
Multithreading on iOS
Multithreading on iOSMultithreading on iOS
Multithreading on iOSMake School
 
Advanced Core Data
Advanced Core DataAdvanced Core Data
Advanced Core DataMake School
 
Intro to Core Data
Intro to Core DataIntro to Core Data
Intro to Core DataMake School
 
Persistence on iOS
Persistence on iOSPersistence on iOS
Persistence on iOSMake School
 
Layout with Stack View, Table View, and Collection View
Layout with Stack View, Table View, and Collection ViewLayout with Stack View, Table View, and Collection View
Layout with Stack View, Table View, and Collection ViewMake School
 
iOS Layout Overview
iOS Layout OverviewiOS Layout Overview
iOS Layout OverviewMake School
 

More from Make School (20)

Automated Testing on iOS
Automated Testing on iOSAutomated Testing on iOS
Automated Testing on iOS
 
Memory Management on iOS
Memory Management on iOSMemory Management on iOS
Memory Management on iOS
 
Swift Objective-C Interop
Swift Objective-C InteropSwift Objective-C Interop
Swift Objective-C Interop
 
Client Server Synchronization iOS
Client Server Synchronization iOSClient Server Synchronization iOS
Client Server Synchronization iOS
 
Dependency Management on iOS
Dependency Management on iOSDependency Management on iOS
Dependency Management on iOS
 
Xcode Project Infrastructure
Xcode Project InfrastructureXcode Project Infrastructure
Xcode Project Infrastructure
 
Localization and Accessibility on iOS
Localization and Accessibility on iOSLocalization and Accessibility on iOS
Localization and Accessibility on iOS
 
Distributing information on iOS
Distributing information on iOSDistributing information on iOS
Distributing information on iOS
 
Swift 2 intro
Swift 2 introSwift 2 intro
Swift 2 intro
 
Error Handling in Swift
Error Handling in SwiftError Handling in Swift
Error Handling in Swift
 
Client Server Communication on iOS
Client Server Communication on iOSClient Server Communication on iOS
Client Server Communication on iOS
 
Standard libraries on iOS
Standard libraries on iOSStandard libraries on iOS
Standard libraries on iOS
 
Intro to iOS Application Architecture
Intro to iOS Application ArchitectureIntro to iOS Application Architecture
Intro to iOS Application Architecture
 
Make School 2017 - Mastering iOS Development
Make School 2017 - Mastering iOS DevelopmentMake School 2017 - Mastering iOS Development
Make School 2017 - Mastering iOS Development
 
Multithreading on iOS
Multithreading on iOSMultithreading on iOS
Multithreading on iOS
 
Advanced Core Data
Advanced Core DataAdvanced Core Data
Advanced Core Data
 
Intro to Core Data
Intro to Core DataIntro to Core Data
Intro to Core Data
 
Persistence on iOS
Persistence on iOSPersistence on iOS
Persistence on iOS
 
Layout with Stack View, Table View, and Collection View
Layout with Stack View, Table View, and Collection ViewLayout with Stack View, Table View, and Collection View
Layout with Stack View, Table View, and Collection View
 
iOS Layout Overview
iOS Layout OverviewiOS Layout Overview
iOS Layout Overview
 

Recently uploaded

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 

Recently uploaded (20)

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 

How to build quality software