SlideShare una empresa de Scribd logo
1 de 91
Descargar para leer sin conexión
Mastering the
Project File
@micheletitolo
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
<<<<<<< HEAD
! ! ! ! A487DC9215FE5DCD0037E8A3 /* AppDelegate.h */,
! ! ! ! A487DC9315FE5DCD0037E8A3 /* AppDelegate.m */,
! ! ! ! D9CA01C11720AD7D00CBD2B2 /* View Controllers */,
=======
! ! ! ! D9CA01B71720AC3000CBD2B2 /* Base */,
! ! ! ! D9CA01BB1720AC3C00CBD2B2 /* Controllers */,
>>>>>>> new_ratings
Thursday, June 5, 14
Falling back to patching base and 3-way merge...
Auto-merging MyApp.xcodeproj/project.pbxproj
CONFLICT (content): Merge conflict in
! MyApp.xcodeproj/project.pbxproj
Failed to merge in the changes.
Patch failed at 0037 Launch screen images update
The copy of the patch that failed is found in:
! /tmp/git/.git/rebase-apply/patch
Thursday, June 5, 14
It’s not that special
Thursday, June 5, 14
Thursday, June 5, 14
.xcodeproj
Thursday, June 5, 14
It’s a folder
Thursday, June 5, 14
Thursday, June 5, 14
Two kinds of files
Thursday, June 5, 14
Plist and XML
Thursday, June 5, 14
All the settings
Thursday, June 5, 14
Schemes, too
Thursday, June 5, 14
Thursday, June 5, 14
project.xcworkspace
Thursday, June 5, 14
another “special” folder
Thursday, June 5, 14
Thursday, June 5, 14
contents.xcworkspacedata
Thursday, June 5, 14
references .xcodeproj
Thursday, June 5, 14
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:MyApp.xcodeproj">
</FileRef>
</Workspace>
Thursday, June 5, 14
Not just in .xcodeproj
Thursday, June 5, 14
project.pbxproj
Thursday, June 5, 14
it’s a plist
Thursday, June 5, 14
a very special plist
Thursday, June 5, 14
the heart of your project
Thursday, June 5, 14
let’s look inside
Thursday, June 5, 14
// !$*UTF8*$!
{
! archiveVersion = 1;
! classes = {
! };
! objectVersion = 46;
! objects = {
/* Begin PBXBuildFile section */
! ! 8A9D5590A3E24AC297598750 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef...
! ! D94D3E72170B80FB00EA401C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; f...
! ! D94D3E74170B80FB00EA401C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFi...
! ! D94D3E76170B80FB00EA401C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuild...
! ! D94D3E7C170B80FB00EA401C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; ...
! ! D94D3E7E170B80FB00EA401C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D94...
! ! D94D3E82170B80FB00EA401C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRe...
! ! D94D3E84170B80FB00EA401C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRe...
! ! D94D3E86170B80FB00EA401C /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fil...
! ! D94D3E88170B80FB00EA401C /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile...
Thursday, June 5, 14
Thursday, June 5, 14
Let’s break it down
Thursday, June 5, 14
‘objects’ and ‘root_object’
Thursday, June 5, 14
‘objects’
Thursday, June 5, 14
objects = {
D94D3E72170B80FB00EA401C = {...};
D94D3E74170B80FB00EA401C = {...};
D94D3E76170B80FB00EA401C = {...};
532ABB3011D5647300D29D20 = {...};
532ABB3111D5647300D29D20 = {...};
532ABB3211D5647300D29D20 = {...};
532ABB3311D5647300D29D20 = {...};
};
Thursday, June 5, 14
Every object has a UID
Thursday, June 5, 14
objects = {
532ABB3011D5647300D29D20 = {...};
532ABB3111D5647300D29D20 = {...};
532ABB3211D5647300D29D20 = {...};
532ABB3311D5647300D29D20 = {...};
};
0
1
2
3
Thursday, June 5, 14
‘root_object’
Thursday, June 5, 14
04A4CCDA164D5E0400FB5950 /* Project object */ = {
! isa = PBXProject;
! attributes = {
! ! CLASSPREFIX = MRT;
! ! LastUpgradeCheck = 0450;
! ! ORGANIZATIONNAME = "Michele Titolo";
! };
! buildConfigurationList = 04A4CCDD164D5E0400FB5950;
! compatibilityVersion = "Xcode 3.2";
! developmentRegion = English;
! hasScannedForEncodings = 0;
! knownRegions = (
! ! en,
! );
! mainGroup = 04A4CCD8164D5E0400FB5950;
! productRefGroup = 04A4CCE4164D5E0400FB5950 /* Products */;
! projectDirPath = "";
! projectRoot = "";
! targets = (
! ! 04A4CCE2164D5E0400FB5950 /* MyApp */,
! ! D9D2509C173AB9AD0046F074 /* MyApp Test */,
! ! D9E6BA6A177CDB9C00C98B08 /* MyApp KIF */,
! );
};
Thursday, June 5, 14
04A4CCDA164D5E0400FB5950 /* Project object */ = {
! isa = PBXProject;
! attributes = {
! ! CLASSPREFIX = MRT;
! ! LastUpgradeCheck = 0450;
! ! ORGANIZATIONNAME = "Michele Titolo";
! };
! buildConfigurationList = 04A4CCDD164D5E0400FB5950;
! compatibilityVersion = "Xcode 3.2";
! developmentRegion = English;
! hasScannedForEncodings = 0;
! knownRegions = (
! ! en,
! );
! mainGroup = 04A4CCD8164D5E0400FB5950;
! productRefGroup = 04A4CCE4164D5E0400FB5950 /* Products */;
! projectDirPath = "";
! projectRoot = "";
! targets = (
! ! 04A4CCE2164D5E0400FB5950 /* MyApp */,
! ! D9D2509C173AB9AD0046F074 /* MyApp Test */,
! ! D9E6BA6A177CDB9C00C98B08 /* MyApp KIF */,
! );
};
isa
mainGroup
targets
buildConfigurationList
Thursday, June 5, 14
isa = PBXProject;
Thursday, June 5, 14
mainGroup = A487DC7415FE5DCD0037E8A3;
Thursday, June 5, 14
targets = (
! 1D6058900D05DD3D006BFB54 /* MyApp */,
! D94C698916E6E808002BDD31 /* MyApp Test */,
! D9E1D32A16E6FCC100C0524D /* MyApp Pro */,
);
Thursday, June 5, 14
projectReferences = (
! {
! ! ProductGroup = D94C698116E6E7DE002BDD31 /* Products */;
! ! ProjectRef = D94C698016E6E7DE002BDD31 /* KIF.xcodeproj */;
! },
);
Thursday, June 5, 14
buildConfigurationList = C01FCF4E08A954540054247B
Thursday, June 5, 14
Classes
Thursday, June 5, 14
PBXAggregateTarget
PBXBuildRule
PBXContainerItemProxy
PBXCopyFilesBuildPhase
PBXFileReference
PBXFrameworksBuildPhase
PBXGroup
PBXHeadersBuildPhase
PBXLegacyTarget
PBXNativeTarget
PBXProject
PBXReferenceProxy
PBXResourcesBuildPhase
PBXShellScriptBuildPhase
PBXSourcesBuildPhase
PBXTargetDependency
PBXVariantGroup
XCBuildConfiguration
XCConfigurationList
XCVersionGroup
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
XCBuildConfiguration
Thursday, June 5, 14
Thursday, June 5, 14
Debug and Release
Thursday, June 5, 14
Compiler flags
Thursday, June 5, 14
04A4CD07164D5E0400FB5950 /* Debug */ = {
! isa = XCBuildConfiguration;
! baseConfigurationReference = 4B98CBDFD81F4259923E97CE;
! buildSettings = {
! ! CODE_SIGN_IDENTITY = "iPhone Developer";
! ! "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
! ! GCC_PRECOMPILE_PREFIX_HEADER = YES;
! ! GCC_PREFIX_HEADER = "MyApp/MyApp-Prefix.pch";
! ! GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
! ! INFOPLIST_FILE = "MyApp/MyApp-Info.plist";
! ! PRODUCT_NAME = "$(TARGET_NAME)";
! ! PROVISIONING_PROFILE = "";
! ! "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
! ! WRAPPER_EXTENSION = app;
! };
! name = Debug;
};
PROVISIONING_PROFILE
PRODUCT_NAME
INFOPLIST_FILE
GCC_VERSION
CODE_SIGN_IDENTITY
name
Thursday, June 5, 14
Swift
Thursday, June 5, 14
SWIFT_OBJC_BRIDGING_HEADER = "MyApp-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
Thursday, June 5, 14
Project or Target
Thursday, June 5, 14
PBXNativeTarget
Thursday, June 5, 14
04A4CCE2164D5E0400FB5950 /* MyApp */ = {
! isa = PBXNativeTarget;
! buildConfigurationList = 04A4CD06164D5E0400FB5950 /* Build
configuration list for PBXNativeTarget "MyApp" */;
! buildPhases = (
! ! 29390B06A9D3479F9566AA27 /* Check Pods Manifest.lock */,
! ! 04A4CCDF164D5E0400FB5950 /* Sources */,
! ! 04A4CCE0164D5E0400FB5950 /* Frameworks */,
! ! 04A4CCE1164D5E0400FB5950 /* Resources */,
! ! F3BAB5EA93C24AE18A4EE832 /* Copy Pods Resources */,
! );
! buildRules = ();
! dependencies = ();
! name = MyApp;
! productName = MyApp;
! productReference = 04A4CCE3164D5E0400FB5950 /* MyApp.app */;
! productType = "com.apple.product-type.application";
};
buildPhases
name
buildConfigurationList
productName
Thursday, June 5, 14
Build phase types
Thursday, June 5, 14
PBXResourcesBuildPhase
==
Copy Bundle Resources
Thursday, June 5, 14
PBXSourcesBuildPhase
==
Compile Sources
Thursday, June 5, 14
PBXFrameworksBuildPhase
==
Link Binary With Libraries
Thursday, June 5, 14
PBXShellScriptBuildPhase
==
Run Script
Thursday, June 5, 14
F3BAB5EA93C24AE18A4EE832 /* Copy Pods Resources */ = {
! isa = PBXShellScriptBuildPhase;
! buildActionMask = 2147483647;
! files = ();
! inputPaths = ();
! name = "Copy Pods Resources";
! outputPaths = ();
! runOnlyForDeploymentPostprocessing = 0;
! shellPath = /bin/sh;
! shellScript = ""${SRCROOT}/Pods/Pods-resources.sh"n";
};
shellScript
Thursday, June 5, 14
xcuserdata
Thursday, June 5, 14
User-specific info
Thursday, June 5, 14
.xcuserdatad
Thursday, June 5, 14
Schemes & breakpoints
Thursday, June 5, 14
xcschememanagement.plist
Thursday, June 5, 14
MyApp.xcscheme
Thursday, June 5, 14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://
www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
! <key>SchemeUserState</key>
! <dict>
! ! <key>MyApp.xcscheme_^#shared#^_</key>
! ! <dict>
! ! ! <key>orderHint</key>
! ! ! <integer>1</integer>
! ! </dict>
! </dict>
! <key>SuppressBuildableAutocreation</key>
! <dict>
! ! <key>1D6058900D05DD3D006BFB54</key>
! ! <dict>
! ! ! <key>primary</key>
! ! ! <true/>
! ! </dict>
! </dict>
</dict>
</plist>
MyApp.xcscheme_^#shared#^_
Thursday, June 5, 14
Thursday, June 5, 14
.gitignore’d
Thursday, June 5, 14
xcshareddata
Thursday, June 5, 14
.xcschemes
Thursday, June 5, 14
xml
Thursday, June 5, 14
Don’t .gitignore
Thursday, June 5, 14
The Big Picture
Thursday, June 5, 14
Thursday, June 5, 14
.pbxproj: It’s just a plist
Thursday, June 5, 14
.xcworkspace: It’s XML
Thursday, June 5, 14
xcshareddata: Has plists
Thursday, June 5, 14
xcuserdata: Has plists
Thursday, June 5, 14
Thursday, June 5, 14
git
Thursday, June 5, 14
Merge Conflicts
Thursday, June 5, 14
project.pbxproj
Thursday, June 5, 14
1. Check the comments
Thursday, June 5, 14
2. Pick 1 UID
Thursday, June 5, 14
3. Rebase early and often
Thursday, June 5, 14

Más contenido relacionado

Similar a Mastering the Project File (AltConf)

Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Diego Freniche Brito
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without SwearingCreating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearingmartinwolak
 
Snp tables documentation
Snp tables documentationSnp tables documentation
Snp tables documentationMahesh Birajdar
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Diego Freniche Brito
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...Toshiaki Maki
 
Publishing a Perl6 Module
Publishing a Perl6 ModulePublishing a Perl6 Module
Publishing a Perl6 Moduleast_j
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKYoungHeon (Roy) Kim
 
Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2Jeff Potts
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programmingjoaopmaia
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Lar21
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Acquia
 
Get into the FLOW with Extbase
Get into the FLOW with ExtbaseGet into the FLOW with Extbase
Get into the FLOW with ExtbaseJochen Rau
 
"I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more."I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more.Fabio Milano
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Sarp Erdag
 
Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Daniel Ibrahim
 

Similar a Mastering the Project File (AltConf) (20)

Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without SwearingCreating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearing
 
Snp tables documentation
Snp tables documentationSnp tables documentation
Snp tables documentation
 
Weapons for Boilerplate Destruction
Weapons for Boilerplate DestructionWeapons for Boilerplate Destruction
Weapons for Boilerplate Destruction
 
appledoc_style
appledoc_styleappledoc_style
appledoc_style
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
 
Publishing a Perl6 Module
Publishing a Perl6 ModulePublishing a Perl6 Module
Publishing a Perl6 Module
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
 
Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programming
 
Oracle API Gateway Installation
Oracle API Gateway InstallationOracle API Gateway Installation
Oracle API Gateway Installation
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
 
Get into the FLOW with Extbase
Get into the FLOW with ExtbaseGet into the FLOW with Extbase
Get into the FLOW with Extbase
 
занятие8
занятие8занятие8
занятие8
 
"I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more."I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more.
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
 
Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5
 

Más de Michele Titolo

Writing Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesMichele Titolo
 
Beam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataMichele Titolo
 
APIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyMichele Titolo
 
Tackling the Big, Impossible Project
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible ProjectMichele Titolo
 
No Microservice is an Island
No Microservice is an IslandNo Microservice is an Island
No Microservice is an IslandMichele Titolo
 
From iOS to Distributed Systems
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed SystemsMichele Titolo
 
More than po: Debugging in LLDB
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDBMichele Titolo
 
APIs for the Mobile World
APIs for the Mobile WorldAPIs for the Mobile World
APIs for the Mobile WorldMichele Titolo
 
Swift Generics in Theory and Practice
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and PracticeMichele Titolo
 
Protocols promised-land-2
Protocols promised-land-2Protocols promised-land-2
Protocols promised-land-2Michele Titolo
 
Making friendly-microservices
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservicesMichele Titolo
 
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015Michele Titolo
 
More than `po`: Debugging in lldb
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldbMichele Titolo
 
Can't Handle My Scale v2
Can't Handle My Scale v2Can't Handle My Scale v2
Can't Handle My Scale v2Michele Titolo
 
Cocoa Design Patterns in Swift
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in SwiftMichele Titolo
 

Más de Michele Titolo (20)

Writing Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide Audiences
 
Beam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big Data
 
APIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The Ugly
 
Tackling the Big, Impossible Project
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible Project
 
No Microservice is an Island
No Microservice is an IslandNo Microservice is an Island
No Microservice is an Island
 
From iOS to Distributed Systems
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed Systems
 
More than po: Debugging in LLDB
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDB
 
APIs for the Mobile World
APIs for the Mobile WorldAPIs for the Mobile World
APIs for the Mobile World
 
Swift Generics in Theory and Practice
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and Practice
 
Protocols promised-land-2
Protocols promised-land-2Protocols promised-land-2
Protocols promised-land-2
 
Multitasking
MultitaskingMultitasking
Multitasking
 
Making friendly-microservices
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservices
 
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
 
The Worst Code
The Worst CodeThe Worst Code
The Worst Code
 
More than `po`: Debugging in lldb
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
 
Can't Handle My Scale v2
Can't Handle My Scale v2Can't Handle My Scale v2
Can't Handle My Scale v2
 
Can't Handle My Scale
Can't Handle My ScaleCan't Handle My Scale
Can't Handle My Scale
 
Cocoa Design Patterns in Swift
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in Swift
 
APIs: The Ugly
APIs: The UglyAPIs: The Ugly
APIs: The Ugly
 
That's Not My Code!
That's Not My Code!That's Not My Code!
That's Not My Code!
 

Último

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
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
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.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Último (20)

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
 
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 ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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 ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
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 ☂️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Mastering the Project File (AltConf)