How I learned Combine
About me
Hello! I specialize in iOS development using the latest technologies. I have experience working with Swift, SwiftUI, MapKit, XCcode, and Firebase/Firestore. I thoroughly enjoy solving problems and reaching the most efficient solution. I have worked on geolocating applications, applications in the restaurant business, and other personal projects all involving data storage and persistence, sleek UI designs, and integrating the latest iOS techniques/technologies.
Why I wanted to learn Combine
I wanted to learn the Combine framework because I believe it be a key tool in the iOS developer's toolbox for handling asynchronous events. UI changes, data fetching, etc. can all occur on different time bases thus leading to a scenario where the coding becomes daunting. The Combine framework seemed to have the correct tools to save the day and streamline this process, so I decided to dive in!
How I approached learning Combine
I approached learning the Combine framework by reading blog posts from developers I look up to as well as watching tutorial videos. I then progressed into reading the documentation for the framework.
Challenges I faced
The Combine framework requires a large amount of conceptual knowledge on the time-dependence of data in iOS development. Wrapping my head around publishers and subscribers and why things are are asynchronous was a major checkpoint into understanding things on a deeper level.
Key takeaways
I have found that learning the Combine framework is best achieved by first understanding how, why, where, and when data is asynchronous versus synchronous in iOS development.
Tips and advice
First start by learning the key takeaway: how, why, where, and when data is asynchronous versus synchronous in iOS development? What is the main thread? and other topics related.
Final thoughts and next steps
This process was not easy but definitely doable with the right mindset and drive! I am still rather new to this framework so my next steps are to implement the Combine framework in a variety of my projects to gain practical knowledge and expertise on using it.