We may earn an affiliate commission when you visit our partners.
SwiftFest Boston

SwiftFest Boston 2019 | The Reactive Code That Broke My Brain and Changed My Mind (Just in Time for Combine) | Lou Franco

Lou Franco will cover the basic ideas of Rx (RxSwift and Combine). This session is less about Rx operators and more about how to use Rx to build a reactive architecture. Lou will show some code from Trello (RxSwift) and a new workout app called Combine. If you have no Rx experience, you may encounter motivating examples that might convince you to give it a try. If you're using Rx, you'll encounter techniques for using it to make MVVM structures that are more testable and easier to maintain.

Enroll now

What's inside

Syllabus

The Reactive Code That Broke My Brain and Changed My Mind (Just in Time for Combine)

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches reactive programming principles, such as MVVM, that are industry-standard for creating maintainable and testable code
Introduces the core concepts of Rx (RxSwift and Combine), combining theoretical explanations with practical examples
Provides practical guidance for using Rx to design and implement reactive architectures in real-world applications
Taught by Lou Franco, an experienced software engineer and author known for his work on RxSwift and SwiftUI
Suitable for learners with no experience in Rx, as it provides a comprehensive introduction to the topic

Save this course

Save Introduction to MongoDB 2 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction to MongoDB 2 with these activities:
Compile and review course materials
Compiling and reviewing course materials will help you organize and reinforce your understanding of the course content.
Browse courses on Combine
Show steps
  • Gather all lecture notes, slides, and assignments.
  • Review and summarize key concepts from each lecture.
  • Practice solving problems and answering questions based on the compiled materials.
Review fundamental Swift concepts
Refreshing your Swift knowledge will ensure a strong foundation for understanding Rx and Combine in this course.
Browse courses on Swift
Show steps
  • Review online tutorials or documentation on Swift basics.
  • Practice writing simple Swift code snippets.
  • Work through Swift coding challenges or exercises.
Review the basics of functional programming
Reactive programming is built on the foundation of functional programming. Refreshing these concepts will make learning the material easier.
Browse courses on Reactive Programming
Show steps
  • Review notes or slides from previous courses or workshops on functional programming
  • Try to recall and solve some basic functional programming problems, such as mapping a list or filtering a list
16 other activities
Expand to see all activities and additional details
Show all 19 activities
Collect RxSwift resources
Compiling a list of RxSwift resources will help you stay organized and have all the information you need in one place.
Show steps
  • Create a document or spreadsheet to store your resources.
  • Search online for RxSwift resources.
  • Add the resources to your document or spreadsheet.
Read and review 'Reactive Programming with RxJava' by Thomas Nield
This book provides a comprehensive overview of RxJava, which will enhance your understanding of the underlying concepts of Rx.
Show steps
  • Read through the book and take notes on key concepts.
  • Highlight sections that resonate with you and write down your thoughts.
  • Summarize the main ideas of each chapter in your own words.
Watch RxSwift video tutorials
Watching video tutorials can help you learn RxSwift at your own pace and in a more engaging way.
Show steps
  • Find a set of video tutorials on RxSwift.
  • Set aside time each day to watch the tutorials.
  • Take notes and ask questions as needed.
Try out coding exercises from coding practice websites
Tackle practice drills to check your understanding of the syntax of a language, and how to use it to write code.
Browse courses on Syntax
Show steps
  • Visit a coding practice website or online judge
  • Select exercises from sections that are related to the course
  • Write and execute code to complete the exercises. Check your results carefully for errors or incorrect answers
Practice RxSwift Operators
Practice using RxSwift operators to gain a deeper understanding of their functionality and how they can be applied to solve real-world problems.
Show steps
  • Identify a problem that can be solved using RxSwift operators.
  • Implement a solution using the appropriate RxSwift operators.
  • Test the solution to ensure it meets the requirements.
Explore Rx documentation
Familiarize yourself with Rx documentation to understand its concepts better.
Browse courses on Rx
Show steps
  • Visit the Rx website and explore the documentation.
  • Create a new Rx project and experiment with different operators.
  • Follow online tutorials on RxSwift to gain hands-on experience.
