This guide is for intermediate Swift builders who already know the fundamentals of Swift and need to deepen their information and understanding of the language.
- Protocols & Generics
- Numerics & Ranges
- Sequences & Collections
- Unsafe
- Purposeful Reactive Programming
- Goal-C Interoperability
- Library & API Design
Swift is a wealthy language with a plethora of options to supply. Studying the official documentation or entry-level books is vital, but it surely’s not sufficient to understand the true energy of the language.
Skilled Swift is right here to assist, by displaying…
extra
This part tells you a couple of issues you could know earlier than you get began, akin to what you’ll want for {hardware} and software program, the place to seek out the undertaking recordsdata for this guide, and extra.
The primary part of this guide covers the fundamental constructing blocks of the Swift language: The sort system (enums, structs and lessons), Protocols and Generics. We’ll begin with a quick refresher of every matter after which bounce proper into the behind-the-scenes implementations.
The content material of this part will expose the internal workings of the kind system, in addition to get you intimately aware of protocols and generics.
Welcome to Skilled Swift. On this chapter, you’ll find out about among the motivations behind creating the Swift language, take a brief however deep dive into the Swift toolchain circulation and have a look at Swift. You’ll develop a easy language characteristic, ifelse, to discover among the amenities Swift presents for creating highly effective, expressive abstractions.
Varieties are important to constructing Swift packages. The Swift compiler kind checks your code to confirm correctness, guarantee security and allow larger optimization. You’ll achieve expertise in regards to the completely different nominal sorts and mutation with a number of small examples. You’ll additionally implement mutable worth semantics for a QuadTree kind utilizing copy-on-write dynamic storage.
On this chapter you may undergo a quick refresher on the fundamentals of protocols in addition to a few of their extra not often used options.
You’ll additionally find out about frequent patterns that use protocols in addition to some helpful gotchas and edge instances to remember.
On this chapter, you may get intimately aware of generics by persevering with to work on the networking library you began within the earlier chapter. You will discover ways to write generic features, lessons and structs; the right way to use protocols with related sorts; what kind erasure is and the right way to put all that collectively to make a coherent API.
This sections covers the bottom layer of writing Swift packages: Numerics, Ranges, Strings, Sequences, Collections, Codable and the much less apparent, however essential matter – Unsafe.
As you’d anticipate from a complicated guide, we don’t solely clarify these matters, but in addition examine how they’re constructed, how they’re represented, and the right way to use them successfully.
Swift is a platform-agnostic, general-purpose programming language that helps varied numeric sorts with differing house, vary, accuracy and efficiency traits. Constructing two apps (BitViewer and Mandlebrot), you’ll see how Swift simplifies programming with protocols and generics. You’ll additionally have a look at vary sorts and the way operators and generics as soon as once more come to the rescue in implementing these language options.
Sequence, Assortment and associated protocols type the spine of the usual library for sorts like Array, Dictionary and Set. You’ll see how these protocols permit you to write generic algorithms that function throughout households of collections. The usual library presents some ways to rapidly construct customized sequences and collections. You’ll use these to construct a number of examples together with a customized mutable assortment to implement Conway’s Recreation of Life. You’ll additionally create a chunking algorithm that can be utilized with any assortment kind.
The right implementation of a string kind in Swift has been a controversial matter for fairly a while. The design is a fragile steadiness between Unicode correctness, encoding agnosticism, ease-of-use and high-performance. Nearly each main launch of Swift has refined the String kind to the superior design we now have at present. You’ll study how one can most successfully use strings, what they are surely, how they work and the way they’re represented.
When creating your app, you’ll usually take care of a myriad of knowledge fashions and varied exterior items of knowledge that you just’ll wish to signify as information fashions in your app.
On this chapter, you’ll rapidly flick through the fundamentals of Codable, after which deal with the superior supplies down the darkish corners of codable sorts.
Swift is a memory-safe and type-safe language. In some instances, you would possibly want your code to be extraordinarily optimized, wherein case the tiny overhead added by the security checks from Swift is likely to be too costly. You is likely to be coping with an enormous stream of real-time information, manipulating massive recordsdata or different massive operations that take care of massive information.
On this chapter you may discover ways to use unsafe Swift to immediately entry reminiscence by quite a lot of pointer sorts and the right way to work together with the reminiscence system immediately.
The ultimate part of this guide covers superior methods to super-charge your Swift powers, and use all of what Swift has to supply.
We’ll cowl matters like Increased order features, Purposeful reactive programming, Goal-C interoperability, utilizing Instrumentation, and API design.
Increased-order features can simplify your code considerably by making it extra readable, lots shorter and simpler to reuse. You will study what are increased order features, what’s currying and study examples of how they’re utilized in the usual library.
On this chapter you may study crucial and refined ideas of practical reactive programming and how one can apply these ideas to your apps.
Prefer it or not, Goal-C continues to be a closely used language in legacy codebases and apps which were in manufacturing for a few years. In your personal apps, you’ll usually have a large Goal-C codebase that simply doesn’t really feel at residence inside your Swift code or wish to use a few of your shiny new Swift code in your Goal-C code.
On this chapter, you may discover ways to create a healthful expertise for customers of each the Goal-C and Swift parts of your codebase in a means that feels as if it had been designed for both.
Being an incredible iOS software program engineer is not solely about being a grandmaster of the Swift language. It is also about realizing which instruments the platform places at your disposal, the right way to use them to sharpen your expertise and the right way to determine areas of enchancment in your code.
On this chapter you may find out about superior options of the Devices app, and the right way to use it to enhance your code.
Discover a couple of matters to reinforce your skillset and instinct for designing nice APIs.
Matters like Documentation, Encapsulation, versioning, and several other highly effective language options.