Test-Driven Development in Swift with Gio Lodi
In this episode, Leo is joined by Gio Lodi, author of Test-Driven Development in Swift with SwiftUI and Combine. We talk about how to do TDD with Swift but also SwiftUI and Combine as well as the new features revealed at WWDC 2021 like Async/Await, Xcode Cloud, expected failures, and test repetitions.
Guest
Podcast Survey - https://brightdigit.typeform.com/to/yVZN2gIT
Youtube Video - https://youtu.be/OM9jbAbUXZ0
Youtube Video - https://youtu.be/OM9jbAbUXZ0
Related Episodes
- Episode 15 - Test-Driven Development with Joshua Greene and Michael Katz
- Episode 24 - Continuous Integration with Kyle Newsome
- Episode 62 - Local Database Storage on iOS with Aaron Douglas
- Episode 72 - Functional Programming with Daniel Steinberg
- Episode 80 - A Tour of Software Testing with Christina Moulton
- Episode 81 - Awaiting for Async with Vincent Pradeilles
- Episode 92 - WWDC 2021 - Platforms State of the Union with Peter Witham
Related Links
- How to test Swift async/await code with XCTest by Gio
- xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros
- What's a Test Double?
- What's New in Testing talk by Gio from Melbourne CocoaHeads - June 10th 2021
- Dependency Inversion Principle
- CombineAsyncually
- dimsumthinking.com by Daniel Steinberg
- Leo Dion - Combine-ing the Old with the New from 360iDev 2019 (on creating Publisher Factories/Publicists)
- Xcode Cloud Beta Signup
WWDC Sessions
- Embrace Expected Failures in XCTest
- Meet Xcode Cloud
- Explore Xcode Cloud workflows
- Customize your advanced Xcode Cloud workflows
- Diagnose unreliable code with test repetitions
Sponsors
AppFigures
The tools you need to monitor, optimize, and get more downloads.
There's a lot of demand for apps right now, so it's a really great time to give it a try. It's easier than you think.
The guys who run it are indie devs who had a need and created a tool. 11 years later, it's an all-in-one platform for developers who want to get more downloads and make more money with their apps.
The folks at Appfigures have easy step-by-step guides and intuitive tools to do that, which many indie developers are using to get more downloads:
https://appfigures.com/resources/aso
Also check out our episode with CEO Ariel Michaeli:
https://share.transistor.fm/s/15b7ff63
Try Appfigures for free, and if you like it use the special link to get 30% off for the next 3 months:
https://appfigures.com/account/upgrade?p=empower3030
The tools you need to monitor, optimize, and get more downloads.
There's a lot of demand for apps right now, so it's a really great time to give it a try. It's easier than you think.
The guys who run it are indie devs who had a need and created a tool. 11 years later, it's an all-in-one platform for developers who want to get more downloads and make more money with their apps.
The folks at Appfigures have easy step-by-step guides and intuitive tools to do that, which many indie developers are using to get more downloads:
https://appfigures.com/resources/aso
Also check out our episode with CEO Ariel Michaeli:
https://share.transistor.fm/s/15b7ff63
Try Appfigures for free, and if you like it use the special link to get 30% off for the next 3 months:
https://appfigures.com/account/upgrade?p=empower3030
- For edge cases you don’t even know you have
- Protects from outages your team hasn’t seen yet
- Saves you time on future maintenance
- As well as new features released by the app stores
- Empowers your marketing teams with clean, reliable IAP data
All that to say, RevenueCat handles all the headaches of in-app purchases so you can get back to building your app. Try RevenueCat today at revenuecat.com.
TDD Thoughts from WWDC 2021
- Is Xcode Cloud Ready?
- Who's the target audience for Xcode Cloud?
- On Testing with Async/Await
- Combine vs Async/Await
- How to expect failures in Xcode 12.5
- Testing Repetitions
TDD, SwiftUI & Combine
- Why do TDD now in Swift?
- Difficulties adopting it later in project
- TDD in SwiftUI vs UIKit
- Isolating Systems with TDD
- What are the different types of Test Doubles?
Social Media
Email
leo@brightdigit.com
GitHub - @brightdigit
Twitter
BrightDigit - @brightdigit
Leo - @leogdion
Reddit
Leo - /u/leogdion
leo@brightdigit.com
GitHub - @brightdigit
BrightDigit - @brightdigit
Leo - @leogdion
Leo - /u/leogdion
Credits
Music from https://filmmusic.io
"Blippy Trance" by Kevin MacLeod (https://incompetech.com)
License: CC BY (http://creativecommons.org/licenses/by/4.0/)
"Blippy Trance" by Kevin MacLeod (https://incompetech.com)
License: CC BY (http://creativecommons.org/licenses/by/4.0/)
- Bertram Eber
- Edward Sanchez
- Satoshi Mitsumori
- Steven Lipton