About the Book
From learning about the most sought-after design patterns to a comprehensive coverage of architectural patterns and code testing, this book is all you need to write clean, reusable code
Key Features
Write clean, reusable and maintainable code, and make the most of the latest Swift version.
Analyze case studies of some of the popular open source projects and give your workflow a huge boost
Choose patterns such as MVP, MVC, and MVVM depending on the application being built
Book DescriptionSwift keeps gaining traction not only amongst Apple developers but also as a server-side language. This book demonstrates how to apply design patterns and best practices in real-life situations, whether that's for new or already existing projects.
You’ll begin with a quick refresher on Swift, the compiler, the standard library, and the foundation, followed by the Cocoa design patterns – the ones at the core of many cocoa libraries – to follow up with the creational, structural, and behavioral patterns as defined by the GoF. You'll get acquainted with application architecture, as well as the most popular architectural design patterns, such as MVC and MVVM, and learn to use them in the context of Swift. In addition, you’ll walk through dependency injection and functional reactive programming. Special emphasis will be given to techniques to handle concurrency, including callbacks, futures and promises, and reactive programming. These techniques will help you adopt a test-driven approach to your workflow in order to use Swift Package Manager and integrate the framework into the original code base, along with Unit and UI testing.
By the end of the book, you'll be able to build applications that are scalable, faster, and easier to maintain.What you will learn
Work efficiently with Foundation and Swift Standard library
Understand the most critical GoF patterns and use them efficiently
Use Swift 4.2 and its unique capabilities (and limitations) to implement and improve GoF patterns
Improve your application architecture and optimize for maintainability and performance
Write efficient and clean concurrent programs using futures and promises, or reactive programming techniques
Use Swift Package Manager to refactor your program into reusable components
Leverage testing and other techniques for writing robust code
Who this book is forThis book is for intermediate developers who want to apply design patterns with Swift to structure and scale their applications. You are expected to have basic knowledge of iOS and Swift.
Table of Contents:
Table of Contents- Refreshing the Basics
- Understanding ARC and Memory Management
- Diving into Foundation and the Standard Library
- Working with Objective-C in a Mixed Code Base
- Creational Patterns
- Structural Patterns
- Behavioral Patterns
- Swift-Oriented Patterns
- Using the Model-View-Controller Pattern
- Model-View-ViewModel in Swift
- Implementing Dependency injection
- Futures, Promises, and Reactive Programming
- Modularize Your Apps with Swift Package Manager
- Testing Your Code with Unit and UI Tests
- Going Out in the Open (Source)
About the Author :
Florent Vilmart, M.Sc. is a full stack engineer in Montreal. Born in France, he moved to Montreal short before graduating looking for exciting opportunities in the francophone metropole of North-America. He honed his skills with Objective-C before jumping to Swift when it was released. Hes a polyglot, and you can find his open source work on the parse-community GitHub project where he is one of the core maintainers of the multiple projects. He also spoke at conferences like the GithubCodeConf in 2016 and most recently the Swift Summit in 2017. Currently, he is working full time with Swift, Javascript, and Kubernetes and leads a team of 6 engineers. Giordano Scalzo is a developer with 20 years of programming experience, since the days of ZX Spectrum. He has worked in Swift, Objective-C, C/C++, Java, .Net, Ruby, Python, and in a ton of other languages that he has forgotten the names of. After years of backend development, over the past 10 years, Giordano has developed extensively for iOS, releasing more than 20 apps—apps that he wrote for clients, enterprise applications, or on his own. He is currently a Tech Lead Consultant in London, where he leads mobile digital transformations through his company, Effective Code Ltd. Sergio De Simone has been working as a software engineer for over twenty years across a range of different projects and companies, including work environments such as Siemens, HP, and small start-ups. For the last few years, his focus has been on developing mobile platforms and related technologies. He is currently working for BigML, Inc., where he leads iOS and OS X development. Additionally, he likes writing about technology, as well as programming tools, techniques, and languages, with a special focus on Swift evolution, for InfoQ.