Muutke küpsiste eelistusi

Xcode 6 Start to Finish: iOS and OS X Development 2nd edition [Pehme köide]

  • Formaat: Paperback / softback, 656 pages, kõrgus x laius x paksus: 229x179x34 mm, kaal: 986 g
  • Ilmumisaeg: 21-May-2015
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 0134052773
  • ISBN-13: 9780134052779
  • Pehme köide
  • Hind: 47,79 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 656 pages, kõrgus x laius x paksus: 229x179x34 mm, kaal: 986 g
  • Ilmumisaeg: 21-May-2015
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 0134052773
  • ISBN-13: 9780134052779

Use Xcode 6 to Craft Outstanding iOS and OS X Apps!

Xcode 6 Start to Finish will help you use Apple’s Xcode 6 tools to improve productivity, write great code, and leverage the newest iOS 8 and OS X Yosemite features, including Apple’s new Swift programming language.

Drawing on more than thirty years of experience developing for Apple platforms, and helping others do so, Fritz Anderson presents a complete best-practice workflow that reflects Xcode’s latest innovations. Through three full, sample projects, you’ll learn to integrate testing, source control, and other key skills into a high-efficiency process that works. And all sample code has been completely written in Swift, with figures and descriptions that reflect Xcode’s radically new interface.

This is the only Xcode 6 book focused on deep mastery of the tools you’ll be living with every day. Anderson reveals better ways to storyboard, instrument, build, and compile code, and helps you apply new features, ranging from Interface Builder Live Rendering to View Debugging and XCTest Performance Testing. By the time you’re finished, you’ll have all the Xcode 6 skills you need in order to develop truly exceptional software.

Coverage includes

  • Working with iOS-side dynamic frameworks and iOS/OS X extension modules
  • Streamlining Model, View, and Controller development with Swift
  • Rewriting Objective-C functions in Swift
  • Efficiently managing layouts and view hierarchies with size classes
  • Inspecting and fixing interface issues with the new View Debugger
  • Displaying and configuring custom views within Interface Builder via Live Rendering
  • Benchmarking performance within the Xcode 6 unit test framework
  • Leveraging Xcode 6 automated tools to simplify localization
  • Creating new extensions to inject services and UI into other applications
  • Mastering new Swift debugging techniques

Register your book at informit.com/register for access to this title’s downloadable code.

