The team that brought you the bestselling Beginning iPhone Development, the book that taught the world how to program on the iPhone, is back again for Beginning iPhone Development with Swift. This definitive guide to the Swift programming language and the iOS 8 SDK, and the source code has been updated to reflect Xcode 6.3.1 and Swift 1.2.
There’s coverage of brand-new technologies, including Swift playgrounds, as well as significant updates to existing material. You'll have everything you need to create your very own apps for the latest iOS devices. Every single sample app in the book has been rebuilt from scratch using the latest Xcode and the latest 64-bit iOS 8-specific project templates, and designed to take advantage of the latest Xcode features.
Assuming little or no working knowledge of the new Swift programming language, and written in a friendly, easy-to-follow style, this book offers a complete soup-to-nuts course in iPhone, iPad, and iPod touch programming. The book starts with the basics, walking through the process of downloading and installing Xcode and the iOS 8 SDK, and then guides you though the creation of your first simple application.
From there, you’ll learn how to integrate all the interface elements iOS users have come to know and love, such as buttons, switches, pickers, toolbars, and sliders. You’ll master a variety of design patterns, from the simplest single view to complex hierarchical drill-downs. The art of table building will be demystified, and you’ll learn how to save your data using the iPhone file system. You’ll also learn how to save and retrieve your data using a variety of persistence techniques, including Core Data and SQLite. And there’s much more!
As good a starting point as any
If you are new to iPhone develoment and/or Swift, this is a decent place to start, however it is not the best it could be — or even the best in general. If you are already familiar at all with iOS development, this is probably not a good book to read. They do take their time showing you all the different pieces of the iOS development process (a small bit about Xcode, a small bit about Swift, a lof of focus on the Model-View-Controller architecture which is really key to understanding iOS development at all. Experienced iOS developers may find the book slow moving due to the detail the authors go into.
The problem with this book is that there are a lot of tiny-but-annoying inconsistencies and incongruencies in the instructions and descriptions the book provides. This book was clearly written on the pre-release version of Swift and Xcode and although the authors say they went back and did a thorough review after Swift was released, based on what is in the book today they did not do a complete-enough job of that.
As you progress, chapter after chapter, you find inconsistencies and mistakes that show how the text was written with an “earlier version” in mind and someone forgot to correct this part or that. As the examples (which, by the way, are pretty good examples) progress, they explain how they did things but tend to skimp on why. This can be very difficult for people who are already proficient in other programming languages. "Was this a stylistic choice or a programmatic requirement?" "Is this the best way?" "The only way?” You may find myself asking more questions than receiving answers, and that’s not a good thing when all you have is a book.
Also as the chapters progress, you find more typos and errors and glossed-over-explanations that make some examples harder to complete than others, and tarnish the reader’s faith in the book. A few of the examples do not run correctly as the book says they should. Nothing major, but still enough that it will leave you wondering what went wrong.
It is important to reiterate, however, that if this is your first forray into iOS development, this book is a pretty decent jumping-off point. Past experience with other languages and IDEs will serve you well and allow you to get past the rough bits to get enough of the meaningful content found within this book. When you complete this book, you should find yourself ready to digest additional books more geared towards more experienced iOS developers.