AppForce1: news and info for iOS app developers

Building team boards (in Notion)

August 09, 2022 Episode 87
AppForce1: news and info for iOS app developers
Building team boards (in Notion)
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

Right after my vacation it was heads down mode again. At my work, we had a sort of restructuring of the group I am a part of. And this meant a lot of things have changed in how my day to day looks. I now lead developer experience at Stream within Developer Relations. This involved setting up a lot of project related things. From Developer Experience we work very closely with developer advocacy and because of this we chose to set up a shared task board. This way we can easily hand over work or share the workload for specific tasks.

I already had a lot of podcast work I needed to do last week, so I couldn’t fit a recording session for my regular episode. But, I do have a really cool special episode I did with Josh Holtz from RevenueCat. Keep an eye out for that one later this week. If all goes well, it should be done soon. For reasons I am not sharing yet, I put in some extra effort to the RevenueCat episode. I hope it will be an inspiring episode.

Let’s dive into this week’s articles.

CocoaHeadsNL Meetups

Coding is like riding a bike

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.

Support the show

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

Jeroen Leenarts:

Welcome to app force one, episode 87. 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 in touch Go Cats 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, conferences and events you might not have heard about in this episode I'm going to talk about using measurements from foundation for files and swift charts, eager grits with Swift UI flow navigation with Swift UI for implementing the new navigation stack, localizing a modularized application, using Xcode Creating Reusable and shareable color palettes, experimenting with life activities, supporting universal links in Swift UI application, and common swift task continuation problems. Right after my vacation, it was heads down mode again, at my work, we had a sort of restructuring of the group I'm a part of. And this meant a lot of things have changed in how my day to day looks, and now lead developer experience at stream within developer relations. This involves setting up a lot of project related things from developer experience, we work very closely with developer advocacy. And because of this, we chose to set up a shared task board. This way we can easily hand over work or shadow workload for specific tasks. I already had a lot of podcasts work I needed to do last week, so I couldn't fit in a recording session for my regular episode. But I do have a really cool special episode I did with Josh Holtz from revenue cats. Keep an eye out for that one later this week. If all goes well, it should be done soon. For reasons I'm not sharing yet, I put in some extra efforts to the revenue cat episodes, I hope it will be an inspiring episodes. Now let's dive into this week's articles. First, I want to begin with an article by Natalia pan for over using measurements from foundation for values in fit charts. Natalia builds a bar chart comparing durations of nature walks in the Christchurch area she is using the new Swift charts framework introduced this year and plots data of types that don't conform to portable protocol by default, such as measurement unit duration. It is a fun quick overview of how you can plot data by wrapping it in helper class. To make the data conform to the pluggable protocol. Sample code is included. So definitely check it out. The next article is by cafe over at the Swift UI labs, eager grits with Swift UI back in 2020. We got views to drag credits in Swift UI, lazy V grid and lazy H grid. Two years later, we are getting yet another view to display views in a grid. However, this new addition is very different not only in your way use it, but also how it behaves internally. The views from 2020 we're lazy. These new ones are eager, lazy grids do not render or even instantiate views that are off screen. The cell views are created only when they are scrolled in and stopped being computed as soon as they scroll out. For more details, check out the 2020 article. Impossible grips with Swift UI on the Swift UI Leps websites Ygritte the topic of this post by the FAA are the opposite swift UI does not care if they are on or off screen, all of us are treated the same this may present a performance problem with a very large number of cells. However, how much is a very large number is an impossible question to answer that will depend on the complexity of yourself use. So if lazy grids perform better, it begs the question why would you use eager grits The truth is eager grits have their benefits of lazy grids and vice versa. For example, eager grids support column spanning and lazy grits do not bottom line, performance is not the only factor to account for. In his article, you will explore these new grids so it can make a good informed decision when choosing one over the other. I must say that the FAA did a very nice introduction on his article so thanks for that. The third article is by Nick McConnell. Flow navigation with Swift UI implement the new navigation stack. Previously, navigation few required explicitly defining navigation edges and the use of multiple flags which could lead to confusion. The new approach uses a stack creating a non UI representation of the existing navigation and works beautifully with our previous programmatic approach without many changes. This approach initially started with the review of a multi screen onboarding flow with Swift UI. As with all multi screen data flow, they often represent an interesting problem of how to decouple Data View and navigation ladder logic. In the article by Nick You can read a lot more about his thoughts about using the new navigation stack. Next up is popular with localizing a modularized application. Paul wrote a short piece about some of the things you will run into when localizing a modularized application. A modularized app is an app in which you have split the functionality of the app across multiple frameworks. This helps you isolate functionality and promotes a cleaner separation of concerns across your entire codebase. It can also improve your compilation times because the Swift compiler has fewer symbols to inspect when compiling framework, especially if you apply scoping keywords like public and private well, I have used modularized architecture to great effect in a previous role of mine and you can find In a YouTube video of me talking about this topic, actually, back to Paul's article, it's a good overview of some of the things you have to think about when adding localization to such an app. And I think just because of that, it's well worth your time to have a read of this one. The fifth article is by my colleague, Mr. Key AMFI, using Xcode creating a reusable and shareable color palette. Whether you're working on your own project or building an app for a customer in Xcode, color harmony is essential in ensuring consistency in your interface elements. Xcode allows you to build, manage, share and reuse color sets in a new way. In a Moses article, you will learn how to create color schemes and reuse them in other Xcode projects. Having a full range of colors that can be shared and reused in different Xcode projects improves efficiency and workflow because it removes time wasted and looking for colors that will work together in your projects. Additionally, it ensures consistency of color usage within your apps and projects. Historically, developers and designers create color palettes using design tools such as Adobe Illustrator, sketch or figma. It turns out that the Swift developers can build these color collections and manage them directly inside Xcode using the built in Color Picker. In this article, you will discover how to create a set of colors called do Chroma to use later to customize the look and feel of a sample stream chat swift UI. The techniques tips and tricks you learn in a Moses article will assist you in building coherent color schemes for your future Xcode projects, Allah Brockman has an article in which he shares his experience while experimenting with live activities iOS 16 Better for is the first SDK release that supports life activities. A live activity is a widget like view an app can place on your lockscreen and update in real time. examples where this can be useful includes live sports scores, or train departure times. This article contains all his notes on playing with the API and implement his first life activity. All his life activity is a display for a bike computer that he's been developing with a group of friends. In short, a group of friends and Ollie designs a little box that connects to your bikes, hub dynamo, measure speeds and distance and sends the data via Bluetooth to an iOS app. The app records all your rights and can also act as live speedometer when mounted on your bikes handlebars. It's this last feature that Ali wants to replicate in the life activity. Natasha for Deva wrote the second article she writes about supporting universal links in Swift UI applications. Universal links allow us to connect iOS apps with its related websites. When a user taps on universal link, they are redirected to a specific part of an iOS application if it is installed. If the app is not installed, the link opens a browser allowing the connected website to handle it. To support universal links. The following steps are required first, creating and configuring an associated domain file. Second, adding the associated domain file to the related website. Third, adding an associated domain entitlements to the iOS app. And fourth, update your iOS application code to receive universal links and if needed route to use it to a specific part of your app. Natasha takes a look at these steps in more detail. And the final article is by Leonardo Puglisi common swift task continuation problems. The new Swift structured concurrency brings a whole new world of adventures and things that we can use to make our code more expressive and less prone to errors. Meanwhile, it also has a delightful syntax to write and read that makes your asynchronous code way easier to reason about. It is a really good API to learn and worth your time. One thing that the Swift engineering community thought when they were developing the new asynchronous API is that in some manner, they should support a bridging way to connect your old closure based API's with the new async await world. And that is exactly what they did. The Swift team created the continuation API. This creates a suspension point in your code. And that is exactly what you need to use the new async await semantics. Leonardo will discuss some problems that can happen if you don't pay attention to the continuation problem in Swift. And those were the articles of this week. I want to highlight two meetups with Coca Hudsonville as well, in September and November. We're still working on the October meetup, have a look at the meetup page of coca Hudsonville meetup.com/kokoa hats and also I'm traveling to 360 IDF in Denver at the end of this month. And the best part of that I will get to meet a few people I met through my podcast in person for the very first time. Let me know if you will be a 360 I def through Twitter, I would love to give a high five there, I should be very easy to spot. I'm doing a talk on the Tuesday of the conference and the rest of my time, I am most likely close to the stream table or booth. I don't know the exact setup yet. My colleagues Amos and Stefan will be at swift comm Amos will travel to iOS dev UK. And if all details can arrange I can share a bit more about Swift leads in October to hopefully as a confirmation of me traveling there soon. If you don't get to meet at a conference this year. Let's stay in touch on Twitter. I love getting DMS and app mentioned by people sharing their thoughts and insights. Also, if you are starting out as a software developer, I hope you've seen my tweet about how coding is like riding a bike If you have any feedback please send me a message to Twitter my DMs are always open and don't forget if you like my podcast can't meet me in person you can still buy me a coffee link for that in the show notes talk to you again soon

Intro
Using Measurements from Foundation for values in Swift Charts
Eager Grids with SwiftUI
Flow Navigation With SwiftUI 4. Implementing the new NavigationStack…
Localising a modularised application
Using Xcode- Creating Reusable and Shareable Color Palettes
Experimenting with Live Activities
Supporting universal links in a SwiftUI application
Common Swift Task Continuation Problems
CocoaHeadsNL Meetups
360iDev
SwiftConf
iOSDevUK
SwiftLeeds
AppForce1 on Twitter
Coding is like riding a bike
Buy me a Coffee