Follow a tutorial on RxSwift or Combine
Hands-on practice with a guided tutorial will help you solidify your understanding of the concepts
Browse courses on RxSwift
Show steps
  • Find a tutorial on RxSwift or Combine
  • Follow the steps in the tutorial to build a simple project
  • Try to modify the project to see how different approaches work
Work through RxSwift exercises
Applying Rx concepts through exercises will deepen your understanding and solidify your skills.
Show steps
  • Find a set of exercises online or in a book.
  • Set aside time each day to work through the exercises.
  • Don't be afraid to ask for help if you get stuck.
Discuss RxSwift with other learners
Discussing RxSwift with other learners can help you understand the concepts more deeply and identify areas where you need more practice.
Show steps
  • Find a study partner or group.
  • Meet up regularly to discuss RxSwift concepts.
  • Work together on practice exercises.
Attend a virtual study group on Rx
Participating in a study group will allow you to engage with peers, discuss concepts, and enhance your understanding of Rx.
Browse courses on Rx
Show steps
  • Find a virtual study group or create one with fellow students.
  • Discuss Rx concepts, share experiences, and work through problems together.
  • Engage in code reviews and provide feedback to improve understanding.
Build a simple app using RxSwift
Creating an app will allow you to apply your RxSwift knowledge and see how it can be used in a real-world scenario.
Show steps
  • Come up with an idea for a simple app.
  • Design the app's architecture.
  • Implement the app using RxSwift.
  • Test the app.
Write a summary of Rx concepts
Summarizing Rx concepts will reinforce your understanding and help you retain key information.
Browse courses on Reactive Programming
Show steps
  • Write down the core concepts of Rx, such as observables, operators, and schedulers.
  • Explain how Rx can be used to handle asynchronous events and data streams in your code.
  • Share your summary with others to receive feedback and insights.
Solve Rx coding challenges
Solving Rx coding challenges will enhance your problem-solving skills and improve your understanding of Rx's practical applications.
Browse courses on Rx
Show steps
  • Find online Rx coding challenges or create your own.
  • Analyze the challenges and develop solutions using Rx operators and concepts.
  • Test and refine your solutions to ensure they meet the requirements.
Build a small project using RxSwift or Combine
Building a small project will allow you to apply the concepts you learn and see how they work in practice.
Browse courses on Reactive Programming
Show steps
  • Plan out a small project idea that you can build using RxSwift or Combine
  • Implement the project, making sure to use the concepts you learned in the course
  • Test and debug your project to make sure it works correctly
Build a Reactive Architecture with RxSwift
Build a reactive architecture using RxSwift to see how it can help make MVVM structures more testable and easier to maintain.
Browse courses on MVVM
Show steps
  • Create a new MVVM project.
  • Add RxSwift to the project.
  • Implement the reactive architecture using RxSwift.
  • Test the reactive architecture to ensure it works as expected.
Build a simple app using Rx
Creating an app using Rx will provide practical experience and deepen your understanding of how to apply Rx in real-world scenarios.
Browse courses on RxSwift
Show steps
  • Identify a simple app idea that can benefit from using Rx.
  • Design the app architecture and how Rx will be integrated.
  • Implement the app using Rx and test its functionality.
  • Deploy the app to a mobile platform.

Career center