Acknowledgments xxiii
About the Author xxv
Introduction 1(6)
How This Book Is Organized
1(3)
About Versions
4(1)
About the Code
4(1)
Conventions
5(2)
I First Steps 7(98)
1 Getting Xcode
9(8)
Before You Begin
9(1)
Installing Xcode
10(1)
Command-Line Tools
11(1)
Removing Xcode
11(1)
Apple Developer Programs
12(1)
Downloading Xcode
13(1)
Additional Downloads
14(1)
Summary
15(2)
2 Kicking the Tires
17(8)
Starting Xcode
17(2)
Hello World
19(5)
A New Project
19(3)
Quieting Xcode Down
22(1)
Building and Running
22(2)
The Real Thing
24(1)
Getting Rid of It
24(1)
Summary
24(1)
3 Simple Workflow and Passive Debugging
25(10)
Creating the Project
25(4)
Building
29(1)
Running
30(2)
Simple Debugging
32(2)
Summary
34(1)
4 Active Debugging
35(10)
A Simple Test Case
35(1)
Going Active
35(4)
Setting a Breakpoint
36(1)
The Variables Pane
37(1)
Stepping Through
37(2)
Fixing the Problem
39(4)
Behaviors
40(2)
The Fix
42(1)
Summary
43(2)
5 Compilation
45(24)
Compiling
45(7)
Dynamic Loading
52(1)
Xcode and Clang
52(5)
Local Analysis
53(2)
Cross-Function Analysis
55(1)
Indexing
56(1)
Swift
57(5)
Compiler Products
62(4)
Intermediate Products
62(2)
Precompilation
64(2)
Summary
66(3)
6 Adding a Library Target
69(10)
Adding a Target
69(2)
Targets
70(1)
Target Membership
71(3)
Adding Files to a Target
71(3)
Headers in Targets
74(1)
A Dependent Target
74(3)
Adding a Library
75(1)
Debugging a Dependent Target
76(1)
Summary
77(2)
7 Version Control
79(26)
Taking Control
80(2)
Creating a Git Repository by Hand
81(1)
The State of Your Files
82(2)
How Xcode Works with Git
83(1)
Your First Commit
84(1)
Working with Remote Repositories
84(5)
Setting Up a "Remote"-Locally
87(1)
Pushing to the Remote
88(1)
Merges and Conflicts
89(10)
User A
90(3)
User B
93(3)
Back to User A
96(3)
The Version Editor
99(3)
Comparison
99(2)
Blame
101(1)
Log
101(1)
Branching
102(2)
Summary
104(1)
II The Life Cycle of an iOS Application 105(214)
8 Starting an iOS Application
107(10)
Planning the App
107(3)
Model-View-Controller
107(1)
The Model
108(1)
The Views
108(2)
The Controllers
110(1)
Starting a New iOS Project
110(2)
Target Editor
111(1)
What's in the Project
112(2)
Summary
114(3)
9 An IOS Application: Model
117(24)
Implementing the Model
117(6)
Entities
118(1)
Attributes
118(2)
Relationships
120(3)
Managed-Object Classes
123(5)
Creating the Classes-the Wrong Way
124(1)
Why Doing It Xcode's Way Is a Mistake
125(1)
The Right Way-mogenera tor
126(2)
Preparation
128(4)
Utilities
129(1)
Extensions
129(2)
passer_rating
131(1)
Specializing the Core Data Classes
132(7)
Putting Game to Work
132(1)
Putting Passer to Work
133(1)
Some Test Data
134(2)
Source Control and Product Files
136(3)
Making the Model Easier to Debug
139(1)
Summary
139(2)
10 An MS Application: Controller
141(16)
Renaming Symbols in Objective-C
141(3)
Refactoring the Name of an Objective-C Method
142(1)
Refactoring a Class Name
142(2)
Renaming a Class in Swift
144(1)
Editing the View Controller
144(4)
The Table View
145(1)
Setting Up the Passer List
146(1)
Creating a New Pacspr
147(1)
Live Issues and Fix-it
148(1)
The Real Passer Rating
149(6)
Another Bug
149(5)
Running Passer Rating
154(1)
Summary
155(2)
11 Building a New View
157(28)
The Next View Controller
157(4)
If You Want to Add a View Controller
157(1)
Storyboards, Scenes, and Segues
158(3)
Building a View
161(13)
Outlets and Assistants, in Passing
162(2)
The Billboard View
164(2)
Linking Views to a View Controller
166(1)
Auto Layout for the Nonce
167(2)
Lots of Labels
169(2)
Cleaning Up
171(3)
The Table View
174(1)
Outlets
175(8)
Hooking Up the Outlets
177(1)
Checking Connections
177(1)
Connecting GameListController
178(2)
Code Completion and Snippets
180(1)
Code Snippets
181(2)
Testing the Billboard View
183(1)
Summary
184(1)
12 Auto Layout In a New View
185(22)
Why Auto Layout?
185(1)
Limitations of Autoresizing
185(1)
Auto Layout
186(1)
The Thing to Remember
186(1)
The Player Billboard, Revisited
186(2)
Why You Should Do More
187(1)
Factoring Layout into Subviews
188(9)
The Playground
189(2)
StatView
191(5)
Installing StatView
196(1)
Planning Constraints
197(3)
Two Line Counts, Two Labels
200(2)
Constraints for Real
202(3)
Default (Any/Any)
202(1)
Any Height (not Compact)
203(1)
Landscape (wAny/hCompact)
203(1)
Chasing Issues
203(1)
A Tweak
204(1)
Summary
205(2)
13 Adding Table Cells
207(20)
The Game Table
207(4)
Outlets in the Table View
207(1)
Adding Required Protocol Methods
208(2)
Adding Model-to-View Support
210(1)
A Prototype Cell
211(1)
The Game Table: First Run
211(3)
A Custom Table Cell
214(3)
Adding Some Graphics
217(8)
A Cell with an Image in It
217(1)
Hooking the Image View to the Images
218(1)
The Assets Catalog
219(1)
Adding Images to the Assets Catalog
220(1)
Icons and Launch Displays
221(4)
Summary
225(2)
14 Adding an Editor
227(16)
The Plan
227(1)
Adding a Modal Scene
227(6)
An Embedded View Controller
229(2)
Linking the Editor to the Passer List
231(1)
Static Table Cells
232(1)
The Editor View Controllers
233(1)
The Editor Table
233(6)
Passing the Data to the Editor
235(2)
Getting the Data Back
237(2)
Segues
239(1)
Summary
240(3)
15 Unit Testing
243(22)
The Test Navigator
244(2)
Testing the CSV Reader
246(8)
The CSV Test Code
247(5)
Test Data
252(1)
Running the Tests
252(2)
Testing and the Debugger
254(2)
Adding a Test Class
256(4)
Asynchronous Tests
260(1)
Testing Asynchronous Code
260(1)
Documentation of Last Resort
261(1)
XCTest Assertions
261(3)
Simple Tests
262(1)
Equality
262(1)
Exceptions
263(1)
Summary
264(1)
16 Measurement and Analysis
265(14)
Speed
265(11)
The Debug Navigator
266(2)
Instruments
268(8)
XCTest and Performance
276(1)
Memory
277(1)
Summary
278(1)
17 An 106 Extension
279(18)
Adding the Today Target
280(1)
Designing the Widget
281(4)
Data Access
282(3)
A Shared Library in a Framework
285(5)
The Today Extension
290(4)
Build Dependencies
294(1)
The Result
295(1)
Summary
296(1)
18 Provisioning
297(22)
Apple Developer Programs
297(2)
General (App Store) Program
298(1)
Enterprise Program
298(1)
Provisioning for iOS
299(7)
What You'll See
300(1)
Registering Your App
300(3)
Protecting Your AssPts
303(1)
Prerelease Distributions
304(2)
The Capabilities Editor
306(2)
OS X-only Capability
306(1)
Capabilities for Both iOS and OS X
306(1)
iOS Capabilities
307(1)
OS X Sandboxing
308(3)
Why Sandbox?
310(1)
Why Not Sandbox?
310(1)
Gatekeeper and Developer ID
311(3)
Getting a Developer ID
311(1)
Using Developer ID
312(1)
Limitations
313(1)
Distribution Builds
314(4)
Basic Build Settings
314(1)
Adjusting the Build Settings
315(2)
The Build
317(1)
Summary
318(1)
III Xcode for Mac OS X 319(114)
19 Starting an OS X Application
321(22)
The Goal
321(1)
Getting Started
322(3)
Model
325(5)
Porting from iOS
326(1)
Adding an Entity
326(4)
Wiring a Menu
330(11)
Target/Action
331(1)
First Responder
332(1)
Loading Data into LeagueDocument
333(1)
Adapting to a Managed Document
334(1)
Testing the Command
335(1)
Identifying a Type for League Data
336(2)
Specifying How the App Handles League Files
338(1)
Application and Document Icons
339(2)
Summary
341(2)
20 Bindings: Wiring an OS X Application
343(30)
Storyboard Segues in OS X
343(2)
Building the Document Window
345(5)
Loading the Window
345(2)
A Table View
347(3)
Filling the Table-Bindings
350(7)
Object Controllers
352(2)
Binding the Table to the Teams
354(1)
Binding the Columns to Team Properties
355(2)
The Arc of League Document Data
357(14)
From League Table to Source List
357(2)
Capturing the Team Selection
359(2)
From Team to Tables
361(2)
The Passer Section
363(8)
Summary
371(2)
21 Localization
373(28)
How Localization Works
373(1)
Adding a Localization
374(2)
Base Localization
374(1)
Why Base Localization?
375(1)
Something Worth Localizing
376(6)
Game Detail View: Layout
376(2)
Game Detail View: Code
378(4)
Modules and Namespaces
382(1)
Localizing for French
382(16)
Adding a Locale
383(2)
Starting Simple: Credits.rtf
385(4)
Localizing Main.storyboard
389(3)
Localizing Resources
392(2)
Localizing Program Strings
394(1)
genstrings
395(1)
xliff Files
396(1)
The Rest
397(1)
Localizing System Strings
398(2)
Summary
400(1)
22 Bundles and Packages
401(16)
A Simple Package: RTFD
401(2)
Bundles
403(1)
Application Bundles
403(2)
The Info.plist File
405(1)
Localizing Info.plist
406(1)
Info.plist Keys for Applications
406(9)
Keys for Both iOS and OS X
406(3)
Keys for OS X
409(3)
Keys for iOS
412(3)
Summary
415(2)
23 Property Lists
417(16)
Property List Data Types
417(2)
Editing Property Lists
419(10)
The Property List Editor
422(5)
Why Not the Property List Editor?
427(2)
Other Formats
429(2)
Text Property Lists
429(1)
Binary Property Lists
430(1)
JSON
430(1)
Specialized Property Lists
431(1)
Summary
432(1)
IV Xcode Tasks 433(114)
24 Documentation in Xcode
435(24)
Quick Help
435(2)
Inspector
435(1)
Popover
436(1)
Open Quickly
437(1)
Help
438(1)
The Documentation Window
439(5)
The Navigator Sidebar
439(1)
The Table of Contents Sidebar
440(1)
Class Info
440(1)
Searching and Navigation
440(4)
Keeping Current
444(2)
Your Own Quick Help
446(10)
C-Family Documentation
446(3)
Doxygen
449(5)
Running Doxygen
454(1)
Installing a Docset
455(1)
Swift and reStructuredText
456(2)
Summary
458(1)
25 The Xcode Build System
459(30)
How Xcode Structures a Build
459(3)
Build Variables
462(1)
Settings Hierarchy
463(2)
Levels
464(1)
Editing Build Variables
465(1)
Configurations
466(2)
Adjusting Configurations
466(2)
Configuration Files
468(3)
Creating a Configuration File
468(1)
SDK- and Architecture-Specific Settings
469(1)
Preprocessing xcconfig Files
470(1)
Command-Line Tools
471(3)
xcodebuild
471(1)
xcode-select
472(1)
xcrun
473(1)
Custom Build Rules
474(2)
Builds in the Report Navigator
476(1)
A Simple Build Transcript
476(11)
Summary
487(2)
26 Instruments
489(26)
What Instruments Is
489(1)
Running Instruments
490(2)
The Trace Document Window
492(8)
Toolbar
492(2)
Track Area
494(1)
Detail Area
495(1)
Extended Detail Area
495(4)
Library
499(1)
Tracing
500(4)
Recording
500(3)
Saving and Reopen
503(1)
Tracing without Instruments
504(1)
The Instruments
504(7)
Behavior
504(1)
Core Data
505(1)
Dispatch
505(1)
Filesystem
505(1)
Graphics
506(1)
Input/Output
506(1)
Master Tracks
506(1)
Memory
506(1)
System
507(2)
System-iOS Energy Instruments
509(1)
Threads/Locks
509(1)
Trace
509(1)
UI Automation
510(1)
User Interface
510(1)
Custom Instruments
511(1)
The Templates
512(2)
All Platforms
513(1)
iOS Only
513(1)
Mac Only
513(1)
Summary
514(1)
27 Debugging
515(16)
Scheme Options
515(3)
Info
515(1)
Arguments
516(1)
Options
516(2)
Diagnostics
518(1)
Doing More with Breakpoints
518(3)
View Hierarchy
521(2)
The lldb Command Line
523(2)
Tips
525(3)
Summary
528(3)
28 Snippets
531(16)
Tricks
531(10)
General
531(4)
Code-Folding Ribbon
535(1)
The Assistant Editor
536(2)
Instruments and Debugging
538(1)
Building
539(2)
Traps
541(6)
V Appendixes 547(32)
A Some Build Variables
549(16)
Useful Build Variables
550(12)
Environment
551(1)
Code Signing
552(1)
Locations
553(3)
Compiler Settings
556(3)
Other Tools
559(1)
Info.plist
559(2)
Search Paths
561(1)
The DEVELOPER_Variables
561(1)
Source Trees
562(3)
B Resources
565(14)
Books
565(1)
Books about Swift
566(1)
On the Net
567(3)
Forums
567(1)
Mailing Lists
568(1)
Developer Technical Support
568(1)
Sites and Blogs
569(1)
Face to Face
570(1)
Meetings
570(1)
Classes
570(1)
Other Software
570(9)
Text Editors
571(1)
Helpers
572(2)
Package Managers
574(1)
Version Control
575(1)
AppCode
576(1)
Alternatives to Cocoa
576(3)
Index 579
Fritz Anderson has been writing software, books, and articles for and about Apple platforms since 1984. He has worked for research and development firms, consulting practices, and as a freelancer. He is now an iOS and Mac programmer for the University of Chicagos Scholarly Technology department.