AppForce1: news and info for iOS app developers

Keep everybody happy and the voyage home after Swift Heroes

April 12, 2022 Jeroen Leenarts Episode 75
AppForce1: news and info for iOS app developers
Keep everybody happy and the voyage home after Swift Heroes
AppForce1: news and info for iOS app developers +
Help us continue making great content for listeners everywhere.
Starting at $3/month
Show Notes Transcript

I have been late publishing my regular episide. I am making it up by having a whole bunch of extra content. Also, lots of info on some cool conferences you should have a look at.

Swift Heroes



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

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:

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

My book: Being a Lead Software Developer

Jeroen Leenarts:

Hi, my name is Jeroen Leenarts and I've been developing software for over 20 years developing iOS app for 10 years, and I'm running the 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 my swift EuroStoxx secondary skills as a developer, building things and raising children, Swift type placeholder, what is it and when to use it? Logging in Swift, Swift UI, adaptive stack views, how to add text input actions to iOS push and local notifications, how to force to large text in Swift UI, enumerating and counting test components in Swift. And a number of conferences, iOS dev UK, app builders 2022, AppDevCon, and swift conf. So let's get started. So as you might have noticed, I skipped one of my episodes with my podcast, because I was just too busy last week, and just didn't have the energy anymore to to record episode 75. Last week. So I have a bit more news articles in this episode. And we'll update you on all the things that have happened over the past week, because it's it's been quite a journey that I had when when traveling to Swift heroes, actually. So yeah, so last week, I really was preparing myself to do a talk with my colleague at swift heroes. The talk was titled, secondary skills as a developer, I will link to the slides of that in the show notes. video will be available later. And yeah, it was just so weird getting back to in person events. Again, this was actually the first conference I've been to, that I've attended and presented that for over two years. So you can imagine that it's, it was a bit nerve wracking in a way, but also very enjoyable, and a whole lot of fun. Because of the entire workload, just trying to compress a week's worth of work. I just didn't have the time left anymore on Monday and Tuesday to to record an episode. And on top of that, from Wednesday on, I was traveling, and on Thursday and Friday, I was in Italy, at swift IRS conference. And then on Saturday evening, I was planning to record my podcast, but then things happened. I will tell you what happened later. But first, let's talk a little bit about straighter was the conference, the first one I've been to in two years. It was a nice conference, nice venue. It was in a car museum in Italy, and you know, Italians with their cars. Well, that's, that's a whole bunch of epic cars that that were lined up in that museum. And the venue was a nice auditorium style room, where some great speakers also a lot of sponsored speakers lots. So you could tell a little bit that that was the case. In fact, my presentation as 50 euros with Amos was also a sponsored slot. But we specifically chose to do a talk that was off products, not on the stuff that that we were there to represent as a company that was stream. So yeah, we did a talk about some things we think you should know as a as a software developer. So the secondary skills in our presentation, Amos, and I touched upon nine different things that we think you should learn as a software developer. There's also a nice discount code still available for my lead developer book with discount codes go trifft heroes. So definitely have a look at that one as well. All in all, it was really nice to go to the conference, I met a number of people who have only met online before. And also I was able to see a number of colleagues in person for the first time. So that was Adam, Amos, and Martin. So that was really cool to see them in first for the first time since I've been working with them for over five months already. Yeah, it was a great time, good food. Nice weather actually, because in the Netherlands, it was really cold. While in Italy, it was like 15 to 20 degrees outside which is which is tshirt better for me might be a bit different for you, depending on where you're living worlds but they are very enjoyable and there was a lot of sunshine. So also the impromptu things you do around the conference grabbing a coffee having a meal with people you don't know yet. That was very nice. And also the pizza was really good. And the pasta was really good. And the meat was also really good in Italy. So we definitely made sure that we had the entire range of culinary experience in Italy as well. So yeah, all in all very good. And then I had to travel back Friday evening, the day before I was supposed to travel, I was checking my flight because that's what you do like the day before, check your flights to make sure that you're not late or too early on the airport because times can of course change with a flight. But then in order wisdom KLM decided to outright cancel my flight. And yeah, I noticed that the time was different and I looked more closely to date was different. KLM decided that I was supposed to fly a day later, bright and early in the morning 620 So yeah, it was there was an extra day I had in Turin tried to make the most of it. Did some sightseeing with with some some buildings and also City Centre of children which was which was nice. Also made sure to get my souvenirs for my family. But then yeah, I'm not one to really stroll around around the city for like hours on it. So at some point, I just went to the airport and met up some people who were traveling out as well, that was a nice break of pace for me. But most of the time, I was just relaxing. And well, playing around on my laptop and just doing some things and catching up, in a way good. And then I spent the night in in one of these sleeping pots on the on the airport, which was, which is small, but it was manageable. And then on, on Sunday morning, I was finally able to fly out and get home and see my kids and family again. And it was a bit of a bummer, because my daughter had her first gymnastics competition on Sunday. And due to this whole thing, I didn't make it. I was too late to catch that. But my wife, she sent me a number of videos, and had a good chat with my daughter afterwards. She was not happy that I wasn't there. But she she understood. And I definitely made sure to indicate to her that I put try my best to be there next time. So yeah, it was a bit of an experience traveling to Swift heroes conference was good travel back when I was actually traveling was quite nice as well. But it was a bit of a prolonged wait I had to do in the airport. Let's now dive in on some other things here to go with the conferences or the articles first, let's do conferences first. So there's a number of conferences that I think are very interesting right now to have a look at. And I will name them in order that they are going to be performed. So that's the date that they are going to be done. So the first one is app builders 2022. That's, they call it a lapse intuition. So it's basically a hands on workshops with a number of mentors. And they announced a number of mentors already, that it would be having on a roster. And there's some great people in there, for instance, at Tim Condon, Dominic Houser, Leah sunshine, and a whole bunch more people not going there myself in person. But by the looks of things one of my colleagues might be traveling there. Yeah, if it's if you want to get some workshops, under your belt, on specific topics, have a look at app Because I think it will be a really nice, different style conference to attend. There is at DEF CON Jun. 22 Jun 24. That's, that's a cross platform conference. So cross platform in the sense that will be presentations on Android, iOS, and cross platform toolkits or frameworks. This is a conference that's been ongoing for a number of years. Previously, it was called M DEF CON, I think it was. And yeah, it's a really nice conference in Amsterdam. And they try to make it bigger each year. But this is their return after COVID. So I'm very much looking forward to see how they execute on this one again, also, coca had snow, the meetup organization that I'm involved with is good friends with the company behind the app, DEF CON. So if you go to app DEF CON, you will most likely be able to meet me there, because it will be attending there in person representing the CO cats and I'll most likely, so have a look at them as well, if you're looking for a conference in Amsterdam in June, by the way, App Builder CH is in Switzerland. The third conference I wanted to mention is iOS dev UK. So that's a conference that will be in the start of September, September 5 to eighth. And it's a conference that is deep, deep deep within the parts of the UK called Wales. And so if you if you traveled to Birmingham by plane, then you still have like a three hour train ride to go to actually get to the to the location, which is okay, but be prepared to travel by train a lot when you are in the UK. And if you if you land on the stance that London then it's it's four and a half hour train journey you have to do if the weather is nice, I'm told that the train journey is epic. So definitely don't be don't be put off by the train, right? Because if you're lucky, it will be really cool. And also the conference itself. It's a very bespoke conference that is on a university campus. So I'm looking at the tickets now and they have like an early bird conference with three nights accommodation. This ticket includes admission to the conference plus three nights ensuite accommodation with breakfast on the university campus. So that's really nice. That's also really cool company team ticket for conference tickets each with three nights accommodation. And that's just a better deal on on their regular ticket and you can book an extra night at a bed and breakfast. So that's if you go for the total UK experience because traveling in the UK by only staying in bed and breakfasts is like really cool and it's it's different but very enjoyable. Interesting because that the conference, they organize the conference, but they also make sure that they have a place for you to stay in the university campus. So that's if you log back to those days that you were still a student We are at a university campus, I think this is the best opportunity to you can get to like the authentic experience again. Another conference is the Swift con conference in August, and it will be August 17 and 18th. It will be in Cologne, Germany. So nice thing about this conference is that you have already announced a number of speakers there. And they have announced Donnie walls and boss Brooke, Christian Tyson and Peter Freeza. As, as conference speakers, and they still have their CFP open. So definitely check it out. And if you look at the past speaker lineup, that's really amazing. There are some names and people in there that are enjoyable to have as, as conference speakers any day of the of the week. So Swift, have a look at them as well. I'm still looking into organizing do iOS, myself, that's the conference I organized with CO cats now. And most likely sometime in June, we're going to look on whether or not we will execute the conference for October. So we're gonna have like a three month lead time to make sure that we can perform the conference well, but yes, Cocottes No, we wanted to experience in person events a little bit more, before we pull the trigger on organizing the conference or not. So that's a lot of things, I already covered some personal things. Yeah, they're installing the wallbox for the electric car this week. So hopefully, they don't mess up too much of my day tomorrow, because there'll be installing it on a Wednesday and then like a couple of weeks later, than the utility company will come along. And they will upgrade my my power grid connection so that I can have like more voltage and more power on my system so that I can, once the car arrives, I can charge it more quickly. My son is really looking forward to getting the new car, I don't know I mentioned to him, we will be getting a new car in a couple of months. And all of a sudden our current cars which which are a couple of old banners, he really thinks they're like, about to break down like each day of the week. So he is very concerned when getting on the car that's concerned as a four year old can be really, but he constantly asks if the wheels will fall off and things like that. So very funny, actually. So yeah, that's it for the intro, really. So let's dive into the articles of this week. First article is by Jordan Morgan. And it is titled building things and raising children. So it was a it's not a technical article. But it is an article that that hits home for me very much, because I'm pretty much dealing with similar workloads, as Jordan seems to deal with. So you have like a family life and you have other work type activities going on in different areas of your life at the same time. And in some way, you need to make sure that you keep everybody happy, right, because you have like your family, you have your employer or clients or customers and you want to make sure that everybody's happy. Well, there's one thing that that Jordan very much advocates for, and make sure that you prioritize the things that are important to you. And I think if you are living as a family, I think the family goes first in any area that you have to make decisions. So yeah, just to recap his article, he did it himself in his article, actually, make sure that you have your life priorities straight, make some small habits to help yourself work on stuff, that's a really cool thing that he put in his article. And definitely check it out for that. And don't compare your output against other people who likely have more time than you. And that's true. Because if you do all these things, you'd have like a family and kids and you have different projects going on. You cannot compete in productivity while always with somebody who's fully dedicated to a single thing. And the fourth thing is consider if you really want to take on side projects, because sometimes you just have to make sure that you have the time for it. And if you don't just don't do it, find small parts of your day or routine where you'd have time to make some progress. So any thing that moves the needle just a little bit that's already progressed, just make sure that you are okay with something's just taking much longer than you would have wanted initially. So that's good advice overall, but check out his article yourself good bits in there, I think. So the second article is called swift type of placeholder what it is and how to use it. So certain wrote an article about type placeholders. That's a new feature in Swift 5.6, available in Xcode 13.3. And the concept is straightforward type. Placeholders allow you to write types with type placeholders, which directs the compiler to infer the type where underscore is used. So certain lists a number of examples of when and where you could use these type placeholders. So you can imagine that sometimes you just want to skip explaining to the compiler What type is actually in a variable. So the question is, why do you need type placeholders? And the article of saloon goes Here's a bit of detail on when you could use it, why you would use it and what it actually does a little bit under the hood. So and in what ways type placeholders can actually be beneficial for your coding. So definitely have a look at his article, I found his article to be the most concise and complete overview of what swift type placeholders in Swift 5.6 available in Xcode 13 Portree actually are. Then, Majeed has a really cool article on logging in Swift, because I noticed that logging is very often under utilized feature of the ecosystem that we're working in. And logging can really help you catch those books that are harder to find with the debugger. So sometimes you just things happen in production. And if you have good logging available, and you have a way to capture that logging actually, then that you have a fighting chance of figuring out what his book is and how you can deal with it. So Majeed writes an article titled logging in Swift, and he goes into what's the OS package in iOS can do for your basically allows you to define a logger and lock with it. So you can access these device logs by connecting device to your Mac, and then having a look with the console app. But I think there's also a way that you can dump the logs on your device, and then share them from the device. If you use OS logging on iOS, you will want to get those logs from an end user device that is not near your computer, you can request them to do something specifically, it is hard to talk them through it. But if it's like this really special snowflake kind of book, you might want to try this. And that's actually called sis diagnose lock generation. Unlike crash lock, six sis diagnose locks are not written automatically by the operating system. They are generated by a manual trigger by the end user. So if on an iOS device, you hold down, volume up, volume down, and power for 250 milliseconds, then you have to wait for like five minutes. And then if you look in the Settings app, under Privacy analytics analytics data, you will actually find files there with a prefix sis diagnose, that contains all kinds of information about the processes and the logging the device logs that were running at the time of the trigger of the SIS diagnose. So the best way to extract a sis diagnose is using the iOS device crash report tool. But you can also share the SIS diagnose file from the Settings screen on your device. For instance, with AirDrop it's a bit of an involved process. But you can actually get runtime logs from a device by an end user, if you are using the OS lock package by by Apple. So just something I wanted to add on top of the article by Majid. So onto the next article by usual, Swift UI adaptive stack views. It's a nice article on how you can use Stack views in your iOS codebase. And how you can actually use Stack views in a really cool way by switching from horizontal size class to vertical size class. There's also some dynamic type involved in because you want to fill the available space if you switch orientation of the Stack View. But yeah, it does take some work to get that work correctly. And in his article, Keith goes over the steps that you need to take to make sure that when changing the size class of your stack view, you can increase or decrease the font size by using dynamic funds. And that's a really cool trick to be aware of when dealing with stack fuse in your iOS application. So that's why I wanted to include this article this week. Then there is a really nice, short article by Natasha for Deva. It's titled How to Add Text Input actions to iOS push and local notifications. And this is a quick reminder really, that when you're dealing with notifications, you can actually put buttons on your notification and have specific behaviors behind those buttons. And in the article by Natasha, you get a quick overview of what are some of the things you can do with these specific texts and button based notifications, and how you handle these these inputs. So really cool, quick reminder that a notification is much more if you want to than just a piece of text that is displayed to the user. Then there's a second article I wanted to mention by Soren and that's titled How to force two lines of text in Swift UI. Switch why text will take as many lines as possible to render its content by default. If you want, you can limit the number of lines with the line limit modifier. There's no way to set a minimum number of lines. If you have a layout that needs to be present at an equal height, this might be a problem. So there are cases that you want to make sure that your text is always rendered as two lines in this article by saruni. You will get an insight in how you can modify the behavior of a text element in Swift UI and make sure that it is always rendered as if it is Two lines. So this doesn't mean that the text will be broken across two lines. But it just means that text elements on screen will render itself with the height that it would need to be able to run the two lines. And this allows you to have much more stability in the layout of your user interface, if you so desire with Swift UI. And then there's the final article by Gabriel. And it's called enumerating and counting text components in Swift UI sometimes necessary to enumerate or just count various components of text in your app. And yeah, in this article, Gabriel goes over a number of things you can do to count text, and also to count specific components within your text. So you can imagine that sometimes you want to count letters, sometimes you want to count words. But then if you're counting words, so you want to. It is just a fun little overview of different ways that you can deal with texts and counting what's actually in your text content. And yeah, I just found it refreshing to just read about some of this basic algorithmic stuff that is soft for you by Swift. But still, it's good to know that there's a lot of text manipulation and counting and inspecting that you can do with Swift. And that's it for this week, it's a bit of a longer episode, because I needed to catch up a bit on all the content of last week, I hope you enjoyed it. And I am thinking hard about how I am going to approach my podcast in the next few months. Because I had some time on the airport last weekend to really think about where I'm at with my podcast and wondering what I want to do. And I noticed also, in part by the article by Jordan Morgan, that sometimes with my podcast, my podcast has had more priority than my family life sometimes. And I really want to make sure that that does not happen anymore. So I will promise that I will continue podcasting, my regular episodes. But it could very well be that my interview episodes are not going to be as regular each week as they have been over the past one and a half year. Because yeah, it just takes a lot of work to do the interviews, because especially if you bunch a couple of these interviews together, then you're like recording like an entire night. And yeah, I think I need to reevaluate a little bit of what my priorities are. I do enjoy podcasting. So we'll keep doing it. So no worries there, but trying to figure out a little bit on how to do this. And maybe someday I will be able to just get some additional sponsorship go with a podcast that allows me to hire an editor and make sure that I just can focus on the recording aspects of a podcast and have somebody else take care of all the editing and making it all look nice and making sure that there's ready for upload somewhere else in provider. So just wanted to share that I keep on podcasting you keep on listening, subscribe to my newsletter. You can find that one at app forest Enjoy a week and talk to you again next week.