Learners who complete Introduction to MongoDB 2 will develop knowledge and skills that may be useful to these careers:
Database Administrator
Database Administrators are responsible for managing and maintaining databases. They may work on a variety of tasks, from installing and configuring databases to monitoring performance and security. Those interested in becoming Database Administrators can benefit from taking this course to gain a foundation in database management, which is a critical skill for this role.
Business Analyst
Business Analysts use their knowledge of business processes to help organizations improve their efficiency and effectiveness. They may work on a variety of projects, from developing new business processes to identifying areas for improvement. Those interested in becoming Business Analysts can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing data about business processes.
Systems Administrator
Systems Administrators are responsible for managing and maintaining computer systems. They may work on a variety of tasks, from installing and configuring software to monitoring performance and security. Those interested in becoming Systems Administrators can benefit from taking this course to gain a foundation in database management, which is a critical skill for managing and maintaining databases on computer systems.
Software Engineer
Software Engineers design, develop, test, and maintain software systems. They may work on a variety of projects, from developing new applications to maintaining existing systems. Those interested in becoming Software Engineers can benefit from taking this course to gain a foundation in database management, which is a critical skill for building and maintaining software systems, especially in the field of data science.
Data Analyst
Data Analysts use their knowledge of statistics, mathematics, and computer science to extract insights from data. They may work on a variety of projects, from developing new reports to identifying trends. Those interested in becoming Data Analysts can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing large datasets.
Web Developer
Web Developers design, develop, and maintain websites. They may work on a variety of projects, from creating new websites to updating existing ones. Those interested in becoming Web Developers can benefit from taking this course to gain a foundation in database management, which is a critical skill for building and maintaining websites.
Information Security Analyst
Information Security Analysts are responsible for protecting an organization's computer systems and data from unauthorized access. They may work on a variety of tasks, from developing security plans to monitoring for threats. Those interested in becoming Information Security Analysts can benefit from taking this course to gain a foundation in database management, which is a critical skill for protecting databases from unauthorized access.
Data Scientist
Data Scientists use their knowledge of statistics, mathematics, and computer science to extract insights from data. They may work on a variety of projects, from developing new models to predicting customer behavior. Those interested in becoming Data Scientists can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing large datasets.
Cloud Engineer
Cloud Engineers design, build, and maintain cloud-based systems. They may work on a variety of projects, from developing new cloud-based applications to migrating existing systems to the cloud. Those interested in becoming Cloud Engineers can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing data in the cloud.
Product Manager
Product Managers are responsible for the development and launch of new products. They may work on a variety of tasks, from developing product roadmaps to conducting market research. Those interested in becoming Product Managers can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing data about products.
Compliance Analyst
Compliance Analysts ensure that an organization is in compliance with laws and regulations. They may work on a variety of projects, from developing compliance plans to conducting audits. Those interested in becoming Compliance Analysts can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing compliance data.
Risk Analyst
Risk Analysts identify and assess risks to an organization. They may work on a variety of projects, from developing risk management plans to conducting risk assessments. Those interested in becoming Risk Analysts can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing risk data.
Technical Writer
Technical Writers create documentation for software and hardware products. They may work on a variety of projects, from writing user manuals to developing online help systems. Those interested in becoming Technical Writers can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing technical documentation.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for testing software and hardware products to ensure that they meet quality standards. They may work on a variety of projects, from testing new products to developing test plans. Those interested in becoming Quality Assurance Analysts can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing test data.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. They may work on a variety of projects, from developing new products to implementing new processes. Those interested in becoming Project Managers can benefit from taking this course to gain a foundation in database management, which is a critical skill for storing and managing project data.

Reading list

We've selected five books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction to MongoDB 2.
Provides a comprehensive overview of reactive programming concepts using RxJava, a popular reactive programming library for Java and the JVM. While this book is written in Java, it can still be valuable for Swift developers who want to understand the underlying concepts of reactive programming.
Provides a comprehensive overview of functional reactive programming (FRP), a programming paradigm that combines functional programming with reactive programming. While this book is not specific to Swift or RxSwift, it provides valuable background knowledge on the core concepts of FRP.
Provides a comprehensive introduction to reactive programming with Haskell. It covers the basics of reactive programming, as well as how to use Haskell to build reactive applications. This book would be a valuable resource for anyone who wants to learn more about reactive programming or Haskell.
Provides a comprehensive introduction to reactive programming with R. It covers the core concepts of reactive programming, such as observables, operators, and schedulers. It also includes practical examples of how to use reactive programming with R to solve real-world problems.
Provides a comprehensive introduction to reactive programming with Java. It covers the core concepts of reactive programming, such as observables, operators, and schedulers. It also includes practical examples of how to use reactive programming with Java to solve real-world problems.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Introduction to MongoDB 2.
Three.js, React Three Fiber, Drei, React Spring & More
Build Reactive MicroServices using Spring...
Svelte.js - The Complete Guide (incl. Sapper.js)
Testing Spring Boot App with JUnit, Mockito &...
Akka Streams with Scala | Rock the JVM
Distributed Programming in Java
Getting Started with Reactive Programming Using RxJS
Learn Vue 1 JS introduction to simple reactive JavaScript
Taming Asynchronous .NET Code with Rx 3
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser