Send mail in SwiftUI
Reading time: 2 min
This recipe shows how to send mail from SwiftUI. You'll build a MailView
by wrapping MessageUI's MFMailComposeViewController
in a UIViewControllerRepresentable
. You'll be able to:
- Determine if you can send mail or not.
- Pass subject, message and recipients to the view via a binding.
- Attach files to the email.
- Receive success or failure result after sending the email.
SwiftUI Splash Screen
Reading time: 1 min
This recipe shows how to add a Splash Screen to your SwiftUI app! You can specify a custom view that will show when your app starts and then dismiss itself automatically after a certain period of time.
Networking with Background Tasks in iOS 13
Reading time: 4 min
This recipe shows how to perform a GET request in the background using BGTaskScheduler
and BGAppRefreshTaskRequest
. For whatever reason, this has way too many gotchas:
- You can't use Alamofire, you have to use
URLSession
. - You can use
URLSessionDataTask
, it has to be aURLSessionDownloadTask
. Why? Beats me. - You can't use callbacks, you must use delegates to track request progress and completion.
Infinite Scroll List in SwiftUI
Reading time: 4 min
This recipe shows how to implement infinite scrolling list in SwiftUI. The result code is a single view, that can be used just like any other List
. It renders data from a collection via a ViewBuilder
and triggers loading when the list is scrolled to the bottom.
File Tree with Expanding List in SwiftUI
Reading time: 2 min
This recipe shows how to create a simple file tree using SwiftUI expandable list. This feature is useful for representing any hierarchical data structure, allowing the user to expand and collapse branches to navigate the tree.