Muutke küpsiste eelistusi

E-raamat: iOS 15 Programming Fundamentals with Swift

  • Formaat: 788 pages
  • Ilmumisaeg: 01-Oct-2021
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781098118471
Teised raamatud teemal:
  • Formaat - PDF+DRM
  • Hind: 47,96 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 788 pages
  • Ilmumisaeg: 01-Oct-2021
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781098118471
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode 13 IDE, Cocoa Touch, and the latest version of Apple's acclaimed programming language, Swift 5.5. With this thoroughly updated guide, you'll learn the Swift language, understand Apple's Xcode development tools, and discover the Cocoa framework.

  • Explore Swift's object-oriented concepts
  • Become familiar with built-in Swift types
  • Dive deep into Swift objects, protocols, and generics
  • Tour the life cycle of an Xcode project
  • Learn how nibs are loaded
  • Understand Cocoa's event-driven design
  • Communicate with C and Objective-C

In this edition, catch up on the latest iOS programming features:

  • Structured concurrency: async/await, tasks, and actors
  • Swift native formatters and attributed strings
  • Lazy locals and throwing getters
  • Enhanced collections with the Swift Algorithms and Collections packages
  • Xcode tweaks: column breakpoints, package collections, and Info.plist build settings
  • Improvements in Git integration, localization, unit testing, documentation, and distribution
  • And more!
