AppForce1: news and info for iOS app developers

WWDC prep, talks, and a bunch of articles…

May 23, 2022 Jeroen Leenarts Episode 80
AppForce1: news and info for iOS app developers
WWDC prep, talks, and a bunch of articles…
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 80 of podcast app. First 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 that Cocottes for over nine years. If you're an iOS app developer, you should listen to my podcast because it will keep you updated some interesting articles, conferences and defense you might not have heard about. In this episode, I'm going to talk about fold unfold shortcut in Xcode, how to use a different swift tool chain in Xcode using the is enabled environment value in iOS 14. Mastering Timeline view in Swift UI. Use text case to make text uppercase, or lowercase. How to Start iOS development career part two c lies our products to and unlisted app distribution on the app store. I will also mention a couple of meetup events by Coca Hudsonville and Twitter space I will be participating in next week. On top of that, there are some conferences I wanted to share as well tackle Rama at DEF CON and 360 I def. So let's get started. Last week, my episode I recorded that with my DTI MC and I had a listen to that. And I reviewed what I thought of the audio quality, audio quality is quite decent, but especially if I'm on the go, it's good enough, but if I'm sitting at home, but this microphone that I'm using right now, again available, it's just a no brainer that I wouldn't want to use the DTI make for like studio type ish recordings. Of course, I'm in a home environment. So I'm nowhere near Am I near a true studio setup. But still, I think we'll be using the best setup that I have available for my recordings, depending on the surroundings that I'm currently at. And if I'm at home, it is the regular old setup that I've been using for years now. So tomorrow I'll be traveling to tech Rama in Antwerp, Belgium. And I'll be doing a talk about an interesting topic there. The title is called being a lead software developer and this about the book that I wrote on this very topic, me sharing my experiences as being a lead software developer. So very much looking forward to how this would work out in practice. It's the first time that I'm doing this kind of talk on my book in public. So looking forward to that one and see how the audience responds to me sharing my ideas on this very topic. And tied into that I think I got another talking opportunity, as well as at DEF CON stream is sponsoring at DEF CON but EVO from DEF CON reached out to me to do a talk titled The developer manual working with and managing software developers. So this is more like a talk about how you as a product owner, manager or designer, how you are supposed to work with software developers, that actually creates problems, because as a non technical person, you're not writing the code. And you need to communicate the specifications and requirements to your software developers so that they actually create what you are looking for. Right. So this talk will go into that bit on how to do this translation from business needs into technical requirements. So I'm hoping that this will be a good talk that I can execute well, as well. It's a topic that's a bit more far out there. But fortunately, the talk itself is only like a timeslot is 30 minutes. So it shouldn't be that hard to make something out of this that works well. So have a look at the app dev Comdata. Now schedule to see the rest of the speakers there as well, because there's a number of awesome people showing up there as presenters. And I think it's well worth the the efforts of going to Amsterdam for this conference. And then there's of course, in August me going to 360 I def. This will be about something that I launched today with the help of Tim Condon and it's vapor integration framework for the stream backends. So I created a little social video for that and made sure that there was like a launch blog post written by Tim Condon so that it was on the block of stream and that all the Open Source Repositories are available. So there was a lot of fun doing this work with the help of Tim Tim actually did most of the work, but I had to make sure that that he got connected with the right individuals to be able to do this. And I'll be doing a presentation about this technical work in August. So looking forward to that one as well. And then another big development I'm trying out on the podcast itself is is midroll ads, the hosting platform that I have my podcast on buzzsprout.com They recently rolled out a beta feature for Metro ads so trying some experiments with that what I really like about it is that I can pre listen all ads that are being put in my podcast feed so that I know for sure that my values aligned with these ads and that's actually the the ads themselves are about things that I consider to be interesting and that I might find interesting for my audience as well. But I'm really looking for feedback on this one. Tell me what you think. My Twitter DM is always open you can add mentioned me on Twitter as well. Sent me my Since because I always like getting feedback from anybody who's listening to my podcast. And with that, I think it's about time to Oh, yeah, there's some other things as well. Coco Chanel is having two events scheduled. So the first one, I mentioned that these two last week as well, but I think it's fun to just reiterate them again, is on June 6, there will be WWDC keynote viewing party in The Hague. That's a city in the Netherlands. So if you're in the Netherlands, and you want to watch WWDC keynote, with a number of like minded people and the heck is in your area, definitely go and check this one out. Link is in the show notes. And on June 15. That's the week after WWDC, there will be a cokehead Snell meetup at the office of stream. Probably, I'll be doing a quick talk or have some sort of a recap or highlights of the WWDC event. Nice way to come visit the Office of the company that I work at, in combination with Coca Hudsonville about iOS technology. So I think that's already three things. That's really cool. And then we're just combining the three things. So I really hope for a good turnout on that evening as well. The June meetup at stream is one that I will be at in person. So if you if you're around, definitely come check it out. And we will do a live stream and the recording of the talks during this evening. So if you're not able to attend, you still can have a look or have a viewing of the videos afterwards. And I think that's also very much worthwhile to spend some time on. So and on the personal front. Yeah, it's just cruising along right now. My wife is still dealing with the effects of the concussion. It's taking a long while for her to recover. But I think all in all, everything is is working out. Kids are in school, Lisa is looking forward to the next school year. But now she's back at doing her gymnastics lessons. Again, she's much more settled down. Still a lot of energy, but at least he has some way to fend this energy, which in a constructive way really. Because if she cannot let this energy go, then yeah, it's she'll, she'll become a handful. Also, there are some nice things planned in a weekend, not too long from now, a while back my parents, they celebrated their 50th anniversary for the wedding. And my wife and I decided to give them a weekend away with us to celebrate this, and this weekend is now finally grog near. So that's that that'll be a fun experience as well being with my parents in a in a cabin for for a couple days, probably going to be a good one. It's going to be interesting to spend a roof again, sorry to share a roof again with with my folks. But yeah, my kids, they don't know it yet. So that's going to be a big surprise for them as well. They know that their grandparents, they have like a weekend away. But they don't know that they will actually be a part of this weekend themselves. So very interesting to see how they would respond to this. And once this weekend has happened, I'll be sure to let people know what my kids thought of this whole experience. So And with that, I think it's about time to start looking at this week's articles, I have a whole bunch of them a bit less than last week. But still more than usual, just because I wanted to get all these interesting articles in front of you, the listener of my podcast. So let's get started. So the first article I wanted to talk about is another one by Xcode dot tips by Dominic Houser, it's default unfold shortcuts that allow you to collapse and expand blocks of code in your source code editor in Xcode. What's really nice about this is that you can just get your file into a seat into a view that allows you to get a quick overview of the structure of the file and then dig into things once you want to want to start working with some code. So definitely check it out. It's especially the rest of his site because it's very convenient tips on there that you definitely want to have a look at. The second article is how to use a different swift tool chain in Xcode. It's by a Samwise. And it's an article that basically details how you can switch the version of, of Swift that is bundled with Xcode. So there's basically two things in there how you check the Swift version statue If available on your system, how you can install an alternative version of Swift and of course how you can use these to change versions within Xcode. So very fun little rates, especially if you do Surfside swift development, this is something you might want to look into a little bit. Or if you want to use a pre release version of Xcode with the current version of Xcode, that's also something you can do by using this, this method of switching your Swift compiler. The third article is by Daniel citee, using the is enabled environment value in iOS 14. So swift UI makes it easy to implement specific things. So for instance, a custom button style that changes the appearance based on if the button is or if you are key is enabled or not. So just add an environment property that is bound to the is enabled key path. In a way, this is a nice view on how it's enabled key path works. But what Daniel C D noticed is that there's sometimes an issue that you have to deal with cars on iOS 14.4, the is enabled state is always true. So he had to create a workaround how to get around this nasty swift UI inconsistency. So it was easy to miss, because it's just like an enabled state of a button. But it can cause all kinds of issues in your app, right. So basically, this article serves as a warning on that you have to be aware of that things can break in new versions of iOS. So every time an iOS version is released, it's important to just check if the behavior of your app is still correct. But yeah, and if you run into one of these, these bugs, one of these issues, his article gives you an overview of a way that you can get around some of these issues. So it's a nice debugging. Well, spelunking type article, so something was discovered something was fixed. And here's how Daniel did it in his case. But yeah, it's something to be very aware of that the things that you think are very stable in your environment. As a software developer, they sometimes just are not as stable as you would think they might be. So on with the fourth article, and this one is by Majeed, so swift with Mojito calm, and it's called Mastering Timeline view in Swift UI Timeline view is a swift UI view type that updates its body according to a provided schedule. So normally, what you're used to is that you swift UI views updates their body whenever the data that they present change. But the timeline view doesn't follow this rule and allows you to build a super custom schedule to update its content in a precise way. In this article, Majeed will go into how you can use the timeline view to create time based views. So it basically involves getting this thing on the screen, the timeline view, and then also how you can deal with the schedule, how you configure the time. And if you to actually do these time based updates of itself. It very much feels like if you hear all of this, like hey, this is like the old style, watch complications that you used to have on on your Apple Watch so that you could roll the digital crown and then you could look into the future and in the past, compared to where you are in the current time right now. But yeah, just seeing the underlying technology of this timeline view is very interesting. And I think you can do some fun use cases with a timeline view, especially on an iOS device that's a little bit more powerful compared to an Apple Watch. So the fifth article is by my colleague, Adam rush, use text case to make text uppercase, or lowercase. So in his article, Adam is going into the text case, modify, so to make text uppercase. So that's a quick overview of how you can make text elements uppercase, and also how you can apply this to a text field or a label. So quick overview article, but still very much a lot of fun to just be reminded about this, this text case modifier. Last week, I shared an article by Leonardo Maya Puglisi on His holy swift blog, and this is the second part of that article, how to start iOS development career prior to learning the Swift language. In his previous article, he detailed a five step process of getting into iOS development. And this is the second part on learning the Swift language. The problem that you're facing, if you want to get into iOS development is that you also have to learn the Swift programming language, right? So in this article, Leonardo's shares what resources he thinks you can get going with to make sure that you get a good head start on on working with Swift as a programming language. And the two resources that he mainly focuses on is the 100 days of hacking swift series by Paul Hudson. and apples owns fifth programming book, which is a very elaborate resource on the Swift programming language. What Leonardo suggests is that you have to do something called deliberate practice. And deliberate practice is to make sure that you have small problem sets or small challenges that you that you work on, that are relatively easy to grasp, and that you can build upon. So if you do not have a lot of deliberate practice, at some point, you have so much practice combined, that you'll be able to start connecting the dots as well. And once you start connecting the dots with all the small bits of information that you learned, then you will be able to really start going and starting to get somewhere with software development. So I liked the way that he explains it, because there's a lot of detail that he goes into on how you can do this deliberate practice. So definitely worthwhile to read, even if you're already able to program swift by now. Because just having this in your skill set, doing deliberate practice, is something that in the future can help you very much in how you can get going with new technologies, new frameworks, new things that you need to learn as a software developer. And now let's move onwards to the seventh article of this week. It's called Sea lice our products to this is an article by Pedro Piniella, and he has experienced over the years that working on command line interface tools that there are often not observed or perceived as products. So consequently, organizations don't embrace the same principles as UI oriented products, which leads to complex tool design, there are few projects that adopt product mindset, and that really make a difference. So in his article, Pedro makes the case for seeing command line interface tools as proper products. And he has something to share about that, because he's one of the creators of the twist project. And that's actually one of those command line interface tools that has a very well thought out, functioning command line interface. So some of the biggest recommendations that petromax is that you pay attention to how you name commands, arguments and flags. A terminal is limiting, but remember constraints foster creativity, and intent well captured with the commands name and flags that become indirect complements of a sentence can yield a very expressive interface. So when you send output through the standard stream, so that standard in and standard out it resembles receiving a response in a conversation, be clear and direct. And when doing something that takes time, make sure the person knows about it. If you couldn't do what the user asked the CLI to do, tell them why, and provide the next steps that they can take to overcome the issue. Errors are also disregarded and CLI is primarily due to impetuous experienced developers laziness, it's quicker to just throw than to go to the root of the error to fix it, and provide a better error experience. So if you build CLI remember, the how is as important as the What the What makes a command satisfy the developers intent, the how is what can make the experience more enjoyable to use, some smartphones had been designed before Apple introduced the iPhone, they all serve a similar purpose. But one put attention to the how, and create an experience that made the product a successful piece of technology. So resist the urge of being lazy. And not consider scenarios that are different than the happy path, you'll move slower. But remember, this is a long term investment that pays off, and your users will be thankful for it. So the final article is by Ben Dotson, it's called unlisted app distribution on the App Store. It's a story about him being involved in an app back in 2015, that was supposed to be delivered only to specific individuals, but still publicly on or through the App Store. Then they ran into an issue in 2022, that the current app store program requirements didn't fit this company anymore. And the unfortunate situation was that this client let their Apple account labs. So to get things going, again, they had to true, they had to jump through a lot of hoops, and making sure that the app was then listed again, back on the App Store under something that is called unlisted app distribution on the App Store. So what this basically means is that your app can be on the App Store, without it being publicly listed on the App Store. So the only way that an individual can get to the App Store page is if they have a direct link to your app on the App Store. So this is something that is like a nice go between between an app being fully public on the App Store. So you can search for it, you can find it, it'll show up in lists, or in this way that it is available on the App Store, but only if you know where to find it where the link. So. But to get your app in this specific state, you need to do a lot of specific things to make sure that Apple actually accepts your app as being an unlisted app on the App Store. So yeah, good overview by Ben and just some interesting tidbits of knowledge on the App Store review process that you might run into if you wanted to have an unlisted app. I really liked this, this article because it was like more of a story, but a lot of valuable information in it. And in the end, they were successful. So there's also a happy ending to this story as well. And as a small surprise, at the end of this episode, I'm actually working with a number of people of getting a Twitter space going as a sort of a precursor to WWDC. So there will be some interesting names in there, hopefully on June 1, and we'll be doing it live on on Twitter. And hopefully, we are able to get a decent recording out as well. With video that we can then edit and repurpose into a nice video. So who knows some experimentation going on here as well just to add to the workload of WWDC. But we'll manage and we'll we'll get this stuff ready for you. There's also daanish, Monday morning tweets, I haven't mentioned his tweets for a while now. It's just because it's yeah, I've been super busy. But I did think that it's good to have a look at his tweets, again, just in a in a quick fashion. So if you are stuck, getting your work week starts on a Monday morning, and you just need some inspiration, it's always good to check the timeline of Daniels, and see if he has published this Monday morning tweet already, he usually posted at around eight in the morning, European time. So if you are more to the west of Europe, you should get this tweet available to you right in the morning. And if you move to the east of of Europe, then yeah, you might need to wait a couple of hours depending on where exactly are. So with that, I'm going to link down his Monday morning tweets in my episodes and recommend that you follow him online on Twitter, so that you get his tweeting and timeline every week for yourself. So to wrap it up, if you have any feedback on my podcast, always feel free to reach out on Twitter, you can send me a DM or an ad mentioned I love getting feedback. And hopefully we will get to meet each other in person at one of the events that I'll be going to in the next couple of weeks or months I might say. So that's going to be tech around in Antwerp tomorrow. And that's going to be at DEF CON, two weeks after WWDC. And that's going to be 360 I def at the end of August, I think it was. And yeah, it's just so much fun to be able to get in touch with people again in person. And I will bring my DJI make with me as much as possible. So that I can also do an impromptu recording with you on site, if you feel so inclined to do so. Something that I haven't called for in recent times is there's also a SpeakPipe link in every episode that I create. So if you just cannot wait to get some audio feedback to my podcast, and it has a good chance of actually appearing in my podcast as a question as a listener question, feel free to send me a SpeakPipe message, look it up in the show notes. And they can easily record yourself and sent me a voice memo that I can then incorporate an answer in my episode. Also, if you post a review somewhere, if it's on Apple podcasts or any other platform that that you use that you like, let me know to Twitter sent me a message about it. And I'll make sure to read your review on my podcast and give you a shout out while I'm at it. Because feedback is the one thing that I really need from a podcast to get better at this. And the one way that I can get feedback is by asking for it to you the listener of my podcast. So please do so. Thanks very much for your time and talk to you again next week.

(Cont.) WWDC prep, talks, and a bunch of articles…