This e-book is for intermediate Swift builders who already know the fundamentals of Swift and wish 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, however it’s not sufficient to understand the true energy of the language.
Knowledgeable Swift is right here to assist, by exhibiting…
extra
This part tells you just a few issues you might want to know earlier than you get began, reminiscent of what you’ll want for {hardware} and software program, the place to search out the mission information for this e-book, and extra.
The primary part of this e-book 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 subject after which soar proper into the behind-the-scenes implementations.
The content material of this part will expose the internal workings of the sort system, in addition to get you intimately aware of protocols and generics.
Welcome to Knowledgeable Swift. On this chapter, you’ll study among the motivations behind creating the Swift language, take a brief however deep dive into the Swift toolchain movement and have a look at Swift. You’ll develop a easy language function, ifelse, to discover among the amenities Swift gives 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 higher optimization. You’ll acquire expertise concerning the completely different nominal varieties 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 will undergo a quick refresher on the fundamentals of protocols in addition to a few of their extra not often used options.
You’ll additionally study frequent patterns that use protocols in addition to some helpful gotchas and edge circumstances to remember.
On this chapter, you will get intimately aware of generics by persevering with to work on the networking library you began within the earlier chapter. You may learn to write generic features, lessons and structs; use protocols with related varieties; what kind erasure is and 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 crucial subject – Unsafe.
As you’d anticipate from a sophisticated e-book, we don’t solely clarify these matters, but in addition examine how they’re constructed, how they’re represented, and use them successfully.
Swift is a platform-agnostic, general-purpose programming language that helps varied numeric varieties with differing area, 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 varieties 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 varieties like Array, Dictionary and Set. You’ll see how these protocols let you write generic algorithms that function throughout households of collections. The usual library gives 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 subject for fairly a while. The design is a fragile stability 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’ve at this time. 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 typically cope with a myriad of information fashions and varied exterior items of information that you just’ll need to characterize as knowledge fashions in your app.
On this chapter, you’ll rapidly flick thru the fundamentals of Codable, after which concentrate on the superior supplies down the darkish corners of codable varieties.
Swift is a memory-safe and type-safe language. In some circumstances, you would possibly want your code to be extraordinarily optimized, by which case the tiny overhead added by the security checks from Swift is perhaps too costly. You is perhaps coping with an enormous stream of real-time knowledge, manipulating massive information or different massive operations that cope with massive knowledge.
On this chapter you will learn to use unsafe Swift to instantly entry reminiscence via quite a lot of pointer varieties and work together with the reminiscence system instantly.
The ultimate part of this e-book covers superior strategies to super-charge your Swift powers, and use all of what Swift has to supply.
We’ll cowl matters like Greater order features, Purposeful reactive programming, Goal-C interoperability, utilizing Instrumentation, and API design.
Greater-order features can simplify your code considerably by making it extra readable, rather a lot shorter and simpler to reuse. You may study what are increased order features, what’s currying and look at examples of how they’re utilized in the usual library.
On this chapter you will study an important and refined ideas of practical reactive programming and how one can apply these ideas to your apps.
Prefer it or not, Goal-C remains to be a closely used language in legacy codebases and apps which have been in manufacturing for a few years. In your personal apps, you’ll typically have a large Goal-C codebase that simply doesn’t really feel at house inside your Swift code or need to use a few of your shiny new Swift code in your Goal-C code.
On this chapter, you will learn 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 awesome 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, use them to sharpen your abilities and establish areas of enchancment in your code.
On this chapter you will study superior options of the Devices app, and use it to enhance your code.
Discover just a few matters to reinforce your skillset and instinct for designing nice APIs.
Subjects like Documentation, Encapsulation, versioning, and several other highly effective language options.