Read the transcript
Jeroen Leenarts: Hi, and welcome
to the fortnight episode of the
app force one podcast. My name
is Leenarts. And I've been
developing software for over 19
years developing iOS apps for
over nine years, and I'm running
the Dutch cocoa has for over
eight years. If you're an iOS
app developer, you should listen
to my podcast because it will
keep you updated on interesting
articles comp, conference and
events you might not have heard
about. In this episode, I'm
going to talk about writing
effective software development
notes for future you how I
prepare presentations and
workshops, X impact access crash
error, uninstalling and solving
it analysis of CV two zero to
130860. Solving CPU usage crisis
with X codes, energy organizer,
multipeer connectivity tutorial,
and programmatic navigation in
Swift UI. And, of course, our
wrap up my episode with Danny's
Monday morning tweet, I've got a
couple of different links in
this episode. A one is about
notetaking. And the other one is
about creating presentations.
You could say that this is due
to me preparing myself for my
new job that for some reason,
that also exposes me to a bit of
a different content, but also
related to all the stuff I need
to do to wrap up my current
role. Because I need to transfer
a lot of knowledge, I have to
talk about a lot of things. And
I have to check my notes very
frequently and make sure that I
present everything in a succinct
fashion to all my colleagues
that I will leave behind. So
yeah, I think that's
interesting. And also the both
of them are skills that are
important for you as a software
developer. So yeah, that's why I
included them. And I hope you
liked them. And if you look at
my last week, it's been very
busy. I've been busy with
creating all kinds of
documentation, as I already
mentioned. And I'm just getting
all these invites in my calendar
of colleagues that that just
want to see me like one more
time before I wrap up the month
of October, even though it has
only started for four days now.
So let's just quickly dive in
and see where we'll end up. So
the first article is called
Writing Effective software
development notes for future
you. So have you ever found
yourself saying I feel like I've
solved this type of issue
before, but it can't remember
how I did it? Have you found it
difficult to come back to task
once you've been interrupted,
these issues can be solved by
taking notes during development.
Kyle started experimenting with
note taking quite a few years
ago, and he found the benefits
to be quite substantial. It may
sound just like another thing
for you to do. But with this
article, Kyle hopes to show you
how you can be very effective
with little efforts in creating
your own notes. It will make you
a better, more organized and
more efficient developer. God
talks about different types of
notes that you can create, how
you can create them, and which
things you should actually write
down. And also what kind of
tools you could be using when
creating notes. It's a very nice
overview. I really like that he
goes into how you can structure
your notes as well. He has a
preference for markdown, which
links up quite nicely with my
own preference, actually. And
yeah, I think it's just a good
reminder, what power notetaking
can actually bring to you as a
software developer. Another
article I wanted to mention is
boss Brooke, he wrote an article
on how he prepares presentations
and workshops, because recently
he left Apple, and he will now
be giving another talk again. So
he thought he to write down how
he prepares his presentations
and workshops. So he also
mentioned that that speaking or
giving a workshop is not for
everyone. And that's okay. So he
would generally recommend that
everybody at least try it once.
And if you like it, continue it.
And if it's not for you, then
don't bother. What's really nice
is that boss gives a quick
insight in how he creates his
submissions to calls for papers
and how it takes a submission to
an actual slide deck at the end.
He actually has a preference for
two called deck set, which I use
myself as well, which is great.
But what's very interesting as
well is that boss really likes
to write down things on paper on
a notepad to just get a general
timeline of his talk in order.
So have a look at it and see the
example image that he has
provided of a talk that he
created in his notebook.
And maybe you can learn
something from this as well. I
really like it because it's just
as the previous article, it's
right up my alley. It's
something I do myself as well,
which I've always found it hard
to describe to people how to
actually do these things. But
fortunately, boss has written an
article that does this for me in
one easy link. So have a look
and see if it's something that
you'd like to do as well. Now
let's continue to some harder
topics which is Crusher
resolving unsolved formulae, has
written a nice article on axing
bet X crash error resolving so
how you can actually understand
solve this issue, because it's a
crash that happens quite
frequently, unfortunately. But
usually, if it's happens, it's
something that you did. So it's
something you have to figure out
in your own code to see how and
why it has happened. The article
of Antoine is, as ever, very
thorough, and it goes into
details on how you can actually
capture the crashes and unlock
them to some system that you can
use, but also how you can during
development prevent yourself
from creating these types of
crashes in the first place,
because Xcode has some support
for figuring out how you cannot
corrupt your memory. And Anton
also details what are a common
set of causes for these types of
crashes. So have a look at his
article and see if there's
something you can learn there.
The next article is analysis of
CVE 202130860. It was a crash
present in iOS and Mac OS that
allowed for zero click
vulnerabilities and it has been
exploited in the wild. Recently,
Apple released iOS 14.8. And Mac
was becsher 11.6, both fixed an
integer overflow and use after
free vulnerability. The watch us
platform was also patched to fix
the integer overflow issue as
well, in this article that I
linked, there will be an
analysis of the integer overflow
and Core Graphics CVE 202130860.
And after examining the modified
dynamic lip, it appears that
there were other issues that
were resolved as well, that were
all related to image processing.
This is really one of those
articles that you either like it
to dig deep, or this is not
something for you. The exploit
details in this article has
actively been used by Pegasus,
at least that's one of the known
entities that has used this,
this exploit. But most likely
there have been other parties
online that worked on this issue
as well. What's interesting
about this issue is that it's a
it's a zero click exploit. So
being sent the right image could
already expose you to
exploitation. And this article
goes into some detail on how
this has been executed in the
wild. So to stick with topic of
complex stuff. The next article
I want to focus your attention
on is called solving CPU usage
crisis with X codes energy
organizer, it's written by Bruna
Raha, and if you don't know what
a CPU usage termination is,
consider yourself lucky. Not
only is this one of the nastiest
crashes you can get in iOS, but
it's also not even considered as
a crash by the system. These
terminations are not reports to
crash providers like Firebase.
So if your app has severe high
CPU usage crashes, you don't
even know about it until your
users start reporting. It's
really nasty stuff. In this
article, Bruna explains what CPU
exceptions are in iOS, I can
recognize them. And I can search
for them by using the Xcode
energy organizer. It's a great
approach. And by monitoring
energy usage, you can actually
see where CPU or GPU is being
spent, and have an idea of what
you should actually optimize in
your code to make sure that
you're not get kicked out of the
memory. A very thorough article
again by Bruno and a great way
to just look at your own
executing code through a
different lens. A smaller often
overlooked framework on iOS is
called multi peer connectivity.
In the article written by Ralph
EBIT,
you will read about a tutorial
that shows you how you can use
multi peer Connectivity
Framework to communicate between
iOS devices. The example shows
how to implement the connected
colors app which synchronize the
color between multiple devices,
the multiple Connectivity
Framework provides a layer on
top of the Banchero protocol.
Under the hood, the framework
automatically choose a suitable
network technology, Wi Fi
network if both devices on the
same Wi Fi. Peer to Peer Wi Fi
or Bluetooth article basically
is a big chunk of code that
explains how you can initiate
multi peer connectivity service
session and how you can actually
connect to this session. It
involves a lot of discovery and
connecting and then you're off
to the races and can do great
stuff with multi peer
connectivity. Multi peer
connectivity is a framework that
allows to connect in an ad hoc
fashion with devices that you
probably don't know. But that
still aren't the same code as
your app. And you want to
exchange information with so you
just get a number of devices
together. They discover each
other by any means available.
And then you can do some
networking. Final article is by
as fifth percentile. It's called
programmatic navigation in Swift
UI. By default, the fairest
navigation API's that swift UI
provides are very much centered
around direct user input. That
is navigation that's handled by
the system in response to
offense likes button taps or tap
switches. However, sometimes we
might want to take more direct
control over how an EPS
notification is performed. And
although switch UI still is
nearly as flexible as UI kits or
advocates in this regard, it
does offer quite a few ways for
you to perform completely
programmatic navigation within
the fuse that you are building.
In his article, John explains a
number of ways that you can do
typical UI behaviors from code,
like switching tabs and
controlling the navigation
stack. Although swift UI
navigation, although switch wise
navigation system still isn't
nearly as flexible as those
offered by UI kit, and advocate,
it's still powerful enough to
accommodate quite a lot of
different use case that you
might have when running your
user interface, especially when
you combine it with Swift was
fairly comprehensive state
management system. Also, of
course, you always have the
option to wrap your Swift UI as
few hierarchies within housing
few controllers, and use only UI
kits and advocates implement
unification codes, which
solution that will be the most
appropriate will largely depend
on how much customer
programmatic navigation you
actually want to perform within
each projects. Those were the
articles now let's move on to
daanish Monday morning tweets.
Donnie again this week on Monday
morning asked what plans are
from people who are following
him online. And I actually have
an answer in this one as well.
What I say is merging all kinds
of stuff. Updating to two is two
Dotto arranging painter prepping
for a new job knowledge transfer
and podcast recording. So lots
of things to do today. And Peter
freezin is updating the code
snippets for a stock at swift
leads to make use of the latest
features in Swift UI and
Firebase. Already, he has thrown
out an entire class and the code
is a bit more readable, thanks
to list bindings. Clements is in
the midst of implementing share
play for letter rooms and
anagram style game that he's
released a couple of months ago.
He has a video that share
playing action below. And his
next step is to try and figure
out how to make this work
sensible with VoiceOver. On
another note from Fabula is
announcing that He's launching
in the App Center 2021 edition.
So don't forget to submit your
app so it can consider to be
featured in his advent calendar
in December. And those were
actually pick announcements on
Danny's Monday morning tweet.
And not a lot on there this
week. But I do notice that
people that were on there, but
that didn't mention they were
mostly busy with learning new
technologies and learning about
Swift UI and core data. So all
in all, very much a lot of fun
to do. Yeah, that's it for this
week. I hope to talk to you
again next week. Also, I hope
you liked my mechanical keyboard
special that I did last week on
Thursday. If you haven't
listened to it yet. Please do
because it was a fun exercise
with four people talking about
mechanical keyboards form a
podcast, we were all iOS
development. So that's the tie
in with my regular episodes and
interviews and podcasts. Also, I
have a lot of content ready for
you. I have them. A couple of
them available on my pot fan
page that's popped up fans slash
app first one. So have a look
there if you want to have early
access to my interview
recordings. So who knows maybe
it's something for you. If you
have any feedback or just want
to reach out to me, have a look
at Twitter at app Force One. And
as already mentioned, talk to
you again next week. And have a
great week.