Read the transcript
Jeroen Leenarts: Hi, and welcome
to the 62nd episode of my
podcast. Happy New Year
everybody. I want to switch
things up a little bit this time
around. So I'm not going to be
telling you that I've been
developing software for 19 years
and developing iOS app for over
nine years and running Dutch
cocoa ads for eight years. I'm
just going to start. First of
all, there was some good news
this evening. The kids are
allowed to go to school again
next week, so not an extended
lockdown for the kids. And
they're not going to take away
many other measures. But now at
least my kids can enjoy their
school again next week. I think
they're very much look forward
to that. And it's a good thing
for them that they are able to
just go back to school again.
Also, I'm I'm getting my third
vaccination tomorrow. So that's
like the booster shot. It's not
Omicron specific, but at least
it's it improves the protection
that fractionation gives me
significantly. And yeah,
hopefully we won't end up in a
situation that you have to get
like a new shot every half year.
But I'm glad that I'm able to
get my third shot. And I
recommend anyone who has the
opportunity to do so to do so as
well. So in this episode, I'm
going to talk about convert your
spirit presets into new async
await syntax using continuations
Solvang advent of code 2001 in
Swift. What I've learned from
advent of code 2021 cascading
environment actions in Swift why
creating animated message
reactions and interactions using
Swift UI, and five things iOS
developers should focus on in
2022. That last article is by
Daniel Ross and we'll also talk
about his Monday morning tweets
and the first one of the new
year. So let's dive into the
first article of this episodes.
That's convert your Swift
results to the new async await
syntax using continuations it's
SSR. Fargas Casa Seca, the new
async await swift concurrency
API released together with Swift
5.5 was finally unveiled during
WWDC 21 in June. This new
architecture fulfills all the
expectations that we iOS
developers had, and we had
eagerly been waiting for this
since swift first was released
in 2014. And our hopes got
boosted in 2017, when the Swift
concurrency manifesto was
released by Chris Latner
himself. So for all the new
API's and tools that were
introduced, the new async await
syntax actors and tasks
attracted most of the attention
from the Swift community. And
that was with reason, and these
new additions improve the
readability of asynchronous code
and eveness. When ensuring
thread safety in your apps,
there was also another mechanism
introduced that didn't catch so
much consideration even though
they are powerful when working
together with async await. And
those are continuations. So what
are continuations? According to
the documentation, continuations
are a mechanism to interface
between synchronous and
asynchronous code logging
correctness violations more
precisely, a continuation is an
object that captures the program
state at a given point being
able to continue it's when it is
required. This might sound very
abstract, but you can learn to
appreciate the deeper when
considering how Apple implements
asynchronous code up till now
with callbacks and the delegate
pattern. continuations shine
with all the brightness when
working with these two patterns.
They act as a bridge between the
old world callbacks and
delegates and the new one async
await to achieve a more readable
and structured code by helping
to create new async functions
for sets for the old ones. This
is helpful when setting third
party libraries or Apple API's
containing these patterns, as is
the case in the article written
by CSR. So any article by CSR,
he goes into a lot of detail on
what these continuations are and
how you can use them to bring
your callback and delicate based
asynchronous code into the async
await world. So it's a nice
little detail on the new async
await and related features in in
iOS and Mac OS. And in Swift, I
should really say. And yeah,
it's one of the things I missed
this one as well. So have a look
at these continuations and see
if they apply in your situation,
if you are dealing with some
legacy code that you need to
bring to the async await world.
A number of my listeners have
been working on advent of code
2021. And for those who don't
know what this is, at front of
God is an advent calendar or
small programming puzzles for a
variety of skill sets and skill
levels that you can be solving
in a programming language that
you like. It's an advent
calendar with with CO challenges
in the month of December. So let
us from December 1 till
Christmas. And each day you will
get a challenge that you can
then try and solve with a
language of your choosing. I've
I'm linking to two articles of
people who participated in
Advent of code 2021 And that
share their resulting solutions.
It's fun to just browse through
their solutions and read the
articles because they each had a
different challenge that I found
to be the most difficult and
that's very interesting because
it just shows how different
different people can think about
software developments and how
different people can come to
solutions for the same problem
in a different way.
So having Have a look at these
two articles, the first one by
Oliver bins. And the second one
by Asha. I've linked them both
in the show notes. And they both
shared their solutions on
GitHub. It's linked from their
articles, have a look at it,
just browse through the
solutions get acquainted with
Athan of code. And maybe if you
haven't participated in Advent
of code in 2022, I still have to
do this at some point myself,
but I always like reading up on
the solutions that people
created after the fact. So these
are two of the articles that
stood out to me, and I hope you
liked them as well. The next
article is by Magnus Johnson
cascading environment actions in
Swift UI. Magnus has written
about the Swift UI environment
to pass actions around before
and how it enables you to focus
on data of your views. And in
this article, he wants to take a
little bit of a deeper dive into
the same line of thinking and
apply it to an observer like
pattern implemented. For swift
UI. There are several places in
your view hierarchy that you can
attach an action to an event.
And the goal is that from a sub
view, you can call a single
method that calls every action
attached to it as it bubbles up
through its parent fuse. He
refers to this cascading actions
as in the cascade of events,
it's an interesting way that you
can attach actions to your user
interface in Swift, why I found
it interesting that it was a way
that you could have like a
single type of pattern in all
your user interface defined in
Swift, why, and that you can
then first of all have a similar
way that you can actually
trigger events, but also, it
allows you to have like an
hierarchy of actions that you
want to perform. That is based
on the on the position in your
view hierarchy. So if you have a
button, you want to do submit,
if it's an action on all
different areas, in your view
hierarchy, you might not want to
submit, but you want to clean up
things. So yeah, it's just
something that that really
works. Well. If you have some
more complex user interface
interactions that you need to
implement. The next article is
by my colleague, Stefan, it's
actually the first article that
he has published in his new role
as developer advocates at the
company that I work, I'm not
going to push the company line
on my podcast. But what I really
liked about the article is that
it's a tutorial about how you
can create animated message
reactions in the chat
applications. And all the sample
codes in his article is purely
swift UI. And it shows the power
and ease of use of the
framework. And what's really fun
of this article is that it's
yes, of course, it is a company
blog. But the article is really
about creative ways of using
Swift UI. And I just wanted to
share that because I was
surprised with how little code
he needed to achieve the results
that he was getting in his
article. So yeah, just have a
look at it. And let me know what
you think. I'll kudos to Stefan
for, for writing this article in
such a concise and informative
way. So New year, new year
resolutions, and Donnie wants
this here to serve. So his
article five things iOS
developer should focus on in
2022. Add on, you also list five
topics that he thinks you should
focus on in in 2022. So I will
list the highlights, he
considers that you should be
using Swift UI alongside UI kit
and vice versa. So basically, he
says start using Swift UI
people, it's now primetime ready
to go. And we're going to be
using it more and more, he also
suggests to look at
architecture. And he doesn't
mean like, just learn all the
default patterns like Viper and
all the MVVM and whatnot,
architectures, but to just learn
about the one level behind app
architecture, so single
responsibility principle
dependency, injections,
abstractions, protocols,
generics, just just a building
blocks of a good app through its
architecture. And that will be
extremely useful when working on
interrupting swift UI and UI kit
in a single code base.
The third topic that he suggests
you should really be looking at
is async await, especially since
the latest Xcode release with
13.2. That swift concurrency is
now available on App dogs on iOS
from iOS 13. And up now is the
time to really dive in on async
await, because we have to
support iOS 1314 and 15. And for
most companies, that's like a
very reasonable number of fish
to support back historically, of
course, if you still have to
support iOS 12, and earlier,
you're out of luck. But even
then it's worthwhile to start
looking at async await because
who knows what will happen a
year from now, the fourth topic
is probably something that is
near and dear to Donnie. So
that's core data. And I agree to
Dani suggesting that you should
look at Core Data as a as like
the default way to persist data
in your application because it's
just the platform or the system
option that is made available to
you to store data in a
structured way. And of course,
he has a great book on this
topic that you should consider
buying. If you want to know more
about core data. The fifth topic
is accessibility. And a topic
that has been gaining a lot of
mindshare in my RSS feeds the
last few months More and more
people are indicating that they
think accessibility is
important. And also,
accessibility is something that
is more than supporting people
with a permanent disability.
Because quite often people are
also what people are calling
temporarily disabled. So this
could be somebody who has a
broken arm. But it could also be
like a person with a kid on
their arm in a grocery store
that have to operate a phone.
And they either have just one
finger available or no finger at
all, you also want to be
accessible in your app for those
people quite often. Because you
will be surprised how many
people are actually using
accessibility features on their
iPhone, even though they are not
permanently disabled themselves.
And they're doing that just
because it's convenient, because
they have an app that has proper
support for accessibility, and
it allows them to do things that
would otherwise just be
impossible. So those are the
articles for for the new year.
And now let's dive into the news
Monday morning tweet. So New
year, new Monday morning tweets,
not a lot of people have
responded to daanish Monday
morning tweet. And that's most
likely because a lot of people
are still either on their time
off, or they're still just
getting started with the new
year. So taking care of some
backlog of email or whatnot. So
I will just list all the people
that have responded to the tweet
by Donnie right now, first of
all, I actually was the first
person who responded. So I set
up a crazy amount of lights
around my desk, I added a couple
of of key lights around my desk
to be able to do some green
screening for work. I'm working
on some conference
participations for for
conferences already. So
hopefully they're all those, all
those conference talks will
materialize. And I'll be able
to, to to travel a little bit in
Europe and maybe the US and some
other places around the world
this year to present at
conferences. I'm also going to
focus on writing some copy this
week, I installed Final Cut Pro
for some video work that I need
to have finished for the end of
the week. So that's a completely
new skill set that I'm trying to
develop. And of course, I
mentioned that I need to record
my podcasts and do some
development work. So Michaela
Quran starts working again this
week, and it helped him to hear
more about a freelance project
from a client, she's expecting
to have a very busy first couple
of months this year and Alia GDM
is trying to get back into the
grind. And he released a new
episodes with Charlie Chaplin.
And he's preparing some swift
packages for release. He's
finishing up an episode with
with Mustafa that's the creator
of the tasks app, great app, you
should try it twitter handle at
the task app, and he's having a
chat with Mikhail Teagasc. So
he's probably recording with
him. And he's starting some work
on a future video and he's doing
some updating on the bright
digit websites. Denise Napolean
is finally learning factor
graphics since the first time
she's been exposed to it 20
years ago in Flash five even and
maybe she will be able to make
herself an app icon one day. Ben
McLeod. Wilkie is a nervous
wreck. He spent his first app
for review last night to the App
Store. No worries, Ben, you'll
get through this. And hopefully
you will share what your app is
about soon. And we can enjoy
your work on our own devices.
Within due time. Laurent is
publishing a sports app that
makes use of vision and core ml,
and he's going to work on some
polishing of that over the next
week. And he's hoping that
Donnie is also having a great
week. Luke Lazaro is getting his
portfolio ready for a junior
position.
He's hoping to get it done by
the end of the week, so he can
start applying for jobs as soon
as possible. And Tim has been
turning in his graduation
project, and he's starting to
prep to present and defend it in
a couple of weeks. So he's
wrapping up his education. And
who knows, maybe he'll be
applying for jobs as well soon.
He's a little bit nervous about
it. But according to his mentor,
he's set up for success right
now. So good luck to him in the
defense of your graduation
project, and I know you'll just
do fine. Chris Lipinski has been
learning lazy grids. And last
week, he implemented Continuous
Delivery relationships and he's
getting close to releasing his
app. And maybe he will start to
test it with test flights in
like one or two months from now.
QSR Linton is wishing Donnie a
good morning, and it's still
afternoon as in his region. But
anyway, he's wishing everybody a
fantastic new year, Sentinel
light indicates that he has
launched his plugin for stream
deck. It's something that he
worked on for about two months.
It's a plugin that allows you to
launch macros shortcuts from
stream deck, and it's also
features and accessibility mode
for visually impaired and or
other users. And yeah, it's a
nice little plugin for stream
deck that allows you to add
shortcuts and gives you a lot
more flexibility with this neat
little device. I don't have one
myself because I just use my
custom build macro pad for
similar use cases. So Alexander
Steiner is getting back to work
and learning more about in the
app deaf marketing So he's
asking somebody has some
recommendations for learning
materials. And Amman font as
well is, is hoping that Xcode
cloud is coming out of beta. And
top Paulo giraffe is wishing
Donny Happy New Year. And that's
about it for for this week's
Monday morning tweet. Usually
there's a lot more responses on
it. But I can imagine that just
right after New Year, people are
still just trying to get back
into their normal day to day
rhythm again after a few days or
maybe a few weeks off. And yeah,
I hope everybody has a great new
year. And 2022 will be a lot
less Corona focused and last two
years that we've been dealing
with, so best wishes to
everybody and happy new year. If
you have any feedback or
questions, please reach out on
Twitter at app Force One, my DMs
are always open. And if you're
interested in appearing as a
guest on my podcast, please
reach out again to Twitter at
app force one because I'm always
looking for new people to be a
guest on my podcast.