Preface

This book will take your Swift programming skills to a level at which you can work as a professional software engineer, using a step-by-step approach, ensuring that the introduction of each new concept is preceded by a thorough understanding of those preceding it.

The book covers a range of technologies, particularly those that you'll typically need, if not on day one of a new project (or a new job), then at least pretty soon after. These include not just Apple's Xcode, but also the Terminal app, Git version control, package management, the Swift REPL, and the LLDB debugger, all of which are essential skills.

Each chapter focuses on a particular topic or technology, giving you a deep dive into the skills and know-how that will take your work to a professional standard, in terms of code quality, maintainability, and robustness. This entails general topics, such as programming paradigms and design patterns, a general look at the Cocoa frameworks and their place in the macOS ecosystem, and of course specific technologies around networking, storage, and advanced graphics and animation.

Furthermore, a significant portion of the text is devoted to such thorny issues as concurrency, asynchronous programming, and error handling.

By the end of this book, you will be able to confidently approach projects of much greater size and complexity, and be well placed to comfortably deal with the various issues that all programming inevitably brings with it.

Coding is a never-ending journey. This book aims to get you on the right track, and a fair way along it.