AppForce1: news and info for iOS app developers
AppForce1: news and info for iOS app developers
Sometimes things go haywire, like the first recording of this episode
That was a bit of a setback. First recording of this episode... lost. I don't know yet what exactly happened. But hey, rerecording was the easiest thing to do.
- Fixing wrong animations with Diffable Data Source | Filip Němeček
- How to write HTML in Swift? - The.Swift.Dev.
- Automating App Store Publishing
- Networking with Combine and SwiftUI - Getting Started | Peter Friese
- Prototyping With SwiftUI: Creating Complex Interactions Using Gestures and Modifiers
Let's just say I am glad I made it through this one. Good news is I am building my backlog of recordings for my again now.
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.
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
Hi, and welcome to the 64th episode of my podcast. This is actually the second recording that I'm doing of this episode, because something went wrong with the first recording that I did last night. And I just had to re record everything from scratch again. So that was a bit of a setback really. So let's just get started. My name is Leenarts. I've been developing software doing iOS apps for nine years and also run that Cocottes. By now I think everybody who listens to my podcast knows about this. So let's have have a quick overview of the titles of the articles that I'm going to talk about in this episode. And that's going to be fixing wrong animations with default data source, how to write HTML in Swift, automating App Store publishing, networking with combined and swift UI, prototyping with Swift UI, creating complex interactions using gestures, and modifiers. So as I mentioned, already a bit of a setback yesterday, but I won't have to get me down. A lot of cool stuff happening this week for me, going to be presenting with a colleague at iOS confess je, that's a Singapore based conference. So looking forward to that one, that's at the end of the week, furthermore, are working on getting my second piece of content, ready for the stream block. And there's also some developments in regards to my podcast, good developments. Actually, I can't share yet right now, what those developments are. But hopefully, next week, I can share a little bit more about that. And I hope and I think you will like what I have to tell soon, my four year old Milan is still enjoying going to school, you can tell that he is getting a bit tired of of the long days that he's having to put in at, at school with his class. But still, every day he jumps out of his bed is really happy to get started. And just if that if it's up to him, he will just skip his his breakfast and go right to school. We tried telling him that his teacher wouldn't be there at that point in time yet. But yeah, there's no stopping him right now. So I hope he keeps it at that. Also, this week, my daughter will have her first gymnastics training with her new squat in a Gymnastics hall, which is good, because we were unable to for the last month due to the restrictions in the Netherlands. But fortunately, those restrictions have been have been loosened up a little bit. So she is really looking forward to that event. Of note. And that's also interesting is that tomorrow, actually Wednesday, normally I record a Monday, but now it's Tuesday. So on Wednesday evening, Cocottes will have to meet up again. And they also have a new sponsorship announcements, which is great. And I really look forward to what people think in that community on the new sponsorship. And I think if the entire pandemic thing lifts up a little bit, when we get close to the spring and summer, hopefully I can do some really big moves with coke ads as well. Because to do iOS conference is still something that is in the back of my mind. And I really hope to be able to execute on soon again. So let's dive in with the articles. The first one is by Philip Nemecek. Fixing wrong animations with default data source, the most common causes and how to fix it. The magic of difficult data source either for a UI collection view or UI TableView is that it does a lot of work for you. But sometimes it doesn't quite do what you want, and is hard to pinpoint where the problem lies. In his post Phillip will look at what the most common causes for incorrect animations are and what his fixes are for those situations. With incorrect animations fill up means that instead of inserting one new item or removing it, deferral will refresh the entire view, which isn't a pleasant user experience. Or you might sometimes see other glitches as well. So a very solid overview of some issues that you can run into if you're dealing with difficult data source and it just doesn't look right or doesn't behave right. So just look at your code compared to what Phillip has shared and hopefully there's something in there that will alleviate your problems. So the second article is how to write HTML in Swift. It's an article by Timo Bowditch. And it's a tutorial about how you can render HTML docs using a brand new DSL library called swift HTML. And the fable web framework. As you might know, debo is a huge fan of server side swift and he always like to dive deep in in tools like vapor. And by the looks of his article, he wrote a library called swift HTML and in his article, he introduces it, how I can use it And yeah, what what the benefits might be if you define your HTML in SWIFT codes. Then after that, he goes into some details on how you can incorporate the Swift HTML library within Viper because vapor has an official template engine called leaf. And the community also created the typesafe. HTML DSL library called HTML kit. So why did He create something similar? Well, he tried all the available swift HTML, DSL libraries that he was able to find on GitHub, but he was not entirely satisfied with the currently available solutions. Many of them were outdated, incomplete, or he simply didn't like the flavor of the DSL. He wants to have a library which is very lightweight, and follows the standards. That's the reasons why t work rails swift HTML. So he describes how you can integrate swift HTML with vapor. And he it's actually pretty simple. Once you went through his tutorial on Swift HTML and how you can incorporate it with favor, I think F a good understanding of this new library that he created, and also how it might apply in your situations. And if it's actually something that you want to use yourself as well. The third article is Pyro drunk Liam, it's on automating appstore publishing. So it's a it's basically a post that details the journey that redonk went on when automating a manual release process that he had for his app quoting. And yeah, it's just it shows what issues you run into what solutions are for those issues. For instance, you have to get all your certificates and provisioning profiles in order to make sure that code signing works. And then you have to build for distribution. But with all this stuff, you have to make sure that you don't put your credentials and your key material in your repository itself. Fortunately, most CI solutions have a solution for this that allows you to store secrets in a different context that is not visible to people visiting your source repository. His article goes over the steps of building the app, testing the app, archiving the app and publishing it. So I think it's a it's a solid overview of what you can do with automating on your CI CD platform. And he has written his article in such a way that the lessons that you will learn from this article should apply to any CI CD solution that you're using yourself. The fourth article is by Peter Frieza. It's called networking with combine and swift UI. So it's a new series of articles by Peter. In this series, he will look at how you can use combine in the context of Swift UI to access and network resource map data to structures that have meaning within your context. So in your app, and how we can handle any errors that might arise during this process. And to put the cherry on top, he promises to also have some information on dealing with more advanced scenarios, it goes over the details of fetching data using a URL session all the error handling that should have in place, and how he can fetch the same data using combined how you can connect all of this to Swift UI, and how you can use combined publishing changes from background threads. So really a quick overview of how you can get a network resource into combine and how you can get this honest with you our user interface. The fifth and final article is by my colleague Ahmose. It's called prototyping with Swift UI creating complex interactions using gestures and modifiers. It's it's really fun article that explains how you can do quick prototyping with Swift UI. So what almost likes to do is actually a designer, what he likes to do is just pick up some swift UI, put a user interface together, which is pretty much an empty shell, but it's it behaves and it acts like an app, and then do some prototyping with it and see if it's something that he likes something that works. And then he hands it off to a software developer to actually attach logic behind it and make sure that the underlying code is also completely up to spec and handling all edge cases and errors. So in his article, he shows you how you can use Swift UI ListView, refreshable, and scrollable. How can you swipe action and how you can add a paginate scrolling and how you can trigger animations with human initiated gestures. The source code is available on GitHub. And in the next part of this tutorial, he prompts us to teach you how you can create chat messaging related animations with Swift UI, and is of course a company blog. But I did want to mention this one because it's very specific about Swift UI and the power of Swift why to quickly iterate on a user interface that you can then take forward into an actual product. So that's the final article of this week. It's a bit weird to record the same content for the second time. But I must say that having all my notes and everything worked out beforehand, it really sped up the process. So maybe the lesson that I can learn from this entire mishap during this this week, is to just make sure that I prepare my notes for a podcast recording just a little bit more so that I have this easy and convenient feel of recording On episodes on the first try that I do it. And so if you have any feedback on my podcast, please reach out through Twitter DM at app Force One. I've also been working on creating a bit of a backlog again for recording sessions with with people. And actually later today, I will be recording with two people. And later this week on Friday, I have a plan to record with two more people, and then next week on Thursday with three people. And then I have a bit of a slower pace in the weeks after that, but as you can already tell, within about a week from now, I should be having a nice fat backlog of interviews on the shelf so that the don't run into the same issue. I have, like last week, running out of interview guests. And yeah, I just don't want to have that happen anytime soon. Again. So if you know somebody that I should interview on my podcast, please let me know if you yourself would like to be interviewed for my podcast, reach out as well. You can do that through Twitter DM at fourth one, but it already mentioned that that handle. So talk to you again next week. And I hope for to have you as a listener again on Thursday this week when I have my next guest for an interview. Bye