Read the transcript
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