Big Mountain Studio/Combine Mastery in SwiftUI

Now YOU Can Learn Combine...

Updated for iOS 18

Even if you've tried everything else and failed 7 times like me!

(I even failed a job interview because I didn't know Combine!)

It got worse...

Combine uses a lot of Swift language features that many of us aren't familiar with.

When you watched the WWDC videos that introduced Combine, could you understand what they were talking about?

Me neither!

I finally figured it out!

Before I could learn Combine, I had to work on my Swift language foundation.

Once I understood a few key pieces, I finally started to understand Combine!

I slowly started to understand Combine on a conceptual level. I teach these concepts using pictures and simple English.

  • $147

Combine Mastery in SwiftUI

  • Download
  • 3 Files

Stop struggling to understand. Have fun learning Combine. Learn with plain and simple English. Don't fail interviews (like I did). Save time, pain, and frustration.

Here is what others have to say

"I have to say, I am finding it a bit of a lightbulb read. All sorts of things are clicking thanks to your explanations. So well done. It is the kind of book that I can go back over and over again to confirm my understanding. Thanks for doing this."

Stewart Lynch

"You can spend tons of time and money on other books, but it’s very likely you will still come out the other side confused and without the understanding you were hoping for.
But with Mark's book, pictures and arrows and simple words will give everyone the confidence to immediately implement Combine in their projects — and even refactor projects at work to use it, too."

Scott Smith

"You're an amazing teacher.
I learned more from 5 pages in this book than I have from browsing all of the Combine resources on the web.
No joke."

Rod Liberal

Here's what you're going to get...

This book will:
  • Give you an overview of the MVVM architecture so you can better understand project organization
  • Describe Combine in a new way to help you understand the concepts before getting into code
  • Give you a foundation in Swift-specific language features and examples that help make Combine possible
  • Show you how to create your first Combine pipelines in SwiftUI, step-by-step
  • Provide a visual reference guide describing over 140 Combine examples
  • Demonstrate SwiftUI views connected to EVERY Combine pipeline

"Charge more!"

A very close friend of mine kept telling me I should charge more for this book.
"You struggled to learn this, unlocked the secret, and simplified it. You essentially just made Combine accessible to 90% of the developers out there. Nobody has done what you have done."
"Mark has done an amazing job teaching such a complex topic.
First, he breaks down each basic concept with plain English and visual examples.
Then he relates it back to Combine so you understand its role in context.
After that, he guides you through putting together your own pipelines.
By the end, you’ve gained both a practical and deep understanding of what makes Combine tick and how to use it.
This was an intimidating topic for me and I’ve been putting it off but I ended up really enjoying learning Combine with Mark’s book!"

Chris Ching (Code with Chris)

Book Structure

Every topic has 3 main parts:
1. Pipeline Diagram  2. SwiftUI View  3. View Model with Combine Pipeline

1. Pipeline Diagram

Each topic begins with a pipeline and a description.

2. SwiftUI View

The view will tell you about the topic and display a result of the Combine pipeline.

3. Combine Pipeline

Every view connects to a view model that contains the Combine pipeline.

This page often contains helpful tips about the topic.

Readers are enjoying the visual approach

"This book finally uncovers the mystery that Combine was to me up until now. The illustrations are so helpful in understanding the whole pipeline principle of Combine and the extensive explanation of code snippets on what the various modifiers do will help a lot of people that have struggled like me to better understand Combine. Highly recommended for anyone who wants to understand Combine."

Rob In der Maur

"Before, I never started to code with Combine because of such hard concepts. Combine, starting was hard.
But that changed with your book,
I love your visual way of explaining
things - it "breaks down" some of its core concepts with the help of many "pipes, wrenches and tanks" - literally
:-).
So well done and good to read - makes you hungry to start using it in the code - actually."

Stan Kasprik

"My expectations for Mark's new book "Combine Mastery in SwiftUI" were running high, especially after reading "Working with Data in SwiftUI." And I am not disappointed.
This book is even better because it explains a more complicated topic using the same unique visual approach. 
I highly recommend this book to everyone who wants to understand the concept of the Combine framework and how it works."

Mariusz Bohdanowicz

Combine Mastery in SwiftUI Chapters

ARCHITECTURE

How do you structure your project to use Combine?
This light overview keeps it simple. No "follow-this-pattern-or-die" rules here. I put you in charge.
Page 12

COMBINE CONCEPTS

What is a simple concept you can learn that will enable you to start thinking with the parts of Combine?
This chapter alone has turned on more than one lightbulb for readers.
Page 17

YOUR SWIFT FOUNDATION

Learn what the KEY was to finally unlock my understanding of Combine.
Many readers who have struggled to learn these before finally got it with these simple examples.

Page 23

@PUBLISHED

What does the @Published property wrapper have to do with Combine?
It turns out a lot! With Combine built into it, you will learn how to take advantage of your published properties and extend their functionality like never before.
Page 49

YOUR FIRST PIPELINE

How do you create your first simple pipeline AND use it with a SwiftUI view?
You start with the 3 "P"s:
  • A Plan
  • An overview of the 3 Pieces
  • And then the Publisher.
