AppForce1: news and info for iOS app developers

Some SwiftUI and mostly boilerplate style code

November 30, 2021 Jeroen Leenarts Episode 57
AppForce1: news and info for iOS app developers
Some SwiftUI and mostly boilerplate style code
AppForce1: news and info for iOS app developers +
Help us continue making great content for listeners everywhere.
Starting at $3/month
Support
Show Notes Transcript
Jeroen Leenarts:

Hi, welcome to the fifth seventh episode of our podcast. My name is Nora Leenarts. I've been developing software for over 90 years developing iOS apps for over nine years and I'm running the Dutch cocoa has for over eight years. In this episode, I will talk about adding Doxy to an existing Swift package, how to digitally sign a PDF using UB key confirmation dialogues in Swift UI, mastering progress view in Swift, UI, Swift actors, how do they work and what kinds of problems to resolve. So let's get started. November is almost over when I'm recording this. And it's been an interesting month for me, first of all, started a new job, which is going great. I'm really enjoying myself, so no issues there. The other thing is that my wife, she suffered a concussion and she's now in her fourth week recovering from that. So it's bit of a, it's a bit of a handful for me to keep everything running while she is sort of like getting better every day. Just running errands, running the kids doing a new job, making sure that she's comfortable when she needs some help, because she can do all the things that you would normally expect from your partner. But she does get targets a lot more quickly compared to what she usually as in her energy levels. So getting through it, and it's almost Sinterklaas here in the Netherlands, not going to go into too much of the details in the history of this children's feast in the Netherlands. But I do know that my kids are really looking forward to it. My daughter she is now at the other side. She knows how things really are. But my son, he's still in the in the age group that you completely believe that Sinterklaas is real. And that there's like this old guy coming from Spain, bring presents to kids. So it's a crazy tradition in the Netherlands, you should look it up and have a laugh. And also have some thoughts on the historical context of this feast and how this actually fits in the current timeframe with inclusivity. And such things because it's a difficult topic in the Netherlands to talk about, just know that I'm on the site, that I really enjoy the feast for my kids. But I do note that we have to take into account the sensitivities that historically might be attached to some of the portrayal of characters with this feast. So just wanted to say that after since class, my kids will have the next best thing that's like birthday, because then my son will have his fourth birthday, a couple of weeks later. And once we survive that, then it's time for Christmas, even more presence, so even more crazy kids. So I'm going to be happy once it's January a second, because of course January 1 is also a festive day. And then yeah, we have survived the December month, and hopefully, only one piece. There's some trouble in the Netherlands. So with COVID Still, we have like a somewhat of a some restrictions are in place for at least three weeks. So hopefully, they will work and we can get out of these restrictions soon. Otherwise, they will be extended. But we'll just have to see. In the Netherlands, we're really dealing with the Delta version of the virus like the rest of the world, really. And now there's all this story of this Omicron fresh enough to fire. So I'm at the stage that I'll just do whatever the government is, has requested of us and keep a sane mind as much as possible. So that's a little bit of exercise, just enjoying my work, enjoying my family, and just making sure that we stay sane and in one piece here in the Netherlands. So let's just dig into the articles of this week. The first article I want to talk to talk about is adding Doxy to an existing Swift package. So during WWDC 21, Apple announced that they would be open source and documentation tooling Doxy. That's the tool that Apple used internally to build and provide documentation. And at the end of October 2021, the initial version of Doxie was released, available on GitHub scattered through multiple repositories, Apple hosts documentation about Doxie at its developer documentation sites, but there is still some things to figure out with Doxie. And in his article, Joseph explains his experience with using Doxie and how he can use to document an existing Swift package. It's a nice overview of the syntax that you need to use and some caveats that you need to be aware of and how you can make sure that the doc see comments, show up in X codes and actually help you in your development process. So almost to an article by pspdfkit. How to digitally sign a PDF using the YubiKey. So why did I pick this article? It's it's an interesting topic to me using the YubiKey to increase your security. For people that don't know a YubiKey is a hardware device manufactured by at Yubico that supports public key cryptography. It's the ciphers size of a small USB drive. And it's commonly used to protect access to computers, encrypted documents and sign files. There are several YubiKey models on the market. Some of them support USB connection, other support wireless connectify NFC in the article by piece PDF kits, they explain how you should prepare your YubiKey with some certificates, and how you can create an iOS project that integrates the YubiKey SDK, with the PS PDF kits PDF SDK, so that you can sign PS PDF, so that you can sign PDF files with BT it is difficult. So Rich can sign PDF files with pspdfkit, while using the YubiKey SDK, so a lot of things in there. But what was very interesting to me is that this is a nice example of how you can use the iOS SDK provided by Yubico. To integrate YubiKey into your own application. And I think if you have higher requirements for security, then using YubiKey is an excellent solution. And also, it's fun to just play around with the YubiKey. Because I have a couple at home myself, I use them for logging into various things. But I always want to get it into an IRS code base. And this is a nice sample to get started. And to get some experience in how you can actually integrate a YubiKey into your code. Better Felicia has a article called confirmation dialogues in Swift UI. It's a article in which he tries to replicate Apple's Reminders app. It's a nice overview of a specific dialogue in Reminders app. And what Peter tries to do is see if it's possible to replicate Apple's reminder app using just pure swift UI. And Firebase, because Peter is the developer advocates of Google Firebase. So he can be sure that he's using their own software, while creating this nice sample application. So it's a it's a nice overview that walks you through an implementation of a confirmation dialog for the edit screen of the sample that Peter is using. And he was pretty successful with replicating the apples Reminders app as closely as possible. But of course, there are still some things that Apple keeps to themselves. And that was difficult for Peter to replicate with just pure swift UI, as within Majid, has written an article called Mastering progress view in Swift UI. So many of your apps do heavy work on background threads, like networking, or data processing, and you usually want to display some sort of progress or activity to the end user about your work that's still ongoing. In this week's article, Majeed shows you how you can use progress shield to present both indeterminate and determinant progress and swift UI. So indeterminate progress is of course, just a spinner, usually, maybe with some text attached to it, and determined progress. That's like a progress bar. So that's, for instance, there's like 10 items of work of a total of 100 items done. So then you have a progress bar that is 10% completed, and you still have to wait for the rest of the progress bar to fill. So what magic does is show these kinds of activities slash progress indicators, and how you can use this view that might seem very simple, but it provides an excellent, excellent, but it provides an excellent level of customization and styling options, and Majeed hopes that he is able to show you that in his article. The final article of this week is by Johnsonville, on his blog, Swift by sono, it's about Swift actors, how do they work and what kinds of problems to resolve. Since the very first version of Swift, you've been able to define various types of either classes structs or enums. But now it's the launch of Swift 5.5. And its built in concurrency system a new type declaration cute has been added to the mix it's actor. So in John's article, you can explore the concepts of an actor and what kinds of problems that you would be able to solve by defining a custom actor type put in your own code base. So he goes into several topics. So being preventing data races, how the actor can prevent race conditions in your code. Of course, if you do things wrong, or if you actually do some things incorrectly, then the race conditions can of course still happen. But John clearly indicates access are a fantastic tool when you want to implement a type that supports concurrent access to its underlying state in a very safe way. It is important though, that you remember that turning a type into an actor will require you to interact with in an asynchronous manner. And that usually makes it requirements that such calls are a little bit more complex, and maybe even slower to execute. John hopes that this article gives you a few ideas on how you could make use of access within your code that you're working on. And now onwards to done these Monday morning tweets. Let's just start at the top Daniel Steinberg is playing with Swift package manager and developing in public. So he's working on an app that produces slides using code highlighting style to make producing videos quicker flow read codes, writes that he hopes that Don is doing well. And yesterday started work on new Mac OS app forge for any developers. It makes it super easy to create marketing images for your apps. Adam Rush is busy writing articles for his new swiftly rush blog site. And he hopes he had a great weekend. Jurek mentions that his app got approved today. So that's the advanced screen share app, and he posts a link to the in the App Catalog. If Ben Porat says good morning, Donnie, and we are celebrating Hanukkah this week. And he's still recovering from the booster shot that he got last week. And Kaku just launched an update starting to integrate his app with others through deep links. And hopefully, his users will appreciate that and calculus Japanese dictionary app for with collaboration features in it. Paul mentions that the finished product with Paul Hudson this week, it took way longer than he expected to read this book Francois says that he's Mohammed mentions that he's reading a new book. Obviously, it's a book by Tony practical corded, you should have a look at it as well. It's a great book, Trent is wrapping up some documentation for his strip to our pagination carousel package. It's available for use now. But readme still needed some attention. topload giraffe, made some markers for officials to the code and wrote something about the making of them. And they shoki finished a Jaffa project for college. So a lot of things people are doing, it's a bit all over the place, which you could expect because for the US listeners, they are aware that it's Thanksgiving. A lot of people have some time off. And then usually the fun begins with all kinds of weird and interesting things you can do with with source code provided cash through time between all the family engagements. So all in all, I hope everybody who's into this had a nice Thanksgiving. And if you're not into this, then hey, by all means enjoy December because that's going to be a festive month as well. I think there's some other holidays ongoing or happening soon or already have happened. So irregardless of what holidays you adhere to. I hope you will enjoy them and talk to you again next week.