AppForce1: news and info for iOS app developers

Note taking, presenting and then solving crashes…

October 05, 2021 Jeroen Leenarts Episode 49
AppForce1: news and info for iOS app developers
Note taking, presenting and then solving crashes…
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, and welcome to the fortnight episode of the app force one podcast. My name is Leenarts. And I've been developing software for over 19 years developing iOS apps for over nine years, and I'm running the Dutch cocoa has for over eight years. If you're an iOS app developer, you should listen to my podcast because it will keep you updated on interesting articles comp, conference and events you might not have heard about. In this episode, I'm going to talk about writing effective software development notes for future you how I prepare presentations and workshops, X impact access crash error, uninstalling and solving it analysis of CV two zero to 130860. Solving CPU usage crisis with X codes, energy organizer, multipeer connectivity tutorial, and programmatic navigation in Swift UI. And, of course, our wrap up my episode with Danny's Monday morning tweet, I've got a couple of different links in this episode. A one is about notetaking. And the other one is about creating presentations. You could say that this is due to me preparing myself for my new job that for some reason, that also exposes me to a bit of a different content, but also related to all the stuff I need to do to wrap up my current role. Because I need to transfer a lot of knowledge, I have to talk about a lot of things. And I have to check my notes very frequently and make sure that I present everything in a succinct fashion to all my colleagues that I will leave behind. So yeah, I think that's interesting. And also the both of them are skills that are important for you as a software developer. So yeah, that's why I included them. And I hope you liked them. And if you look at my last week, it's been very busy. I've been busy with creating all kinds of documentation, as I already mentioned. And I'm just getting all these invites in my calendar of colleagues that that just want to see me like one more time before I wrap up the month of October, even though it has only started for four days now. So let's just quickly dive in and see where we'll end up. So the first article is called Writing Effective software development notes for future you. So have you ever found yourself saying I feel like I've solved this type of issue before, but it can't remember how I did it? Have you found it difficult to come back to task once you've been interrupted, these issues can be solved by taking notes during development. Kyle started experimenting with note taking quite a few years ago, and he found the benefits to be quite substantial. It may sound just like another thing for you to do. But with this article, Kyle hopes to show you how you can be very effective with little efforts in creating your own notes. It will make you a better, more organized and more efficient developer. God talks about different types of notes that you can create, how you can create them, and which things you should actually write down. And also what kind of tools you could be using when creating notes. It's a very nice overview. I really like that he goes into how you can structure your notes as well. He has a preference for markdown, which links up quite nicely with my own preference, actually. And yeah, I think it's just a good reminder, what power notetaking can actually bring to you as a software developer. Another article I wanted to mention is boss Brooke, he wrote an article on how he prepares presentations and workshops, because recently he left Apple, and he will now be giving another talk again. So he thought he to write down how he prepares his presentations and workshops. So he also mentioned that that speaking or giving a workshop is not for everyone. And that's okay. So he would generally recommend that everybody at least try it once. And if you like it, continue it. And if it's not for you, then don't bother. What's really nice is that boss gives a quick insight in how he creates his submissions to calls for papers and how it takes a submission to an actual slide deck at the end. He actually has a preference for two called deck set, which I use myself as well, which is great. But what's very interesting as well is that boss really likes to write down things on paper on a notepad to just get a general timeline of his talk in order. So have a look at it and see the example image that he has provided of a talk that he created in his notebook. And maybe you can learn something from this as well. I really like it because it's just as the previous article, it's right up my alley. It's something I do myself as well, which I've always found it hard to describe to people how to actually do these things. But fortunately, boss has written an article that does this for me in one easy link. So have a look and see if it's something that you'd like to do as well. Now let's continue to some harder topics which is Crusher resolving unsolved formulae, has written a nice article on axing bet X crash error resolving so how you can actually understand solve this issue, because it's a crash that happens quite frequently, unfortunately. But usually, if it's happens, it's something that you did. So it's something you have to figure out in your own code to see how and why it has happened. The article of Antoine is, as ever, very thorough, and it goes into details on how you can actually capture the crashes and unlock them to some system that you can use, but also how you can during development prevent yourself from creating these types of crashes in the first place, because Xcode has some support for figuring out how you cannot corrupt your memory. And Anton also details what are a common set of causes for these types of crashes. So have a look at his article and see if there's something you can learn there. The next article is analysis of CVE 202130860. It was a crash present in iOS and Mac OS that allowed for zero click vulnerabilities and it has been exploited in the wild. Recently, Apple released iOS 14.8. And Mac was becsher 11.6, both fixed an integer overflow and use after free vulnerability. The watch us platform was also patched to fix the integer overflow issue as well, in this article that I linked, there will be an analysis of the integer overflow and Core Graphics CVE 202130860. And after examining the modified dynamic lip, it appears that there were other issues that were resolved as well, that were all related to image processing. This is really one of those articles that you either like it to dig deep, or this is not something for you. The exploit details in this article has actively been used by Pegasus, at least that's one of the known entities that has used this, this exploit. But most likely there have been other parties online that worked on this issue as well. What's interesting about this issue is that it's a it's a zero click exploit. So being sent the right image could already expose you to exploitation. And this article goes into some detail on how this has been executed in the wild. So to stick with topic of complex stuff. The next article I want to focus your attention on is called solving CPU usage crisis with X codes energy organizer, it's written by Bruna Raha, and if you don't know what a CPU usage termination is, consider yourself lucky. Not only is this one of the nastiest crashes you can get in iOS, but it's also not even considered as a crash by the system. These terminations are not reports to crash providers like Firebase. So if your app has severe high CPU usage crashes, you don't even know about it until your users start reporting. It's really nasty stuff. In this article, Bruna explains what CPU exceptions are in iOS, I can recognize them. And I can search for them by using the Xcode energy organizer. It's a great approach. And by monitoring energy usage, you can actually see where CPU or GPU is being spent, and have an idea of what you should actually optimize in your code to make sure that you're not get kicked out of the memory. A very thorough article again by Bruno and a great way to just look at your own executing code through a different lens. A smaller often overlooked framework on iOS is called multi peer connectivity. In the article written by Ralph EBIT, you will read about a tutorial that shows you how you can use multi peer Connectivity Framework to communicate between iOS devices. The example shows how to implement the connected colors app which synchronize the color between multiple devices, the multiple Connectivity Framework provides a layer on top of the Banchero protocol. Under the hood, the framework automatically choose a suitable network technology, Wi Fi network if both devices on the same Wi Fi. Peer to Peer Wi Fi or Bluetooth article basically is a big chunk of code that explains how you can initiate multi peer connectivity service session and how you can actually connect to this session. It involves a lot of discovery and connecting and then you're off to the races and can do great stuff with multi peer connectivity. Multi peer connectivity is a framework that allows to connect in an ad hoc fashion with devices that you probably don't know. But that still aren't the same code as your app. And you want to exchange information with so you just get a number of devices together. They discover each other by any means available. And then you can do some networking. Final article is by as fifth percentile. It's called programmatic navigation in Swift UI. By default, the fairest navigation API's that swift UI provides are very much centered around direct user input. That is navigation that's handled by the system in response to offense likes button taps or tap switches. However, sometimes we might want to take more direct control over how an EPS notification is performed. And although switch UI still is nearly as flexible as UI kits or advocates in this regard, it does offer quite a few ways for you to perform completely programmatic navigation within the fuse that you are building. In his article, John explains a number of ways that you can do typical UI behaviors from code, like switching tabs and controlling the navigation stack. Although swift UI navigation, although switch wise navigation system still isn't nearly as flexible as those offered by UI kit, and advocate, it's still powerful enough to accommodate quite a lot of different use case that you might have when running your user interface, especially when you combine it with Swift was fairly comprehensive state management system. Also, of course, you always have the option to wrap your Swift UI as few hierarchies within housing few controllers, and use only UI kits and advocates implement unification codes, which solution that will be the most appropriate will largely depend on how much customer programmatic navigation you actually want to perform within each projects. Those were the articles now let's move on to daanish Monday morning tweets. Donnie again this week on Monday morning asked what plans are from people who are following him online. And I actually have an answer in this one as well. What I say is merging all kinds of stuff. Updating to two is two Dotto arranging painter prepping for a new job knowledge transfer and podcast recording. So lots of things to do today. And Peter freezin is updating the code snippets for a stock at swift leads to make use of the latest features in Swift UI and Firebase. Already, he has thrown out an entire class and the code is a bit more readable, thanks to list bindings. Clements is in the midst of implementing share play for letter rooms and anagram style game that he's released a couple of months ago. He has a video that share playing action below. And his next step is to try and figure out how to make this work sensible with VoiceOver. On another note from Fabula is announcing that He's launching in the App Center 2021 edition. So don't forget to submit your app so it can consider to be featured in his advent calendar in December. And those were actually pick announcements on Danny's Monday morning tweet. And not a lot on there this week. But I do notice that people that were on there, but that didn't mention they were mostly busy with learning new technologies and learning about Swift UI and core data. So all in all, very much a lot of fun to do. Yeah, that's it for this week. I hope to talk to you again next week. Also, I hope you liked my mechanical keyboard special that I did last week on Thursday. If you haven't listened to it yet. Please do because it was a fun exercise with four people talking about mechanical keyboards form a podcast, we were all iOS development. So that's the tie in with my regular episodes and interviews and podcasts. Also, I have a lot of content ready for you. I have them. A couple of them available on my pot fan page that's popped up fans slash app first one. So have a look there if you want to have early access to my interview recordings. So who knows maybe it's something for you. If you have any feedback or just want to reach out to me, have a look at Twitter at app Force One. And as already mentioned, talk to you again next week. And have a great week.