AppForce1: news and info for iOS app developers

We have been using Xcode for such a long time…

February 01, 2022 Jeroen Leenarts Episode 66
AppForce1: news and info for iOS app developers
We have been using Xcode for such a long time…
Show Notes Transcript

How about that, some primordial version of what we now call Xcode has been released 20 years ago. That is just epic. Find out more on the history of Xcode and other new interesting articles now.

Articles mentioned this week:

Also mentioned a Twitter space I am co-hosting this Wednesday.

Donny Wals on Twitter

Swift Heroes tickets now on sale!

Runway
Put your mobile releases on autopilot and keep the whole team in sync throughout. More info on runway.team

Lead Software Developer 
Learn best practices for being a great lead software developer.

Backblaze Cloud Backup
Never Lose a File Again with the World's Easiest Cloud Backup. Back up your Mac or PC just $6/month.

Support the show

Please rate me on Apple Podcasts.

Send me feedback on SpeakPipe
Or contact me through twitter or Mastodon: @appforce1@mastodon.cloud

Buy me a Coffee or become a member of my podcast.

My book: Being a Lead Software Developer

Jeroen Leenarts:

Hi, welcome to the sixth sixth episode of my podcast. My name is Leenarts. And I've been developing software for over 20 years developing iOS apps for over nine years and running that code katfoe. For eight years. If you're an iOS app developer, you should listen to a podcast because it will keep you updated on interesting articles, conferences and events you might not have heard about. In this episode, I'm going to talk about hosting your Swift library docks on GitHub Pages, special effects with Swift UI, how to create asynchronous swift command line tool with async parsable commands, how to more gracefully handle non optional core data properties in Swift and Xcode through the years. Last week, it's been a really busy week for me, so I released a lot of content. And there's one specific thing that I really want to talk about a little bit. And that's the Twitter space thing that I did with a colleague of Stefan, it was really enjoyable. And I was kind of surprised with the amount of people that showed up in the Twitter space, because I was expecting like, you know, maybe five or 10 people. But in the end, we had like, 50 people listening. And I think at some point, we had over 100 people listening. So it's good thing that I didn't see these statistics while I was doing my Twitter space, because probably I would have caught some some stage right then and there. Because, yeah, it was a lot more than I expected. And also, I must say, the effects of the Twitter space, and they've been amazing. The tweets that we were sharing before the fence about Twitter space, they got a lot of traction. So that was a good thing. And yeah, we're gonna do it again this week. And we're going to focus the next Twitter space that we're doing this week, even more just on on the stuff that we want to talk about. So I hope you can join us again, this week, it's going to be Wednesday evening, in Central European Time. And yeah, who knows, just have a look at my Twitter and can find the Twitter space. Another thing that was quite interesting was a little script that I wrote for my website. It's really simple. It's a parsing of the RSS feed of my blog, and then are filtered on attack that it adds to all my interview episodes. And it's basically a listing of all those people. And I'm actually approaching 70 people that I've interviewed from a podcast, I was kind of shocked by the sheer number of people. And yeah, I must say that that was very cool to see that. In all the time that I've been doing this podcast, a little over a year now that I was able to just interact with so many people. So h1, I've looked at it, I will make sure to link it from the show notes. Because this specific page is not linked for from a website yet. It's app force one dotnet slash podcast slash interviews. On another note, here in the Netherlands, most Corona restrictions are now lifted again, there's still a few things in place, you can't go to the can you can't go to the restaurant or cafe or pub after 10 o'clock in the evening. In my specific case, not a big issue really. I'm just more looking forward to the rest of the year. Because one of the conferences I plan on attending swift Heroes is now selling tickets, and never really good deal if you want to get an online tickets as well. So check them out at Swift heroes.com. Also, I would like to thank my sponsor runway, check them out. They also have open positions. So look at a website runway dot team. So now let's dive into the articles of this week. First one I wanted to talk about is hosting your Swift library docks on GitHub pages. So the better for Xcode 13.3 dropped yesterday, when it came a released version of Swift 5.6. And a bunch of neat additions that the 5.6 release enables a feature that Joseph was really looking for are two things to capability for plugins to extend the commands available within Swift package manager, and a static hosting option that was added to the documentation compiler tool Doxie, that Apple announced an open source this past year, the two elements came together with the initial release of these fifth Doxy plugin, a plugin to Swift package manager that adds the ability to generate documentation on the command line with the command Swift package generate documentation. And what this command enables you to do is generate a static version of your doc see documentation. So that's probably something you can host on a static web service. So in article by Joseph hack, he will go into the steps that you need to take to make sure that you can host your doc see documentation on GitHub Pages, that's pretty much amazing documentation that you can then host on a free service. And I think this is going to be very interesting for a lot of open source libraries. Because of course the documentation is available within Xcode. But how cool would it be to just Have it navigable and searchable on the internet as well, right? There are still some caveats and rough edges around the generation of documentation and publishing it on GitHub Pages. And those are all nicely listed on the website by Joseph heck, check it out. And let's dive into this new Xcode better. And this is one of the coolest features that's actually in the new Xcode release. The second article I wanted to talk about was by Paul Hudson, the special effects with Swift UI. So I'm just going to read a little bit of this article. Everyone knows swift UI does a great job of creating standard system layouts with lists, buttons, navigation views, and more. And while it's really useful, all doubts that most people would call it fun. In his article, Paul is going to show you how to use fifth wire to build something fun, beautiful. And unlike anything you've seen before, you'll need at least Xcode 13 and iOS 15 or later, but you also need to download a single image from the site by Paul Hudson. So in his article, Paul details, a particle system that requires very few lines of code to implement, and the effects that it can generate are quite substantial and interesting. So just have a look through this article, maybe play with sample code a little bit, maybe follow along with the article yourself and just have a play with all kinds of cool things that you can do within iOS and Swift UI. So the third article I wanted to talk about is called How To Create asynchronous swift command line tool with async parsable commands by Anton Swift argparse package provides great infrastructure to write command line interfaces. And normally, a CLI tool processes tasks in synchronous ways, one command after the other, but sometimes when interacting with long running tasks such as communicating with remote servers, you want to give your users obviously like the feedback about the progress, and also to show any errors that could have happened during the processing. So currently, there are different ways to create asynchronous CLI commands using Swift argument parser such as run loop main run dispatch, main and dispatch, semaphore, these API's might regret but it's quite complicated to integrate into a command line interface in his article and tries to introduce you to a new incoming feature on Swift argument parser, which simplifies the writing of asynchronous CLI commands a lot by using async await keywords and converting your main entry commands into async main, you can call your asynchronous command sequence with simple API's, but still have things of course, happening asynchronously. So have a look at this article. It's quite a nice overview of an incoming feature on the Swift argument parser. And I think you'll like it, because once you get started developing your own small little command line utilities for development, it's it's amazing, it's a superpower, it allows you to automate a lot of things. The fourth article How to more gracefully handle non optional core data properties in Swift is an article by Justice quires, about some strategies that you can use to make sure that non optional core data properties don't crash your app and how you can deal with these in a relatively graceful manner. So if you're dealing with Core Data a lot in your code base, and you're having some runtime issues with the occasional random crash, have a look at this article, because there's bound to be some tips tools in there that you can immediately apply on your codebase to improve your quality of life with Core Data. And the final article of this week is a sort of, well throwback article. It's by a Martian craft. It's written by Corey Bohan. And it is Xcode through the years. So it's a nice overview of all the Xcode versions that we have seen. Right from the start when Xcode was released, initially, almost 20 years ago. Of course, we are talking a little bit about the predecessors of Xcode swell, mainly project builder. And it's just awesome to see how right from the start within the IDE that Apple produced. There were already some concepts in there that we're still using today, have a look at this article. There's a lot of screenshots in there that allow us to just have a quick cursory overview of everything that has happened to the ID that we use every day. And now to wrap things up. Let's have a look at Tony's Monday morning tweets. First off, I was again one of the first people to respond to Danny's tweet. And my plans for this week are to write an article a newsletter record a video and a podcast episodes publish a newsletter, you can sign up to that point from a Twitter profile onboarding a new team member co hosting a Twitter space and running through a few tutorial to check correctness and then there's of course the mandatory meetings that you have to attend goal is to have a lot of fun while doing that. I feel that Nemecek came to the realization that promoting his own projects on this block is quite a good idea. So he put in Prescott iOS feeds in the apps catalog and Django blocks on his blog. Daniel Messiah published a menu bar huge player to the Mac App Store. He needs to want to keep listening to DQ mix even when he abruptly quits his browser. So it's free by the way, so have a look at that one. Tim is enjoying some time off from work and study after passing his graduation presentation and defending it successfully. It's been a long fun and interesting and somewhat happy four years combined to work and study but he's caught there. Congratulations man. Piazza Janeski is working on some swift UI app for the next weeks. His target is to use 100% Swift UI without UI Kit code for the MVP. So he hopes he can make it. And he's definitely planning on having a lot of fun. Francis Fang mentioned that he got his new app approved a bookmark manager for Mac OS and iOS earlier today. And he's now working on a new feature for the iOS version commutes mentioning that he's adding subscriptions to his app receipts see, using revenue cat, and he's probably going to enjoy that one because revenue cat has an awesome API flow, right? Skullz mentions that he had an awesome weekend. Last week, he hacked away at an app, an Xcode extension, really, that automatically localize the Swift UI code. You just need to select the Swift UI view or a file and specify the language xe localize. It just does everything else. Unreal. Eskalene has been working on a new app, and he released it last week. It's the Mac version of email me app. So you can find more about this app. At email me app dotnet, Charles Albert mentions that he publishes new websites where he shares his bike packing and backpacking adventures. And he really likes that he's able to combine code design and his hobbies in one package. So if you look at all the tweets on Danny's Monday morning tweets, it's basically people adding new features and launching them to the App Store. And yeah, that's just amazing to see small little tweaks that just make the life of all their users much better. So I'd say keep at it and keep on pushing. And I hope to talk to you again next week. If you have any feedback, please let me know on Twitter, at Air Force One, you can send me a message there or send me a DM they're always open. Talk to you again next week.