I share my thoughts about a piece of hardware. Progress on the Do iOS conference and my anxiety about a delivery.
In this episode I’m going to talk about:
I also mention:
Lead Software Developer
Learn best practices for being a great lead software developer.
Rate me on Apple Podcasts.
Welcome to AppForce1 episode 91. My name is Jeroen Leenarts and I’ve been developing software for over 20 years, developing iOS apps for over 10 years, running the Dutch CocoaHeads for over 9 years.
If you are an iOS app developer, you should listen to my podcast because I 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:
So I agreed to do a coop for BenQ a while back and last week, on September 15th, the article arrived. BenQ offered me a screenbar, provided I would do three tweets about it. I'm now two tweets in. And I guess the link to this episode will be the third one.
All in all, after a week with the Screenbar I really like the device. The best part is, I am not really aware of it's presence. Which is a good thing right? It did not add any clutter to my desk, but it did improve the lighting of my workspace significanly without adding any glare.
So BenQ makes good on its promises about their product: Reduce eye strain (thanks to proper lighting), without adding desk clutter or screen glare.
I think the BenQ Screenbar is a solid product and you should not settle for less. The LED array and the color temperatures it produces are very nice and I have not experienced any flicker, not even when taking pictures.
So thank you BenQ. I really enjoyed this coop.
On another note, Do iOS is happening and it is going strong! When I record this, the speaker lineup has been complete for a while. I did a big pitch for the conf in my previous episode, listen to that if you need convincing to go to Do iOS. If you ask me, Do iOS is going to be a steal of a deal for all parties involved. And yes, I know my opinion is probably biased. Anyways, I got some questions from people.
What does it take to put together a conference. I always say it is rather simple. You need:
Everything else beyond that, that's a bonus. On October 20th I am going to SwiftLeeds and see for myself what a conference going all out will look like. Do iOS on the other hand... I know it will be great. But in what way I will add on top of the basics. I just have to see. It really depends on how ticket sales are preogressing. Do iOS has reached critical mass in its number attendees in the first week. All costs have been allocated. And it is looking ok. No huge profits, for the Dutch CocoaHeads non-profit. But enough to make sure it will not cost the CocoaHeadsNL any money. I am still waiting for a sponsor to get back to me, and am still looking for a sponsor for a possible monday training event. But all in due time.
If we would execute Do iOS as is right now, with the number of attendees and speakers we have right now. It will be an amazing experience already. The amound of access attendees will get to each other and the level of networking. It would be beyond amazing actually.
On another totally unrelated note. I have received the tracking number for my Model-100. You know, the keyboard I backed back in July 2021. It is supposedly actually on its way. Only drawback is that when checking the status I only ever get the message the delivery company has in fact received the delivery information on September 14th and nothing else has changed since then.
Anxiety through the roof. I think I was better off without a tracking number compared to this. More updates probably on my Twitter when this thing starts moving again.
So that's three things already for you.
Since this podcast is supposed to be about iOS related things… let's dive into the first article of this week.
Eventhough the conference is in fact about iOS.
The first article is by Nataalia.
Starting from iOS and iPadOS 16 we have a new version of the navigationTitle(_:) modifier that accepts a binding to a string. We can use this modifier to let users rename items straight from the navigation title in the toolbar. This functionality could be useful in apps where an item is configurable, similar to a document in document-based apps.In this post Natalia will be looking at a simplified example of a note taking application, that displays a note list in the sidebar and a note editor in the detail view.
Next article is by Filip.
Dynamic Island is part of Live Activities API, which is part of the Widgets system. If your project doesn’t have a widget extension yet, start by adding a new target to your project and select “Widget Extension”.
Now follow along with all the steps outlined by Filip, with Xcode 14.1 (this minimum version is important) and you will and up with a live activity using the Dynamic Island.
Donny had a nice tip on:
If you want to make sure that your code adopts Swift concurrency as correctly as possible in Swift 5.7, it's a good idea to enable the Strict Concurrency Checking (SWIFT_STRICT_CONCURRENCY) in your project.To do this, select your project's target and navigate to the Build Settings tab. Make sure you select All from the list of settings that is shown (Basic is the default) and type Strict Concurrency in the searchbar to find the Strict Concurrency Checking build setting.
Thanks Donny, some more details in his post.
Sarun talks about
zIndex is a modifier that controls the display order of overlapping views in SwiftUI.
And Sarun's article will tell you the important things you need to know about zIndex and rendering.
Next up is an article by Toomas
While Toomas was working on a mixed UIKit and SwiftUI project, he needed a way to access the UIHostingController within the SwiftUI view so that he could use it for interacting with other UIKit methods. His blog post tackles the problem and provides a simple solution detailing how to implement such a thing.The approach he takes is using the SwiftUI environment and inserting an object into the environment, which then keeps a weak reference to the view controller hosting the SwiftUI view. Using the SwiftUI view environment has a benefit of allowing multiple other SwiftUI views within the hierarchy to use it as well.
This is a nice overview post of a detail related to UIKit and SwiftUI interop.
Leonardo grabs back to an older API made available in SwiftUI.
In 2019, Apple released an API called BackgroundTask. The main goal was to keep your app’s content fresh and perform operations that will take a few minutes to finish while it is running in the background. Something to take into consideration is that this API might require a powered device and network connectivity to execute longer tasks. And now we have it for SwiftUI!
In Leonardo's post you will learn how you can test and debug your background tasks without having to wait for the system to call them for you, in SwiftUI.
Natasha has a nice Core Data intro this week.
It never hurts to review some basics. And Natasha does just that with her post about Core Data.
To persist complex data structures in an iOS application, Apple provides us with the Core Data framework. Core Data allows us to store permanent data for offline use, to cache data, to add undo functionality and more.
In Natasha's guide, she will take you through the main concepts of Core Data.
And that's it again for this week.
Remember Do iOS on November 8 and 9, tickets are available.
Tickets run at 175 euros plus a few percent ticket handling. As a hotel, best option is the Student Hotel Amsterdam City. It should cost you about 150 euros, is right on top of the venue and has a nice subway connection allowing easy access from the airport and the city center.
Buy your ticket as soon as possible. Because each ticket sold allows us to invest right back into the conference. And this week I started posting some of the speaker's with their talk titles. I will let you know when I grab all this information and put it neatly in one place on the Do iOS website.
If you have any feedback, please send me a message through Twitter. My DMs are open. And don’t forget, you can always buy me a coffee. Link for that in the shownotes.