AppForce1: news and info for iOS app developers

New Xcode and Swift, Async Await is also still a thing

March 21, 2022 Jeroen Leenarts Episode 73
AppForce1: news and info for iOS app developers
New Xcode and Swift, Async Await is also still a thing
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

The Swift ecosystem is maturing every month. And with the latest releases by Apple containing Swift 5.6 is a big one in this regard.But mostly this week I am talking about stuff I enjoyed.

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.

Support the show

Rate me on Apple Podcasts.

Send feedback on SpeakPipe
Or contact me on Mastodon: https://hachyderm.io/@appforce1

Support my podcast with a monthly subscription, it really helps.

My book: Being a Lead Software Developer

Jeroen Leenarts:

Hi, and welcome to the 73rd episode of my podcast. My name is new Linus and I've been developing software for over 20 years, developing iOS apps for over 10 years, and I'm running Dutch Cocottes for over nine years. If you're an iOS app developer, you should listen to my 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 fetching remote data with async await and recent and older system versions, how to modularize existing iOS projects using Swift package. Swift org released the source of their website, and swift 5.6 has been released, objective c.io have updated their advanced swift book into the fifth edition. And it's all in scope by Xcode tips. And panic block. No four has been updated, which is an awesome text editor. So let's get started. So it's been an interesting week, yet again. So I think I'm saying that every week that it's an interesting week. But yeah, it's just now full hands on with preparing for a conference that we'll be doing in three weeks time from now, all the other arrangements have been made. Now we just need to follow through and make sure that the presentation is like 100%. So that's the focus of this week. And also, we need to keep all the other work going. So for me, that's like podcasting, I'm doing a Twitter space on Wednesday, making sure that other content is being updated, just my regular day job needs to keep on going as well. And it's going to be an interesting week for my daughter as well, because she'll be having a trial week at a new school. So really looking forward to that one. But it's a lot of driving and bringing and fetching back and forth for my wife and I. But hopefully in the end, it will be all worth it. And my daughter is hopefully starting the new school year after the summer in, in a classroom with kids that allow her to better develop herself in another area. What I'm really looking forward to is some some time off in the next couple of months, we'll have like all these small weekends that are a little bit extended with national holidays here in the Netherlands. And what's also going to be interesting is probably in the next couple of weeks, I will be meeting some people who have been working with for over six months already. And that's the first time that I'm actually going to be meeting them in person. So really looking forward to that one. So just a lot of stuff happening. Let's just keep it simple this week, because I have plenty of stuff to do. And make sure to sign up to my newsletter to stay updated on anything that I'm working on as well. For instance, the tech Rama conference is also happening. And they want me to submit my travel plans with them so that they can actually make sure that they have a place to stay. And that I can actually attend the conference and be well rested while I'm presenting there as well. So very much happening right now the in person events. Yeah, it looks like it's going to be a thing this year. There's some plans there. And yeah, it's already feeling a little bit overwhelming, but in a good way. So really excited. And it's just something that needs to happen right after two years. So the first article, fetching remote data with async await and recent and older system versions performing asynchronous task has always been part of the game when building applications for Apple systems. Up until not that long ago. closures and completion handlers have been the way to handle asynchronous calls at definitely better alternative came with the arrival of the combined framework. And it's declarative API where a series of operations creating pipelines has been offering a different approach. But the real revolution in the humble opinion of Gabriel actually occurred in Swift with the async await pattern, which lets me transform the way you write asynchronous calls. The entire async await concept introduced in WWE 21 constitutes a big but relatively easy chapter that is really worth the time to study. It's the future of dealing with asynchronous work and swift. So adopting it is not a matter of if but when, with that in mind, Gabriel is focusing on quite specific technique that is described in his post, how to fetch data from a remote server using async await. Well, we've seen multiple articles on how we can do this. So what gave to actually add in his blog post is how you can deal with async await codes in older system versions. And I think that's the value in his article. So async await has been back ported to all the system versions, but there are some small things you need to be aware of. And that's something that Gabriel has looked into and describes in his article. If you've been listening to my podcast for some time, you probably have heard me mentioned a tool called Twist, but to is not the only way that you can do a certain thing. So the next article by certain w is about how to modularize existing iOS projects using Swift packages. So modular programming is a software design technique that breaks your project into smaller maintainable modules, which promotes separation of concern and reusability. In his article Salone will show you how to modularize an iOS app using the Swift package manager modularizing your app may sound technical and complicated, but in reality, it's just as easy as grouping your files in a folder. And you don't need to modernize everything at the very beginning. Of course, you can do it incrementally in his article, basically certain takes a piece of code. And in five small steps, he explains how he can modularize your app. So first, you need to create a new Swift package within your projects, move the files from the main project to the newly created Swift package, configure Swift package manager to support the platforms that you need, and add Swift package back to the main project, then you can play around with the access level of classes and methods like private and public to make sure that everything starts compiling again. And that's pretty much all you need to do. But what's nice about saloons article is that it's really hands on with a sample of sample codes. And, yeah, you should definitely check it out if you want to investigate using modularizing your code bases with Swift package manager, but also make sure that you look@tuas.io and important announcement made by the swift.org website is that their entire website is now open source. Of course, this announcement is sort of trumped by the launch of Swift 5.6 The day before, but still, make sure to check out these articles on the swift.org website, because there's some interesting bits in there and a lot of detail and a lot of stuff you can link to to make sure that you understand everything that is new in in Swift 5.6. And the open sourcing of the swift.org website is really cool, because you can really see how this website is set up. Because I think it's a website that receives quite a number of faces from from Swift and iOS developers and Mac developers. So yeah, it's just interesting to just have a look at it and see how swift org as a website has been set up, if you want to learn more about Swift 5.6 Have a look at objective c.io and found swift because they recently updated the book to be in the fifth edition, and they have full support, and they're fully up to date with the current version of Swift. So they updated the entire book to 5.6. And if you are an owner of a previous edition of this book, you can just download the new version of this book without problem and make sure that you are able and up to date with Swift 5.6 through their material. Next topic is Xcode tips. That's a nice website with all kinds of Xcode tips that you can use. It's created by Dominic Houser, and most recent updates that he put on his Xcode tips website is edit all in scope, there's a nice graphic representation of what this actually means to you, and how you can use this in practice. So have a look at the expo tips website because there's plenty of interesting stuff on there and a link to his website before. And so that's already the final article that I wanted to mention in my episode. One thing I did want to mention is that panic.com have released a NOFA online, and they have a nice discounted price on it. Nowadays, I'm in no way affiliated with them, but I use their products myself and I really love Nova as a text editor. And the biggest change that he did to the text editor is that there's now some sort of debugging support for a number of scripting languages. And the scripting debugging interface that is in Nova is pluggable. So hopefully soon we will get some interesting additions to Nova in support for other environments as a runtime debuggable environment. So check them out, because I think if you haven't seen their editor yet, Nova, you will not regret having a look at it. So that's already it for this week, sign up for my newsletter to stay up to date on other things that are published. And if you have any feedback or questions, please reach out on Twitter at app Force One. And I'm always happy to respond to any questions or suggestions that you might have feedback or comments or issues. You might have read my content, please let me know because I'm always looking for feedback and an interaction with people listening to my podcast. Talk to you again next week.