Read the transcript
Jeroen Leenarts: Hi, and welcome
to the 70th episode of my
podcast. My name is Jeroen
Leenarts. And I've been
developing software for over 20
years developing iOS apps for
over 10 years and I've been
running the Dutch CocoaHeads for
over nine years. If you're an
iOS app developer, you should
listen to a podcast because it
will keep you updated,
interesting articles conference
and if events you might not have
heard about. In this episode,
I'm going to talk about what is
the iOS version global market
share DocC plugin public service
announcements, X et NS predicate
expectation is slow and what to
do about it. That's a difficult
one to pronounce. Using the few
builder attributes to implement
swift UI views in methods,
dynamic and semantic colors for
for one, and also I have a
conference announcement to make.
I'll be a speaker at Tech Rama
2022 in Antwerp. Furthermore, I
will be talking about Danny's
Monday morning sweet. So let's
get started. A lot of things are
happening in the world right
now. And I don't want to go into
too much detail there. I have my
opinions on that. And I have for
some of them on Twitter. But
what I do want to mention is
that my dad is currently
undergoing some surgery, it has
been planned, it was supposed to
happen in January because of
some preventative measures. But
due to the whole Corona thing
and the taxation of the hospital
system in the Netherlands, they
had to extend when he was able
to get in for the surgery a
little bit. So fortunately, he
is able to get this operation
today. And I look forward to
getting the news from my mom
that everything went well and
that he should be home tomorrow.
Again, it's some pre emptive
work to make sure that some
stuff in his arteries keeps
connected to the way it should
be. He has had some history of
aneurysms over the years. And
right after finishing the
recording session of this
episode, we got good news of my
mom. He's doing well and in
recovery right now. So hopefully
you can see him next week.
Furthermore, my kids are at home
this week. So it's going to be
an interesting one to work
actually while they're
downstairs, tearing the house
down despite my wife's presence,
because I don't know what it is
with these two. But if they're
not going to school, then they
are always ready to just go
ballistic really, which is a bad
choice. Roberts actually
considered a world circumstances
as well. So anyway, too much
stuff going on right now. So
I'll just keep it at the
technical content stuff, because
that's something that I do
understand and something that I
can talk about, without too many
bad jokes really about other
topics. So the first article
that I'm going to talk about is
what is the iOS version global
market share? This is an article
written by Soren Wu. And why do
you need to know about market
share of each iOS version?
Right? Well, Apple released a
new iOS version every year with
new and improved API making your
life as a developer easier.
Every day, developers want to
support the latest iOS version,
because that makes it a lot
simpler for you, right not
having to support the old stuff.
But that's not always possible.
So clients, they usually want
the opposite, they want to have
as many users covered with their
app as possible, which means
that you also have to support
older versions, because for some
reason, people have a tendency
not to update to the latest
version of iOS right away. So
the best thing that you can do
is to change the minds of their
users and also of your clients
directly. Because it is a burden
to support older versions of
iOS, but not always possible. So
you need market share numbers,
right? Well, in this article,
certain ws shares some
information, a resource that you
can look at to have an idea of
what the global market share of
iOS version adoption is. And
with this information, you
should be able to have a
stronger case with your, with
your clients to be able to
advocate for dropping an iOS
version release. The next
article is by hack J. It's Doxy
plugin Pribyl public service
announcements, there's been some
changes in Xcode 13.3 beta
three. And one of these changes
has some effects on how you can
publish the Doxy content as a
static website. In his article,
he lists some scripts that you
can use to make sure that your
publication process of your
static version of your doc C
output still works. So very
helpful that he did this little
follow up on the article that I
mentioned last week. Now we'll
get to the difficult title. It's
a blog by mocha coding FCT NS
predicate expectation is slow
and what to do about x et NS
predicate expectations requires
a timeout of at least 1.1
seconds or it will fail
regardless of whether the
behavior on the test occurred.
To avoid slowing down your tests
use nibbles to eventually
instead, asynchronous code comes
in various forms, callbacks
notification delegate calls, and
most recently async await does
not no need to worry. Because
there's a way that you can also
test these bits of code when
asynchronously For that you
want to test change the state of
the system as the result from
ethical that doesn't come with a
callback or hook xe test,
obviously, xe NS predicate
expectation to test it, it has
some drawbacks. And in this
article to make sure that you
can deal with this
asynchronously in your tests to
the best of your abilities, he
recommends that you do not use
Axi tn NS predicate expectation
and that you use nibbles to
eventually instead, in this
article, Gio will list what his
reasons are, and what is his
argument for actually not using
the system default provided way,
but using third party
dependencies weigh. So it's an
interesting read, make up your
own mind. But it's good to know
that our options out there that
could make your life a lot
easier when testing asynchronous
code. So serial coder dot Def
has an article on using the fuel
bill attribute to implement
switch to refuse in methods. So
let's grab it all. Writing about
using the fuel bill attribute to
implement switch to face using
methods. thriftway provides
undeniably a funny and
innovative way to create user
interfaces, we can get great
visual results much faster and
with less pain compared to UI
kids usually tend to break down
complex you with smaller
components, which of course is a
good practice. Nobody really
wants to huge code structure
that contains everything in the
view. And when it's possible to
have smaller chunks of readable
and manageable code. Most of the
times, you achieve that by
creating additional spiritual
source files where each one
contains the implementation of a
different part of issue.
Although this is the way to go.
In the majority of cases, there
are circumstances where it seems
a bit overkill to create a new
file just to keep a small
portion of the few separate.
Thankfully, there's an
alternative, more immediate and
quick to implement, which is to
implement parts of a view in
methods that's feasible thanks
to a specific attribute in Swift
UI called View builder, which
according to official
documentation is a custom
parameter attribute that
constructs views from closures.
In this article Gabriel shows
how you can use this view
builder attribute to make few
hierarchies with the use of
methods. It's a nice overview,
it allows you to structure your
Swift UI high view hierarchies
in a little bit of a different
way. And I think it's good to
have this tool in your arsenal
because it gives you a lot more
flexibility, and makes you able
to define few hierarchies based
on some logic that you have in
your code, instead of just
having to flesh out the entire
view hierarchy, and then
enabling and disabling the
different pieces as you go. So
have a look at this article.
It's a nice in depth one on the
Swift UI. And I think it's a
very convenient tool to have the
next article is by Jordan Morgan
dynamic has semantic colors for
four colors are complicated
beneath the sea of color theory,
hitting contrast ratios and
setting on 48 Different
furniture for great iOS 13. Hold
a bit the whole situation by
introducing chocolate, semantic
and dynamic columns and iOS made
this easy to deal with though no
matter if you're addressing the
concern by using Apple fender
defaults or rolling your own.
Instead of judging Penelope of
colors, you can lean on this
meaning instead of their RGB,
HSL, or hex values, the big
thing that you need to remember
off this article is that
whenever you pick a color, it's
never one color that you have to
pick. At the absolute minimum,
it's two and for most colors,
that's no Misha before, read the
article by John Morgan to see
why this is the case. And you
will know a lot more about
colors and definitely check out
his book series. It's a good
solid rate. And that was already
the final article of this week.
I hope and miss nothing in the
editing because I made a lot of
mistakes when reading the
content for this week. What I
also wanted to mention is my
presentation at tackle Rama
that's an Android based
conference, the title of the
talk is being a lead software
developer. A What did I hear the
title before somebody wrote a
book about that, right? So you
work hard solving problems and
coding smart solutions is your
thing. And then there's a day
when the bomb was dropped? Would
you like to be promoted to the
team's lead developer? This was
my reality a few years ago, I
did not know much about being a
lead developer. I worked with
many great ones over the years.
But now I had to become one. I
had to learn new skills,
consider factors outside of my
comfort zone. But I had to learn
on a number of topical areas. I
will go into detail about the
lessons I learned when growing
into my role as a lead software
developer. Everybody's
environment is different. But I
think there is something useful
in this presentation for
everyone. So if you're
interested in this talk that I
will be giving on May 25 in
Antwerp, have a look at Tech
rama.pe link will be in the show
notes. And then the final thing
I wanted to touch upon, that's
the Monday morning tweets by
Donnie I skipped it last week.
So Danny's Monday morning tweet.
Of course I'm recording my
podcasts and doing all kinds of
other things like preparing
content and preparing
presentations and stuff because
I have a number of things coming
up in the next couple months.
But there's also other people
who do very much very different
very interesting things. For
instance, Francisco Marine is
working on his Hugo theme.
That's a static site generation
tool. You should check it out.
It's very quick and easy using
Shawn Allen's def course and
he's waiting for a foot X ray
results. So I hope it's alright
Francisco and then there's also
Katrina, she's learning new
stuff and just coding To help
her take her mind off of the
absurdity that is happening in
the world right now. So but
Trina and the boyfriends are
making an app to manage home
smarts, very curious to see what
that will be. And Chris
Szalinski released his first app
on iOS. It's a simple one, but
it uses core data. And the book
by Donnie really helped him out.
So this week, he will be back
working on his personal finances
app and that he's been working
on for two years already. Every
card says that he's trying to
learn combined during this and
the coming weeks, and Daniel
recommends his book, of course,
Flo writes code says mostly
studying for exams this week,
but also hacking away at a
little game that you're working
on. Christian Lobos mentions
that his app is gaining some
traction in the stream deck Mac
productivity bubble. So this
week, he will be spending time
on learning proper advocate to
improve the UI. The app is
called button creator for stream
deck sounds very useful if you
have a stream black minor screen
is mentioning Good morning. And
he feels very much the same as
Donnie about all the real
circumstances. So he finds it
hard to say Happy Monday. So
over the weekend, he pushed the
new landing page for email me
app, and it's a new notetaking
app that probably involves
email, right. So that's it for
this week. If you have any
feedback, please reach out on
Twitter. I will be hosting
another Twitter spaces on
Wednesday at least that I'm
planning as well. So have a look
at my Twitter, please follow me
and you will definitely not miss
that one. And if you do miss it,
there will be a recording
available afterwards. So have a
good one this week and talk to
you again next week.