Preface xv
Part I Language
1 The Architecture of Swift
3(22)
Ground of Being
3(1)
Everything Is an Object?
4(2)
Three Flavors of Object Type
6(1)
Variables
6(2)
Functions
8(1)
The Structure of a Swift File
9(3)
Scope and Lifetime
12(1)
Object Members
13(1)
Namespaces
13(1)
Modules
14(1)
Instances
15(2)
Why Instances?
17(2)
The Keyword self
19(1)
Privacy
20(2)
Design
22(3)
2 Functions
25(46)
Function Parameters and Return Value
25(5)
Void Return Type and Parameters
29(1)
Function Signature
30(1)
External Parameter Names
30(2)
Overloading
32(1)
Default Parameter Values
33(1)
Variadic Parameters
34(1)
Ignored Parameters
35(1)
Modifiable Parameters
36(4)
Calling Objective-C with Modifiable Parameters
37(1)
Called by Objective-C with Modifiable Parameters
38(1)
Reference Type Modifiable Parameters
39(1)
Function in Function
40(1)
Recursion
40(1)
Function as Value
41(3)
Anonymous Functions
44(6)
Using Anonymous Functions Inline
45(1)
Anonymous Function Abbreviated Syntax
46(4)
Define-and-Call
50(1)
Closures
51(11)
How Closures Improve Code
53(1)
Function Returning Function
54(3)
Closure Setting a Captured Variable
57(1)
Closure Preserving Captured Environment
58(1)
Escaping Closures
59(1)
Capture Lists
60(2)
Curried Functions
62(1)
Function References and Selectors
63(8)
Function Reference Scope
65(2)
Selectors
67(4)
3 Variables and Simple Types
71(54)
Variable Scope and Lifetime
71(2)
Variable Declaration
73(4)
Computed Variable Initialization
77(1)
Computed Variables
78(4)
Computed Properties
79(2)
Property Wrappers
81(1)
Setter Observers
82(1)
Lazy Initialization
83(2)
Singleton
84(1)
Lazy Initialization of Instance Properties
85(1)
Built-In Simple Types
85(40)
Bool
85(3)
Numbers
88(8)
String
96(6)
Character and String Index
102(4)
Range
106(2)
Tuple
108(3)
Optional
111(14)
4 Object Types
125(144)
Object Type Declarations and Features
125(17)
Initializers
127(6)
Properties
133(3)
Methods
136(3)
Subscripts
139(2)
Nested Object Types
141(1)
Enums
142(11)
Raw Values
143(2)
Associated Values
145(2)
Enum Case Iteration
147(1)
Enum Initializers
148(1)
Enum Properties
149(1)
Enum Methods
150(2)
Why Enums?
152(1)
Structs
153(3)
Struct Initializers
153(1)
Struct Properties
154(1)
Struct Methods
155(1)
Classes
156(22)
Value Types and Reference Types
157(5)
Subclass and Superclass
162(6)
Class Initializers
168(8)
Class Deinitializer
176(1)
Class Properties
176(1)
Static/Class Members
177(1)
Polymorphism
178(4)
Casting
182(5)
Casting Down
183(1)
Type Testing and Casting Down Safely
183(2)
Type Testing and Casting Optionals
185(1)
Bridging to Objective-C
186(1)
Type References
187(6)
From Instance to Type
187(1)
From self to Type
187(4)
Type as Value
191(1)
Summary of Type Terminology
192(1)
Comparing Types
192(1)
Protocols
193(12)
Why Protocols?
194(1)
Adopting a Library Protocol
195(2)
Protocol Type Testing and Casting
197(1)
Declaring a Protocol
197(1)
Protocol Composition
198(1)
Class Protocols
199(1)
Optional Protocol Members
200(2)
Implicitly Required Initializers
202(2)
Expressible by Literal
204(1)
Generics
205(15)
Generic Declarations
208(2)
Type Constraints
210(2)
Explicit Specialization
212(1)
Generic Types and Covariance
213(2)
Associated Type Chains
215(2)
Where Clauses
217(3)
Extensions
220(7)
Extending Protocols
222(3)
Extending Generics
225(2)
Umbrella Types
227(5)
Any
227(2)
AnyObject
229(2)
AnyClass
231(1)
Collection Types
232(37)
Array
232(19)
Dictionary
251(7)
Set
258(5)
OrderedSet and OrderedDictionary
263(6)
5 Flow Control and More
269(74)
Flow Control
269(36)
Branching
270(12)
Loops
282(6)
Jumping
288(17)
Privacy
305(4)
Private and Fileprivate
306(2)
Public and Open
308(1)
Privacy Rules
309(1)
Introspection
309(1)
Operators
310(3)
Memory Management
313(10)
Memory Management of Reference Types
314(7)
Exclusive Access to Value Types
321(2)
Miscellaneous Swift Language Features
323(20)
Synthesized Protocol Implementations
323(3)
Key Paths
326(3)
Instance as Function
329(1)
Dynamic Membership
330(2)
Property Wrappers
332(5)
Custom String Interpolation
337(2)
Reverse Generics
339(2)
Result Builders
341(1)
Result
341(2)
6 Structured Concurrency
343(52)
Multithreading
344(9)
The Main Thread
344(1)
Background Threads
345(2)
Asynchronous Code
347(6)
Structured Concurrency Syntax
353(3)
async/await
354(1)
Async Contexts
355(1)
Tasks
356(1)
Wrapping a Completion Handler
357(4)
Multiple Concurrent Tasks
361(6)
async let
362(1)
Task Groups
363(4)
Asynchronous Sequences
367(3)
Built-in Asynchronous Sequences
368(1)
Making an Asynchronous Sequence
369(1)
Asynchronous Sequence Methods
370(1)
Actors
370(4)
Actor Isolation
371(1)
Actor Serialization
372(1)
The Main Actor
372(2)
Context Switching
374(3)
Implicit Context Switching
374(1)
Explicit Context Switching
375(2)
More About Tasks
377(9)
Task Priority
377(1)
The Current Task
378(1)
Sleeping
378(1)
Yielding
379(1)
Cancellation
380(6)
More About Actors
386(4)
Reentrancy
386(1)
The Keyword nonisolated
387(1)
The Keyword isolated
388(1)
Global Actors
389(1)
Sendable
390(5)
Part II IDE
7 Anatomy of an Xcode Project
395(42)
New Project
395(2)
The Project Window
397(11)
The Navigator Pane
399(5)
The Inspector Pane
404(1)
The Editor
405(3)
Project File and Dependents
408(3)
Contents of the Project Folder
409(1)
Groups
410(1)
The Target
411(7)
Build Phases
411(2)
Build Settings
413(1)
Configurations
414(2)
Schemes and Destinations
416(2)
From Project to Built App
418(11)
Build Settings
420(1)
Property List Settings
420(1)
Nib Files
421(1)
Resources
421(2)
Code Files
423(1)
Frameworks and SDKs
424(1)
Swift Packages
425(4)
The App Launch Process
429(5)
The Entry Point
429(2)
How an App Gets Going
431(2)
App Without a Storyboard
433(1)
Renaming Parts of a Project
434(3)
8 Nib Files
437(34)
The Nib Editor Interface
438(6)
Document Outline
439(3)
Canvas
442(1)
Inspectors
443(1)
Loading a Nib
444(4)
Loading a View Controller Nib
445(1)
Loading a Main View Nib
446(1)
Loading a View Nib Manually
447(1)
Connections
448(18)
Outlets
449(1)
The Nib Owner
450(4)
Automatically Configured Nibs
454(1)
Misconfigured Outlets
455(2)
Deleting an Outlet
457(1)
More Ways to Create Outlets
457(3)
Outlet Collections
460(1)
Action Connections
461(2)
More Ways to Create Actions
463(1)
Misconfigured Actions
464(1)
Connections Between Nibs - Not!
465(1)
Additional Configuration of Nib-Based Instances
466(5)
9 Documentation
471(16)
The Documentation Window
471(2)
Class Documentation Pages
473(3)
Quick Help
476(3)
Documenting Frameworks and Packages
479(3)
Symbol Declarations
482(1)
Header Files
483(1)
Sample Code
484(1)
Internet Resources
484(3)
10 Life Cycle of a Project
487(84)
Environmental Dependencies
487(8)
Conditional Compilation
488(1)
Build Action
489(1)
Permissible Runtime Environment
490(1)
Backward Compatibility
491(1)
Device Type
492(2)
Arguments and Environment Variables
494(1)
Version Control
495(3)
Editing and Navigating Your Code
498(12)
Text Editing Preferences
499(1)
Multiple Selection
500(1)
Code Completion and Placeholders
501(1)
Snippets
502(1)
Refactoring and Code Actions
503(2)
Fix-it and Live Syntax Checking
505(1)
Navigation
506(3)
Finding
509(1)
Running in the Simulator
510(2)
Debugging
512(12)
Caveman Debugging
512(4)
The Xcode Debugger
516(8)
Testing
524(12)
Unit Tests
527(4)
Interface Tests
531(2)
Test Plans
533(2)
Massaging the Report
535(1)
Clean
536(1)
Running on a Device
537(6)
Obtaining a Developer Program Membership
537(1)
Signing an App
538(1)
Automatic Signing
539(2)
Manual Signing
541(1)
Running the App
542(1)
Managing Development Certificates and Devices
543(1)
Profiling
543(5)
Gauges
544(1)
Memory Debugging
544(2)
Instruments
546(2)
Localization
548(6)
Creating Localized Content
548(5)
Testing Localization
553(1)
Distribution
554(17)
Making an Archive
555(1)
The Distribution Certificate
556(1)
The Distribution Profile
557(1)
Distribution for Testing
558(2)
Final App Preparations
560(2)
Screenshots and Video Previews
562(1)
Property List Settings
563(2)
Submission to the App Store
565(6)
Part III Cocoa
11 Cocoa Classes
571(48)
Subclassing
571(3)
Categories and Extensions
574(2)
How Swift Uses Extensions
574(1)
How You Use Extensions
574(1)
How Cocoa Uses Categories
575(1)
Protocols
576(4)
Optional Members
577(3)
Informal Protocols
580(1)
Some Foundation Classes
580(29)
NSRange
581(2)
NSNotFound
583(1)
NSString and Friends
584(3)
NSDate and Friends
587(3)
NSNumber
590(2)
NSValue
592(1)
NSData
593(1)
NSMeasurement and Friends
594(1)
Equality, Hashability, and Comparison
595(3)
NSArray and NSMutableArray
598(2)
NSDictionary and NSMutableDictionary
600(1)
NSSet and Friends
601(1)
NSI ndexS et
602(1)
NSNull
603(1)
Immutable and Mutable
603(1)
Property Lists
604(1)
Codable
605(4)
Accessors, Properties, and Key-Value Coding
609(7)
Swift Accessors
610(1)
Key-Value Coding
611(1)
How Outlets Work
612(1)
Cocoa Key Paths
613(1)
Uses of Key-Value Coding
614(1)
KeyPath Notation
615(1)
The Secret Life of NSObject
616(3)
12 Cocoa Events
619(34)
Reasons for Events
619(1)
Subclassing
620(1)
Notifications
621(10)
Receiving a Notification
623(2)
Unregistering
625(1)
Subscribing to a Notification
626(2)
Posting a Notification
628(1)
Timer
629(2)
Delegation
631(4)
Cocoa Delegation
632(1)
Implementing Delegation
633(2)
Data Sources
635(1)
Actions
636(6)
The Responder Chain
639(1)
Nil-Targeted Actions
640(2)
Key-Value Observing
642(5)
Registration and Notification
643(1)
Unregistering
644(1)
Key-Value Observing Example
645(2)
Swamped by Events
647(2)
Delayed Performance
649(4)
13 Memory Management
653(20)
Principles of Cocoa Memory Management
653(1)
Rules of Cocoa Memory Management
654(1)
What ARC Is and What It Does
655(1)
How Cocoa Objects Manage Memory
656(1)
Autorelease Pool
657(2)
Memory Management of Instance Properties
659(1)
Retain Cycles and Weak References
660(2)
Unusual Memory Management Situations
662(4)
Notification Observers
663(1)
KVO Observers
664(1)
Timers
665(1)
Other Unusual Situations
666(1)
Memory Management of CFTypeRefs
666(2)
Property Memory Management Policies
668(3)
Debugging Memory Management Mistakes
671(2)
14 Communication Between Objects
673(28)
Visibility Through an Instance Property
673(1)
Visibility by Instantiation
674(2)
Getting a Reference
676(3)
Visibility by Relationship
677(1)
Global Visibility
677(2)
Notifications and Key-Value Observing
679(1)
The Combine Framework
680(7)
Alternative Architectures
687(3)
Model-View-Controller
687(1)
Router and Data Space
687(1)
Model-View-Presenter
688(1)
Protocols and Reactive Programming
689(1)
SwiftUI
690(11)
Result Builders and Modifiers
691(1)
State Properties
692(2)
Bindings
694(1)
Passing Data Downhill
694(2)
Passing Data Uphill
696(1)
Custom State Objects
697(4)
Appendix. C, Objective-C, and Swift 701(38)
Index 739