Swift in 24 Hours, Sams Teach Yourself by B. J. Miller
In just 24 lessons of one hour or less, Sams Teach Yourself Swift in 24 Hours helps you build next-generation OS X and iOS apps with Apple's new Swift programming language.
This book's straightforward, step-by-step approach helps you quickly master Swift's core concepts, structure, and syntax and use Swift to write safe, powerful, modern code. In just a few hours you'll be applying advanced features such as extensions, closures, protocols, and generics. Every lesson builds on what you've already learned, giving you a rock-solid foundation for real-world success.
Step-by-step instructions carefully walk you through the most common Swift development tasks. Practical, hands-on examples show you how to apply what you learn. Quizzes and exercises help you test your knowledge and stretch your skills. Notes and tips point out shortcuts and solutions.
Learn how to...
Set up your Swift development environment
Master Swift's fundamental data types and operators
Make the most of arrays and dictionaries
Control program flow, modify execution paths, and iterate code
Perform complex actions with functions
Work with higher-order functions and closures
Harness the power of structs, enums, classes, and class inheritance
Customize initializers of classes, structs, and enums
Implement instance methods, type methods, and advanced type functionality
Take full advantage of Swift's advanced memory allocation
Extend type functionality with protocols and extensions
Leverage the power of generics, chaining, and other advanced features
Interoperate with Objective-C code
Interact with user interfaces
Take advantage of Swift's Standard Library features and functions
Who Should Read this Book
Beginner-intermediate level programmers
Advanced programmers who are not yet familiar with Swift can benefit
Why buy from World of Books
Our excellent value books literally don't cost the earth
BJ Miller is an iOS developer for a consultancy in the Cleveland, Ohio, area. BJ earned his B.S. in Computer Science from Baldwin-Wallace College (now called Baldwin-Wallace University) in Berea, Ohio, the town where he grew up. His latest career path encompasses large-scale enterprise network administration, SQL database administration, and Microsoft SharePoint Server and Microsoft Project Server administration and integration as a contractor for the United States Department of Defense, with all the Microsoft certifications that come along with that. Before that, he spent several years in LAN engineering, designing and implementing network infrastructure, as a Cisco Certified Network Associate.
BJ began iOS development in 2009 after not having programmed for a few years, and he developed a passion for the platform and the Objective-C language. Now, his love has expanded to include Swift, and there is still yet room in his heart for more. In 2013 he released his first app into the iOS App Store, called MyPrayerMap, as a simple tool for managing prayer requests.
When he is not writing in Objective-C or Swift for either work or this book, he enjoys spending time with his wife and two boys, reading, listening to music or podcasts, and playing The Legend of Zelda (any game on any system will do). He also co-organizes the Cleveland CocoaHeads Meetup with Daniel Steinberg, http://www.meetup.com/Cleveland-CocoaHeads/, and organizes a submeetup of that group called Paired Programming Fun, which is a casual meetup where the focus is on Test-Driven Development (TDD) in Swift and Objective-C in paired-programming style. BJ often presents iOS-related topics at CocoaHeads and also speaks at other conferences such as CocoaConf (Columbus, Ohio) and CodeMash v126.96.36.199. He also blogs from time to time at http://bjmiller.me and is on Twitter as @bjmillerltd.
Table of Contents
Introduction xv HOUR 1: Introducing the Swift Development Environment 1 What Is Swift? 2 Getting Started 2 Summary 9 Q&A 10 Workshop 10 Exercise 11 HOUR 2: Learning Swift's Fundamental Data Types 13 Constants in Swift 13 Variables in Swift 14 Introducing Data Types 15 Summary 23 Q&A 24 Workshop 24 Exercise 25 HOUR 3: Using Operators in Swift 27 Unary Operators 27 Binary Operators 29 Ternary Conditional Operators 35 Summary 35 Q&A 36 Workshop 36 Exercise 37 HOUR 4: Working with Collection Types 39 Arrays 39 Dictionaries 46 Tuples 50 Summary 51 Q&A 51 Workshop 52 Exercise 52 HOUR 5: Understanding Optional Values 53 What Are Optional Values? 53 How to Designate a Variable as Optional 54 Wrapping and Unwrapping Optional Variables 54 Use Case for Optionals 58 Summary 61 Q&A 62 Workshop 62 Exercise 63 HOUR 6: Controlling Program Flow with Conditionals 65 The if Statement 65 The switch Statement 70 Summary 77 Q&A 78 Workshop 78 Exercise 80 HOUR 7: Iterating Code with Loops 81 Two Categories of Loops 81 Transferring Control in Loops 93 Summary 95 Q&A 95 Workshop 96 Exercise 97 HOUR 8: Using Functions to Perform Actions 99 The Nature of Functions in Swift 100 General Function Syntax and Structure 100 Functions with No Parameters and No Return Type 102 The Type of a Function 102 Functions with Parameters 103 Functions with Variadic Parameters 105 Functions with Return Types 106 External Parameter Names 111 Default Parameter Values 112 Change Argument Values with In-Out Parameters 112 Summary 113 Q&A 114 Workshop 114 Exercise 115 HOUR 9: Understanding Higher Order Functions and Closures 117 Higher Order Functions 117 Closures 124 Summary 132 Q&A 133 Workshop 133 Exercise 135 HOUR 10: Learning About Structs and Classes 137 Overview of Structs and Classes in Swift 137 What Swift Structs and Classes Have in Common 139 Differences Between Structs and Classes 147 When to Use a Class or a Struct 150 Summary 151 Q&A 151 Workshop 152 Exercise 153 HOUR 11: Implementing Class Inheritance 155 What Is Inheritance? 155 Identifying a Base Class 156 Creating a Subclass 157 Overriding Inherited Methods 159 Accessing super 162 Preventing Overrides 164 Class Identity 166 Summary 167 Q&A 168 Workshop 169 Exercise 170 HOUR 12: Harnessing the Power of Enums 171 Understanding Swift Enums 171 Swift Enum Structure 172 Raw Values 173 Enum Shorthand Syntax 175 Associated Values 177 Switching Enum Values 178 Adding Instance Methods to Enums 180 Summary 182 Q&A 183 Workshop 183 Exercise 184 HOUR 13: Customizing Initializers of Classes, Structs, and Enums 185 Initialization 185 Initializing Value Types 187 Advanced Initialization 193 Summary 201 Q&A 202 Workshop 202 Exercise 203 HOUR 14: Digging Deeper with Properties 205 Stored Properties 206 Computed Properties 209 Property Accessors 209 Property Observers 212 Inheriting and Overriding Accessors 215 Inheriting and Overriding Observers 217 Summary 221 Q&A 221 Workshop 222 Exercise 222 HOUR 15: Adding Advanced Type Functionality 223 Type Properties and Methods 223 Type Aliasing 229 Type Access Control 230 Subscripts 231 Type Casting and Non-Specific Types 235 Summary 239 Q&A 239 Workshop 240 Exercise 241 HOUR 16: Understanding Memory Allocation and References 243 Deinitialization 243 Automatic Reference Counting 247 Summary 259 Q&A 260 Workshop 261 Exercise 261 HOUR 17: Using Protocols to Define Behavior 263 Defining Protocols 263 Creating and Adopting Protocols 264 Properties 265 Defining Methods in Protocols 266 Using Protocol Names as Types 268 Adopting and Inheriting Multiple Protocols 269 Optional Protocol Properties and Methods 273 How to Check for Protocol Conformance 275 Using Protocols for Delegation 275 Summary 280 Q&A 281 Workshop 282 Exercise 282 HOUR 18: Using Extensions to Add Type Functionality 285 Defining Extensions 285 Adding Functionality with Extensions 287 Summary 297 Q&A 297 Workshop 298 Exercise 298 HOUR 19: Working with Optional Chaining 301 Defining Optional Chaining 301 Chaining Optional Properties 302 Subscripts 303 Methods 308 Summary 310 Q&A 311 Workshop 311 Exercise 312 HOUR 20: Introducing Generics 313 An Introduction to Generics 313 Type Parameters and Placeholder Types 314 Specifying Type Constraints 315 Creating Generic Types 319 Extending Generic Types 322 Using Associated Types in Protocols 323 Summary 325 Q&A 326 Workshop 326 Exercise 327 HOUR 21: Adding Interoperability with Objective-C 329 Objective-C Basics 329 Bridging 335 Integrating Swift into an Objective-C App 337 Summary 346 Q&A 347 Workshop 348 Exercise 348 HOUR 22: Interacting with User Interfaces 351 Interface Introduction 351 Interface Definitions 352 Building an Interface 353 Creating Your Own Project 355 Adding UI Elements 355 Summary 369 Q&A 370 Workshop 370 Exercise 371 HOUR 23: Asynchronous Programming in Swift 373 The Problem That Concurrency Solves 373 Different Types of Queues 374 Asynchronous Programming in Action 376 Add iTunes Search to Songs App 380 Parsing JSON 383 Summary 390 Q&A 390 Workshop 391 Exercise 392 HOUR 24: Learning Swift's Standard Library Functions 393 What Is a Standard Library? 393 Numeric Types 394 String Type 394 Protocols 395 Functional Functions 399 Global Functions 401 Summary 404 Q&A 405 Workshop 405 Exercise 406 Index 409
Swift in 24 Hours, Sams Teach Yourself by B. J. Miller
B. J. Miller
Used - Like New
Pearson Education (US)
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a used book - there is no escaping the fact it has been read by someone else and it will show signs of wear and previous use. Overall we expect it to be in very good condition, but if you are not entirely satisfied please get in touch with us.