For many readers,  this is where Combine "clicked" for them. They finally got it.
Page 56

YOUR FIRST CANCELLABLE PIPELINE

You can turn pipelines on to allow data to flow, but how do you turn them off?
In this chapter, you will learn how to create and destroy pipelines. You are the god of Combine!
Many readers also enjoyed the memory tips on when to use unowned and weak and why it makes a difference.
Page 70

CANCELLING MULTIPLE PIPELINES

You've got one Combine pipeline under control, but how can you efficiently manage multiple pipelines at one time?
You are ready for the next step in managing your Combine pipelines! This short but crucial chapter builds upon your one-pipeline knowledge.
Page 79

PUBLISHERS

Publishers are the start of all Combine pipelines. So...which publisher do I use?
You have options!
This chapter demonstrates visually and with SwiftUI examples how each publisher works.
Learn the pattern you can use on existing apps to turn your existing API calls into publishers.
Also learn the publisher that allows you to get data from URLs, like JSON and images.
Page 86

OPERATORS

What can I do with data from a publisher?
This is where most of the magic in Combine happens.
Apple has created a TON of operators that can manipulate data in many different ways to make your life easier.
You are most likely doing all of these things manually right now.
This is your main resource in finding, learning, and mastering the operator you need to get the job done.
Page 149

SUBSCRIBERS

The subscriber is the third piece and last of the pipeline. You have the data in the form you want, now what do you do with it?
You will learn how to use Combine subscribers to get your data and not only store it in your app but get it on your SwiftUI view!
The good news?
There aren't that many! Whew!
Page 340

ORGANIZING

How can I store pipelines?
How can I reuse pipelines?
How can I make my publishers generic enough so all I need to do is attach a subscriber to get data from them?

This short but essential chapter will open up new doors to you in how you can organize your publishers and pipelines for organization and reusability.
Page 351

WORKING WITH MULTIPLE PUBLISHERS

How can I start many Combine publishers to all go out and fetch data for me and have all the data flow into one place?
You are going to learn some POWERFUL Combine tools in this chapter.
The idea of running many publishers at the same time may seem overwhelming but trust me, you got this. I will demonstrate how to use these different tools and how to display the resulting information in SwiftUI as the data is coming back. Real working examples that you could copy and paste if you wanted to!
Page 361

HANDLING ERRORS

Your pipeline may or may not throw errors. How will you know and how can you handle the errors?
Identify the two types of pipelines and know which need error handling and which do not.
Combine gives you tools to make error handling easy.
You will learn how to catch errors and your different options, whether it is to display an alert in your SwiftUI view or maybe you want to substitute a default value. Find out what your options are!
Page 385

DEBUGGING

"My Combine pipeline is failing and I don't know why?!"
This is something you never want to say. To help with this you will need to learn some tools that Combine gives you so you can tell what is happening every step of the way!
Gain insight into what your pipeline is doing behind the scenes.
I also include a technique I used to let me know if my pipelines are being released from memory.
Page 408

"Fun while learning..."

"Fun while learning.

The images, illustrations and code examples in your book are well balanced for every page. Keeps it interesting to jump to the next chapter.

That is maybe the main point.
Combine is complex but your book takes out the fear of learning all the way through."

Peter Pohlmann

30 Day Money Back Guarantee

If this book doesn't:
  • Help you understand what Combine is and how to use it
  • Help you create your first pipeline
  • Help you integrate Combine with your SwiftUI views
Then you can return it for a full refund within 30 days.

Simple English For Everyone

The majority of developers around the world speak English as a SECOND language.
That is why I keep it simple.
Many times I have reworded explanations and examples in the direction of simplicity, not complexity.
"I like the simplicity in which important concepts are explained and defined. There was no use of big technical definitions and big words. On the contrary, each new and important word and concept was broken down to its minimal definition."

Erica Gutierrez

"What I really loved with your approach is that you started from the bottom and took baby steps explaining everything in the way that really helped.
Also, the examples (the water pipeline) and drawings help a lot.
I also loved the 'explain things like I'm 5 approach'."

Mahmoud Ashraf

Don't Fail Interviews

There I was, in a Zoom call with 4 other interviewers.
"Here's a URL that returns JSON. Get the data and display it on a SwiftUI view...using Combine."
I DIDN'T KNOW COMBINE!
I have never felt more embarrassed.
The struggle and failure devastated me.
This is why I teach how to do this. (Page 129)

Would you want this to happen to you?

Save 100 hours?

It took over 400 hours to research, learn, compile, simplify, and create visuals to cleanly and simply present this information.

If all this book did was save you a quarter of that time so you could spend more time with your family and friends, would it be worth it?

Get A Better Job?

When it comes time to interview, will you be prepared?

If all this book did was allow you to pass a technical interview for a better, higher-paying job, would it be worth it?

BONUS 1! The Companion Xcode Project

  • Organized to match the chapters of the book
  • View and run specific examples
  • Model your code after this code
  • Build. Run. Play.

BONUS 2! Stock Tracking App

