Home / IT Books / Book Reviews – iOS 8 Programming Fundamentals with Swift

Book Reviews – iOS 8 Programming Fundamentals with Swift

Book Reviews - iOS 8 Programming Fundamentals with Swift

Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode IDE, the Cocoa Touch framework, and Swift Apple’s new programming language. With this thoroughly updated guide, you’ll learn Swift’s object-oriented concepts, understand how to use Apple’s development tools, and discover how Cocoa provides the underlying functionality iOS apps need to have.

  • Explore Swift’s object-oriented concepts: variables and functions, scopes and namespaces, object types and instances
  • Become familiar with built-in Swift types such as numbers, strings, ranges, tuples, Optionals, arrays, and dictionaries
  • Learn how to declare, instantiate, and customize Swift object types enums, structs, and classes
  • Discover powerful Swift features such as protocols and generics
  • Tour the lifecycle of an Xcode project from inception to App Store
  • Create app interfaces with nibs and the nib editor, Interface Builder
  • Understand Cocoa’s event-driven model and its major design patterns and features
  • Find out how Swift communicates with Cocoa’s C and Objective-C APIs

Once you master the fundamentals, you’ll be ready to tackle the details of iOS app development with author Matt Neuburg’s companion guide, Programming iOS 8.

Part I. Language
1. The Architecture of Swift
Ground of Being
Everything Is an Object?
Three Flavors of Object Type
Variables
Functions
The Structure of a Swift File
Scope and Lifetime
Object Members
Namespaces
Modules
Instances
Why Instances?
self
Privacy
Design
Object Types and APIs
Instance Creation, Scope, and Lifetime
Summary and Conclusion
2. Functions
Function Parameters and Return Value
Void Return Type and Parameters
As Value
Anonymous Functions
Define-and-Call
Closures
How Closures Improve Code
Function Returning Function
Closure Setting a Captured Variable
Closure Preserving Its Captured Environment
Curried Functions
3. Variables and Simple Types
Variable Scope and Lifetime
Variable Declaration
Computed Initializer
Computed Variables
Setter Observers
Lazy Initialization
Built-In Simple Types
Bool
Numbers
String
Character
Range
Tuple
Optional
4. Object Types
Object Type Declarations and Features
Initializers
Properties
Methods
Subscripts
Namespaced Object Types
Instance References
Enums
Case With Fixed Value
Case With Typed Value
Enum Initializers
Enum Properties
Enum Methods
Why Enums?
Structs
Struct Initializers, Properties, and Methods
Struct As Namespace
Classes
Value Types and Reference Types
Subclass and Superclass
Class Initializers
Class Deinitializer
Class Properties and Methods
Polymorphism
Casting
Type Reference
Protocols
Why Protocols?
Protocol Type Testing and Casting
Declaring a Protocol
Optional Protocol Members
Class Protocol
Implicitly Required Initializers
Literal Convertibles
Generics
Generic Declarations
Type Constraints
Explicit Specialization
Where Clauses
Extensions
Umbrella Types
AnyObject
AnyClass
Any
Collection Types
Array
Dictionary
Set
5. Flow Control and More
Flow Control
Branching
Loops
Jumping
Aborting
Operators
Privacy
Private Declaration
Public Declaration
Privacy Rules
Introspection
Memory Management
Weak References
Unowned References
Weak and Unowned References in Anonymous Functions
Memory Management of Protocol-Typed References
Part II. IDE
6. Anatomy of an Xcode Project
New Project
The Project Window
The Navigator Pane
The Utilities Pane
The Editor
The Project File and Its Dependents
The Target
Build Phases
Build Settings
Configurations
Schemes and Destinations
From Project to Running App
Build Settings
Property List Settings
Nib Files
Additional Resources
Code Files and the App Launch Process
Frameworks and SDKs
Renaming Parts of a Project
Bilingual Targets
7. Nib Management
A Tour of the Nib Editor Interface
The Document Outline
Canvas
Inspectors and Libraries
Nib Loading
When Nibs Are Loaded
Manual Nib Loading
Connections
Outlets
The Nib Owner
Automatically Configured Nibs
Misconfigured Outlets
Deleting an Outlet
More Ways to Create Outlets
Outlet Collections
Action Connections
More Ways to Create Actions
Misconfigured Actions
Connections Between Nibs — Not!
Additional Configuration of Nib-Based Instances
8. Documentation
The Documentation Window
Class Documentation Pages
Sample Code
Quick Help
Symbols
Header Files
Internet Resources
9. Life Cycle of a Project
Device Architecture and Conditional Code
Backward Compatibility
Device Type
Version Control
Editing and Navigating Your Code
Autocompletion
Snippets
Fix-it and Live Syntax Checking
Navigation
Finding
Running in the Simulator
Debugging
Caveman Debugging
The Xcode Debugger
Unit Testing
Clean
Running on a Device
Obtaining a Certificate
Obtaining a Development Provisioning Profile
Running the App
Profile and Device Management
Profiling
Gauges
Instruments
Localization
Localizing the Info.plist
Localizing a Nib File
Localizing Code Strings
Localizing With XML Files
Archiving and Distribution
Ad Hoc Distribution
Final App Preparations
Icons in the App
Other Icons
Launch Images
Screenshots and Video Previews
Property List Settings
Submission to the App Store
Part III. Cocoa
10. Cocoa Classes
Subclassing
Categories and Extensions
How Swift Uses Extensions
How You Use Extensions
How Cocoa Uses Categories
Protocols
Informal Protocols
Optional Methods
Some Foundation Classes
Useful Structs and Constants
NSString and Friends
NSDate and Friends
NSNumber
NSValue
NSData
Equality and Comparison
NSIndexSet
NSArray and NSMutableArray
NSDictionary and NSMutableDictionary
NSSet and Friends
NSNull
Immutable and Mutable
Property Lists
Accessors, Properties, and Key–Value Coding
Swift Accessors
Key–Value Coding
Uses of Key–Value Coding
KVC and Outlets
Key Paths
Array Accessors
The Secret Life of NSObject
11. Cocoa Events
Reasons for Events
Subclassing
Notifications
Receiving a Notification
Unregistering
Posting a Notification
NSTimer
Delegation
Cocoa Delegation
Implementing Delegation
Data Sources
Actions
The Responder Chain
Deferring Responsibility
Nil-Targeted Actions
Key–Value Observing
Swamped by Events
Delayed Performance
12. Memory Management
Principles of Cocoa Memory Management
Rules of Cocoa Memory Management
What ARC Is and What It Does
How Cocoa Objects Manage Memory
Autorelease Pool
Memory Management of Instance Properties
Retain Cycles and Weak References
Unusual Memory Management Situations
Nib Loading and Memory Management
Memory Management of CFTypeRefs
Property Memory Management Policies
Debugging Memory Management Mistakes
13. Communication Between Objects
Visibility by Instantiation
Visibility by Relationship
Global Visibility
Notifications and KVO
Model–View–Controller 515

Book Reviews – iOS 8 Programming Fundamentals with Swift


Top books

About huydam

Check Also

[UWP] The program could not build Windows Universal Samples

If you get this error like this: “Type universe cannot resolve assembly: System.Runtime, Version=4.0.0.0, Culture=neutral, …

Leave a Reply

Your email address will not be published. Required fields are marked *