AppForce1: news and info for iOS app developers

Come join me at AppDevCon or BuyMeACoffee

June 21, 2022 Episode 84
AppForce1: news and info for iOS app developers
Come join me at AppDevCon or BuyMeACoffee
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 Chapter Markers
Jeroen Leenarts:

Hi, and welcome to episode 84 of my podcast app Force One. My name is Leenarts. And I've been developing software for over 20 years developing iOS apps for over 10 years, and I'm running vertical cash for over nine years. If you're an iOS app developer, you should listen to my podcast because we'll keep you updated on interesting articles, conference and events you might not have heard about. In this episode, I'm going to talk about Swift UI 22 in numbers and future search, capturing text within images using live text API and swift UI using the Swift UI for image renderer. From strings to data using parsable performance style, the best change to come from WWDC 2022. And the final article removing dependencies one weird trick for increasing happiness, a lot of stuff going on again, this week, I'm preparing myself for a talk this Friday at app dev comm to check them out, if you're still interested in going there, and you don't have tickets yet, they still have some tickets available, I think, looking forward to meeting a lot of interesting people on site at the conference myself. Amongst them is Michael flareup, from the iOS app icon book, very much looking forward to meeting him. But also a great number of other people that have already seen on the either speaker list, or that announced online that will be participating at the conference. So to those come to the conference, looking forward to meeting you all this Friday. And I will try and incorporate some of my experience is there to my podcast. But I just have to see how this will work out. On another note. In my day job, we're preparing ourselves for the third quarter of the year, it's always a bit of a hectic period to figure out what we will be doing the next three months and what will be the effects of that of our day to day work. But I do know that amo Stefan and I are really working hard on getting some plans that align with the company goals. And I do know that we are going to be creating a lot of interesting and cool content, I cannot share yet what we will be sharing Exactly. But it is going to be some new things for the three of us as well, which is cool in itself. And something else that I'm experimenting with right now is to do something that Michaela Quran is doing as well is to livestream working on some specific topics. So after my podcast recording later today, I'm going to do an ad hoc session online on my Discord server to like screen share while try and create an outline and a slide deck for my presentation on Friday, I have a very thorough idea of what to do, I have some notes on hand available of the concept of my talk. But now I need to create the actual content, which is always interesting, I think, because it's a process and I only have like a couple days remaining. And I want to make sure that I have a good slide deck with good artwork, and that it's like fitting within the time slot that I have because I have a short time slot 30 minutes. And it's always fun to try and create a presentation that fits in this timeframe, right, it's always a chance for me at least, I always go along with presentation. So I have to make sure that I have a condensed package that I can deliver on time. Not too long, not too short. So let's just see how that works out. And what I think of the experience afterwards. Another thing that's quite fun, actually, is that my daughter is having her annual field trip with her school class, it's going to be the last field trip she will have with the school that she's at right now. Because after the summer, she will be switching schools. I shared that already in one of my previous episodes. But hopefully when she is started to new school, after the summer, she will have a better time and a better experience. Yeah, just interacting and growing herself as an individual. So let's just dive in on the first article. And then afterwards, I will see if there's any content that I'm missing that I should share beyond the articles that I've wanted to get your attention on this week. So the first article is swift UI 22 in numbers, and if you charge, it's a fun piece by half year. I hope I pronounced that correctly. It's a fun piece back half year. And it is about Swift. Why 22 In Numbers, as the title already says, but it's like a graphical representation of the amount of new types, the new initializes methods and product properties. And a bit of a look at what this year's WWDC will be the year of So 2019 has been the year of the birth of Swift UI 2020 has been the year of lazy grits, better scroll support and new Swift UI lifecycles for your app scenes, which is unmatched geometry effects. 2021 has been audio graphs tables for MacOS Timeline view async images and other async features search in lifestyles and Canvas shoe. And 2022 has been the year of charge sharing A badly needed navigation few improvements and exciting new layer protocols, tables arriving to iOS improvements for UI kit, app kit, integration and news window scenes. A new menu bar scene, eager grits, as opposed to lay scripts, and focus sections are now supported on Mac OS. What's really interesting is that FDA has done a representation of all the new additions and changes to Swift UI by using the Charts API. So he actually renders out the graphs to compare the changes year over year. So it's graphs comparing 2019 up till 2022. And, yeah, it's just a fun read. It's a lot of bar charts. But also, at the end of his article, he shares a gist where you can actually have a look at the source code that generates these charts. And I think you can actually run this. I think I run this in, I think it's, it's a playground bit of code, or you have to run it in an Xcode project, but it's quite easy to incorporate and get going. I did it myself. And it's a fun little exercise to also with this article, explore the Charts API just a little bit. The second article by Simon on App coda is titled How to capture text within images using live text API and swift UI. So last year, iOS 15 came with very useful features known as live text, you may have heard of the team. Term OCR, short for optical character recognition, which is the process for converting an image into text into machine readable text format. So what is live text about live text is built into the camera app and photos app. If you haven't tried out this feature, simply open the camera app. When you point a device camera and an image of text, you will find a live text button at the lower right corner. By tapping the button iOS automatically captures the text for you, you can then copy and paste it into other applications. This is very powerful and convenient for most use. And as a developer, wouldn't it be great if you can incorporate this live text feature in your own app? In iOS 16, Apple releases to live text API for developers to power their apps with the live text feature. So in this tutorial assignment, you can see how you can get going with live text API. Within a swift UI based code base. Simon goes over a number of classes that are related to capturing machine readable codes and textbook phishing kits. It's a good overview to get the basics right. And then he dives into like actual working code that allows to use the data scanner view control in Swift UI. The fun bit is that it's a full featured example with some nice images in there using phishing kits to make sure that you can actually scan text from images and use those in your own applications. The code is included with the link on GitHub, so and it's a good advertisement for his mastering swift UI book that is updating for iOS 16. So if you buy that book, you can get the current version of the book, but later this year, you will get a free update to the iOS 16 version of this book. The third article is by Daniel Satie, using the Swift UI for image runner, Swift UI four introduces a new image renderer that can be used to run any swift UI view as an image in iOS 16. Mac was 13 to us 16. And watch was nine. So let's take a quick look in the article by Daniel on how this all works. In this article, you will see a code sample of using the image renderer and how it actually looks for the screenshots and how you can improve the snapshot resolution that you get out of the image renderer so very practical, how to guide that allows you to get started with the image renderer in Swift UI on iOS 16. Swift UI for image renderer does a great job of rendering snapshots of any swift UI view. It's available for the latest iOS and Mac OS and TV OS and watch OS versions, and you can test it in Xcode 14 better. The fourth article is by Brett Orland from strings to data using parse performance style. The venerable NS formatter class and atmosfera subclasses are an objective C based API that is most well known as the go to method for converting data types into strings. One of the lesser known features of the API is that these same formats can be used in reverse parse string into their respective data types. Apple's modern straight replacement system for formatter is a set of protocols format, style and parsable format style to format handles the conversion to strings and the letter strings to data. Now, some good code samples in the article by Brett and I'd recommend that you have a look at this article. If you want to get started with past performance style. Joe Morgan has an article on what he thinks is the best change to come from WWDC 2022. And it's actually not a technical or an API change. It is in sense a technical change but iCloud enabled apps are now allowed to be app transferred to another developer. Now if you're familiar with Jordan Morgan's personal story, you will know that when he or I wanted to sell his application spent stack. So it was acquired. It took nearly four months for him to get all the things related to this transfer settled. This was being done by an experienced buyer for his app who usually had things done and dusted in like one week. And in Jordan Morgan's case, it took so long, because he didn't just sell spend stack, he had to sell his entire limited liability corporation, dreaming and binary, which he had owned for many years to that point. So instead of transferring the app, he had to manage a slew of logistical hurdles that neither he or acquirer wants to otherwise, nowadays, a lot of indie developers create a limited liability corporation per app. This is a US tax construct. But the same holds true for other countries around the world. Why was this required with an LLC or other legal construct, if you had then created an app and you use cloudkit, you could sell the app with the legal entity attached to it to someone else that was like a package deal, you sell the company, you sell the app, use cloudkit. And then you have to sell your company as well. But now with this change for Apple, you don't have to do this anymore. Now you can just create an app with cloudkit support enabled under your own name, and be able to transfer it into the future to some other owner if you would want to because incorporating as a company as a legal entity is quite a lot of work. And there's also cost involved. So it actually raised the barrier of entry. For people wanting to get started with an iOS app, while cloudkit is actually meant to make the barrier of entry into iOS development and Apple development. In general, lower because you don't have to worry so much about the backend synchronization side of things, right. So the long and short of the entire announcement by Apple in relation to cloudkit transfers being enabled for apps is that you don't have to worry about using iCloud sync anymore, because you can now transfer your app to another company, which is a big benefit and the big updates in the App Store connect implementation. The final article I have on my podcast this week is by Josh Adams removing dependencies one weird trick for increasing happiness. I'm just going to read his startup article for Batum so that you have an idea what his article is about. No app is an island. Most apps use code from third parties. Our version or openness to dependencies is a cultural trait that varies among software development communities. For example, the JavaScript community is quite open to dependencies. A website built with JavaScript might have hundreds or even 1000s of dependencies. This openness sometimes causes problems, like the notorious left pet issue, my community of Swift developers feels aversion to dependency counts in the hundreds or 1000s. The seven iOS apps I've worked on in the past 10 years have been between one and 27 dependencies. And understand that these numbers are quite typical. In this article, Josh shares his ideas about iOS related software dependencies. He starts with listing a number of problems that he sees with dependencies to quickly recap those dependencies sometimes stop being maintained. Dependencies usually contain more functionality, and therefore code than any particular apps use case requires. Dependencies may lack certain functionality that consuming apps require. Some dependencies are released via licenses, such as the GPL that impose requirements on consuming apps that you do not want. Dependency code typically resides in its own GitHub repository, not in a repository of the consuming app. Thus, you have some more work getting started with these dependencies. And dependencies can negatively impact the performance or stability of the consuming app. And to paraphrase Apple each additional third party dependencies that your uploads, adds to the launch time of the app. In this article, Josh lays out his framework for assessing the current and new dependencies in an app's code base to assess whether or not you want, or you want to keep these dependencies. And basically, there's a number of true or false statements that you can hold against your dependencies. And if any of these indicate that you should remove the dependency, you could actually go ahead with removing the actual dependency. After laying out his framework, Josh also describes ways of getting rid of dependencies. Sometimes it's just as easy as removing it. Sometimes it's just re implementing the bit of functionality that you need in your app. And there's some other things that you might consider, at the end of his article, he has a results section. And there he indicates that removing dependencies has improved the codebase of the app that he's working on in many ways, so definitely check out the article. But Josh, it is a very well laid out reflection on on what dependencies for iOS developers are and what implications they have and how you could think about actually incorporating these dependencies into your codebase. And that's the final article of my podcast. If you have any questions, comments or feedback, please reach out on Twitter, or better yet, join me on Discord. You can access that discord group by sending me a DM on Twitter if you cannot find the invite link yourself. It's also in the show notes. But even better If you want to support my podcast, consider buying me a coffee by going to buy me a coffee.com/air force one Derek and buy me a coffee. Or even better yet become a member of a podcast, I have two tiers available are five euro tier and the 50 Euro tier. That's a big difference. The five year old tier gets you access to the discord community that I created for my podcast, and the 50 Euro tier gets you access to the discord community as well. And you get the opportunity to book a half an hour call with me to discuss anything that you'd like about podcasting, software development, or other professional related topics that you might want to have a discussion about. I'm very much open to anything you'd like to share and something that you need some help on. And I really look forward to having people join me on my Discord server to have chat, but also to interact with me while I'm preparing for my recordings and all the other things that I do these days. Also as an extra on my buy me a coffee page, I listed my book being a lead software developer, if you become a member of our podcast, you get a 50% discount on my book. If you reach out to me on my Discord server itself, you can actually get a much better discount if you'd like. So come talk to me I have something special there for you at a steep discount, provided you are a member of my podcast, I've set a goal for myself for 300 euros on buy me a coffee. And with these 300 euros, what I'm planning to do is buy myself a new microphone, it's a microphone that I've been looking at for ages by now. It's really cool thing. It's a sure 87 A if I'm correct. And it's a condenser microphone in a handheld form factor that has a lot of handling noise dampening, and that should improve the audio quality of my podcast significantly. Just a great goal to have and something meaningful to strive for, while getting people on board with the Borromeo coffee thing for my podcast. So next up for me is app DEF CON, I'm really looking forward to this conference next Friday. And after that I'm going to 360 I def, I already registered myself for the Slack community for both of these. So if you go to this conference, and you sign yourself up to their slack communities in advance, you can have a chat with me there if you'd like I would very much love for people to reach out to me to just share why they are excited to go to these conferences. And most of all, I look forward to meeting people in person that I've been following online for a while. And I think that's like one of the best things about conferences these days, again, to be able to just meet people that you haven't seen for a while or people that you're going to meet for the first time that you're a fan of the content and then get to interact with them in person. I looked at the speaker lineup for at DEF CON this week. And there's just a number of great people on there. And as already mentioned, microflow roop is on there. But also people like Tim Condon Sharma Shali, Axl roost on Tom fillet Donnie walls, Ellen Shapiro, Jody Brown, pizza freezer boss, Brooke Medina, Monica, Benoit, petite, Mark Graham, Johan, Pamela, Mohammed, Jennifer, and a whole bunch of other people that are awesome to meet in person. So if I haven't named you by name, that doesn't mean that I don't think you're awesome. It's just that I'm just not aware of you as an individual yet. So at the conference, walk up to me, have a chat with me and tell me what you're working on. I just love to know what it is that you are doing each day and why we're at the app DEF CON conference. So see you there on Friday. And just a heads up, I'm bringing my DGI mix so I can record myself, I may be you just on the spot to have some extra additional content to get a flavor of the conference experience at DEF CON and that we can just share that on my podcast. Last Wednesday, I also did a presentation for the coca hats meetup at the stream office. So that was pretty much everything combined. In all, in one event was a lot of fun. I was well received. And the meetup itself was very much a meetup that felt like the old style meetups that we had before. The whole COVID thing happens. So it was very enjoyable. And all the participants that were in attendance, were very adamant about how much they loved the meetup and how much they love being there and the whole vibe of the evening. It was a presentation about web auth and what you need to know about past keys. There were some issues with the live stream at some bandwidth related issues. So there is not a publicly available recording available just yet. But the recording of the presentation went well and I know Marco from cokehead Snell will work hard to get this video edited and published on the YouTube channel of coca Hudsonville so you can be sure that I will make sure to share that once it is available. My slides are already available on speaker deck I will put the link in the show notes so that you can have a look at the slides themselves already. There's a lot of fun ailable links in there if you want to get started with web auth and, and pass keys, a special shout out to Tim Condon because he quickly after WWDC wrote, like a hack together version of web auth. And on vapor. webauthn is of course, a standard that's been around for a long while. And there are standard and stable implementations available, but just not yet for server side Swift, but hopefully there will be a server side swift version of webauthn implementation available soon. And, yeah, once my presentation is available, I will be sure to share that with you. Something that I haven't spoken about a lot is the great new feature that was released on the Swift package index. And that's the actual generation and hosting of Doc see comments on your packages that are listed on the Swift package index, I've been trying to help out the Swift package index. So that's Dave and spend a little bit I don't have much time available to just try and implement some things on the Swift package index really small things. But it is an enjoyable experience to be able to help out Dave and spend on any way I can by just spending a little bit of pull requests here and there, or maybe just chiming in on any of the features that they're building on. And currently, I'm trying to get my hands on some feature development follows fifth package index that involves some statistical information about key words being used on the Swift package index. So hopefully, I can get that together, I need to really learn more about vapor. Because the whole Swift package index, the site itself is based on vapor. So server side Swift, which is really cool, it really helps me develop some additional skills that I can later on use when doing software development for the iOS platform. And, yeah, I just want to call out to you to make sure that you get your packages listed on the Swift package index, and that you make sure that you enabled doc see comments on the Swift package index as well, they have a really great announcements blog post available that will link to, and, yeah, it's just really easy to get listed there. But also to get your documentation hosted there. So it's not a hassle on you anymore. And you can just share your great work of any open source frameworks that you're creating with the developer ecosystem. And now I really should start wrapping up this episode by now because I've been talking for 20 minutes. If you have any feedback on my episodes, anything that I'm doing, reach out on Twitter, send me a DM, or better yet, join me on my Discord server and send me a message there. I'd love for you to interact with me. And yeah, I'm just looking forward to all the things that will happen in the rest of the year. I have some plans laid out for myself and also work related. I have some great plans laid out for myself. I'm gonna dig into vapor codes a little bit and I'm going to make sure that I wrap my head around so whip off and a little bit there. So see you on at DEF CON for 360 I def and talk to you next week. Bye bye

Intro
Michael Flarup App Icon book
AppDevCon
SwiftUI ’22 in Numbers (and a few Charts)
How to Capture Text within Image Using Live Text API and SwiftUI
Using the SwiftUI 4 ImageRenderer
From Strings to Data Using ParsableFormatStyle
The Best Change to Come From W.W.D.C. 2022
Removing Dependencies: One Weird Trick for Increasing Happiness
Discord
Buy me a Coffee
AppDevCon, come talk to me
CocoaHeadsNL talk: WebAuthN and PassKeys
Swift Package Index DocC
Wrap up