Combine example of how to:
  • Fetch multiple stocks at a time using an API
  • How to decode JSON
  • A way to handle errors
  • How to reuse parts of Combine
Use code comments to find book references!

BONUS 3! Weather App

Using Combine to:
  • Fetch updated weather information for a list of cities asynchronously
  • Search for cities while typing (cancels previous call to API when a new call is made)

Discount

20% OFF
  • If you bought one of my books then you got a 20% off loyalty coupon that was emailed to you.
(You would have had to opt-in to emails to get this coupon.)

💬 Just message me from this website if you need the coupon. I can quickly verify and send you the link! 👍

Included products

  • Free

Combine Mastery Bonus Content

Bonus content for Combine Mastery • Xcode Project ($47 Value) • Cheat Sheet ($17 Value) • Stock Tracker App ($97 Value) • Weather App ($97 Value) Total Value: $258

  • $147

Combine Mastery in SwiftUI

  • Stop struggling to understand
  • Have fun learning Combine
  • Learn with plain and simple English
  • Don't fail interviews (like I did)
  • Save time, pain, and frustration

Hi! I'm Mark Moeykens

Having created over 1,000 SwiftUI views, I help developers get started with SwiftUI. 

Follow me on Social Media to stay up-to-date on what I'm working on and how it can help you!

Testimonials

The author explains the underlying concepts in such a manner that looking at the code only supported the evidence: Combine isn't as scary as it seems, and reading this book helped me understand that. I will be migrating to using Combine from now on.

Thomas Swatland

It gives me a clear thinking about how publishers work and even understand how the streams and pipelines work.
For me it’s the perfect way for learning, sometimes there are a lot of concepts and the way you handle it’s really simple.
That's why I loved your books you don't get so deep into concepts, you teach by showing what it does and for me it's perfect!!

Marco Mayen (Kross)

It was completely nice to go through. I actually learned a lot.
I have already had a few eye-openers in how Combine works, but more importantly, there is a good sense of direction and for the first time I’m getting some ideas and can see and understand some uses and benefits of using Combine.

Charlie Idda

I had never actually created my own Combine pipeline to use in a View.  To this end, it is fantastic.  Neither have I come across any examples like you have there, in other places. So now I have your various examples that I can and will start using immediately. It cleared up lots of things related to Combine.
I loved that the ePub had videos built in.  So I'd say Ive ended up with a solid, much clearer understanding of the mechanics behind Combine, the protocols, how it is plumbed together, and then used for a SwiftUI View. It's great.
I love the way the book is laid out!  A concept per page. Very clear diagrams that really make sense.

Luke Smith

I saw that Mark's way of teaching was completely different from anything I read before, and in a VERY good way.
He doesn't solve the problems for you, he teaches YOU how to solve the problem, simple as that!
And of course, he did it again with his Combine book. This is a very tricky subject and I have seen many iOS devs really struggling to grasp it, and for a good reason, it's really HARD! But after reading this book, I have to say, it seems quite a bit less hard to work with, and I finally feel like I am really using Combine, not copy/pasting snippets 😃 And that is saying a lot!

Emin Grbo

I took the naive approach thinking that if I already knew RxSwift, Combine will be piece of cake. I thought that I’ll be able to write Combine code right away since the philosophy behind is the same.
Well, it didn’t go as smooth as I expected. I always had to google before I could write anything. So that’s my previous experience, no solid foundation just “learn as you go”.
This is the first time I read one of your books. I like your style, very visual. I like that you set the expectations from the beginning and say that the book is not about architecture and the accent is on the learning outcomes. I liked the plumbing comparison a lot, I’ve never thought of it that way. 

Sebastian Vidrea

My first go around was difficult because it felt overwhelming and it got super technical right from the start.
I found your book to be a great intro to the topic. You did a good job easing the reader into the subject. 👍
I also liked that you explained why it's important to use "weak/unowned self", and how the "&" and inout keyword fits together!
I think it was the combination of the visuals and not trying to bite off more than you can chew, that really did it for me.

Mats Braa

My experience before in trying to learn Combine was by watching the WWDC videos. I did not really explore beyond the basics. It was frustrating with the videos because I felt like it took too long for me to learn exactly what I needed to know how to solve a specific problem. I’m sure other developers share this sentiment about Apple’s current documentation.
The water reservoir analogy is very helpful and I like your illustrations. The code examples are easy to digest.

Dave Nutter

I really like the style you’ve come up with here.
The visual presentation is top notch, and I found it extremely helpful the way the material is broken down into small, readily digestible chunks. It was sort of like building a house. You laid out some foundations, and then you built on top of that.
Since I’m extremely new to Swift, the section on typealias and all those related concepts were a little tricky to grasp, but it helped to have a better understanding of the underpinnings.

David Hosier

It covers almost every single topic inside Combine but adds much-needed examples, details, and explanation. It's one of the best resources for learning Combine that I have seen.

Florian Schweizer

Your style of teaching is really clear and the combination of code + pics help me a lot. I love it.
Thanks you are a great teacher!

Sev Moreno Breser