Read the transcript
Jeroen Leenarts: Hi, and welcome
to the fifth episode of my
podcast. My name is no Linus.
Now I've been developing iOS
apps for over nine years, and
I'm running that Cocottes for
close to eight years. If you're
an iOS app developer, you should
listen to my podcast because of
a keep you updated on
interesting articles and
conferences you might not have
heard about. In this episode,
I'm going to talk about case
study building a profitable app
in 30 days, should every if
statement have an else clause,
our sandbox can help in
preventing data races, non
isolated and isolated keywords,
understanding actor isolation,
inspecting HTTP traffic with
instruments, Kaleidoscope merge
tool. And, of course, daanish,
Monday morning tweet, it's been
a busy week, a lot of
transferring of knowledge,
talking with colleagues planning
for the next quarter really. And
yeah, I'm not in the next
quarter. So it's a bit awkward
to be actually planning things
with my soon to be ex
colleagues. So I tried to make
the best of it. But it's it's
very exhausting to just make
sure that I stay engaged and
keep supporting my peers, even
though I know I won't be
enjoying the fruits of our labor
right now. Just a couple more
weeks, and I was already
informed that I will be a nice
get together in the last week at
my current job. So to get a good
way to say goodbye to the people
that I've been working with for
three and a half years. Because
every time I think about it,
it's kind of strange, because I
work with all of these people
for three and a half years. But
I haven't seen any of them
hardly in the last one and a
half years due to Corona. And
yeah, basically one of the first
things that I'll will be doing
when seeing all these people
again, in person will actually
be saying goodbye. So it's a bit
it's a bit double how this feels
to me, because I'm looking
forward to seeing them in
person. I'm also in a way, look
forward to saying goodbye. But
as always, any goodbye is always
a bit bittersweet. But as
always, I expect to be able to
manage that as well. So, yeah,
just a few more weeks, and then
I'm getting involved into a
process that's going to last
three months. The new place I
will be working at actually has
an onboarding process of three
months, I was positively
surprised by that. Because
getting on boarded somewhere.
It's always tense period, having
some roadmap available before I
even started work there is just
great. So I really look forward
to that. Also, today is October
11. So two days from now, it
will be exactly one year that
I've published my promo
episodes, I will play the back
for you right now.
Welcome to the new podcast app.
First one, news and information
for iOS app developers. My name
is Hugh lane at iOS software
developer based in the
Netherlands. Yeah, that was
before I learned about filtering
and improving the voice quality
of my audio. So yeah, just for
comparison, here's a clip from
this promo untreated. Welcome to
my new podcast app. First one,
and this is treated. Welcome to
my new podcast app. First one
ever former first real episode I
got a new microphone. Hi, and
welcome to my new podcast app
Force One. It's amazing what a
difference just some audio
sweetening and a good microphone
actually makes. So just wants to
share this with you. It's it's
cringe worthy for me to actually
listen to this like a year
later. But I hope you have a
laugh about it as well just as I
did when I first heard it again
this week. And it also really
helps that I'm now way more
comfortable in front of a
microphone. Next week, I will be
releasing an episode. That's
sort of like more like a review
of the last year. And to just
see what benefits I've gained
from my podcast and why I
started podcasting what I
changed along the way in the
last year and if I'm still
actually enjoying podcasting,
but now let's dive into this
week's articles. The first
article is by Arthur from
zicklin Case Study building a
profitable app in 30 days,
author just built shape a lucid
dreaming app for iPhone. It took
him 30 days to design the app,
build it produced the audio
guides and ship it in the app
store. And in his article he
explains how he did it. It's a
nice overview of the process
that Arthur went through, and
also the lessons that he learned
along the ways and a lot of tips
in there if you want to do
something similar God Brian
who's done a talk at swift
leads, have a look at it on his
Gumroad page and I will put a
link to that in the show notes
also very worthwhile
to have listened to or have a
read through once you Read this
article by author. The next
article is by Sutton should
every if statement have an else
clause if statements is a basic
conditional statement that we
use every day, it is so
intuitive because it is almost
identical to what we think and
speak in real life due to its
simplicity. Sometimes you don't
put much thought into how you
actually use it. But it might
surprise you or not the bucks
that happen around if statements
more often than not. And that
usually happens when certain
uses if without the else clause
in this article sort of makes a
case for why or whether or not
every if statement should have
an else clause. And it's it's
it's some deep thinking about a
fairly fundamental constructs in
software development. And I
think it's good to just have
read through this and see what
Sharon's thoughts on this are.
And you probably learned a thing
or two about logical
construction in your code base
as well. It's really line level
things that we're contemplating
here. But the general principle
applies to a lot more things
within software development. And
I think it's very worthwhile to
have a little bit of a step
back, and some contemplation on
basic language constructs
because it applies so well in
our day to day job. Thanks for
that, sir. The next article is
by Lee. It's called How sandable
can help in preventing data
races. In a previous article by
Lee, he has taught you about
actors and how they can help you
and prevent data races by
ensuring mutual exclusion to the
mutual states. And the statement
is true as long as you are
accessing the mutable states
within the actors. If the
mutable states are accessed
outside of the actors, a data
race can occur in the article by
Lee, he explores this kind of
data race and how it can happen
and how he can use the sendible
protocol to help implementing a
data race. On top of that, he
will also take a look at the
future improvements that Apple
will bring to sendible in order
to tackle such kinds of
situations. Really great
overview of data races in the
context of using actors are
actually when using data outside
of the actors context. And I
think it's really good to be
aware of this specific issue
when dealing with with actors,
it's very logical that it
happens. But just having a read
through and the nice examples
that Lee provides is very
helpful in getting good grip on
these concepts and how you can
actually apply and avoid these
issues in your day to day role.
So, have a look through his
article and let me know what you
think. Then the next one is also
about actors. And this is by
Antoine formulae, non isolated
and isolated keywords
understanding actor isolation,
SC 313, introduced the non
isolated and isolated keywords
as part of adding actor
isolation control. Actors are a
new way of providing
synchronization for shared
mutable states with new
concurrency framework. If you
are new to access in Swift
OnSong occurred issue to read
one of his previous articles,
obviously, which is a good
overview, so have a read through
it anyway. And in this article,
he will explain how it can
control method and parameter
isolation when working with
actors in Swift in his article
on some details, what the
default behavior of actors is,
and how you can modify this
behavior by marking parameters
as isolated or non isolated.
This is very convenient, because
it allows you to influence the
way that actors deal with your
data and how the accessing of
the data is actually performed.
This is helpful because again,
as we've noticed in a previous
article, there are some details
involved when working with
actors that you have to get
right, because otherwise, you're
dealing with actors, but you
still can get issues along the
way. So have a look through this
article and learn about isolated
and non isolated keywords. And I
think it's very helpful to be
aware of this additional concept
that you need to know about when
dealing with actors. The next
article is by Keith from usual
off.com Xcode 13, added a useful
network instrument to record and
analyze URL sessions and HTTP
traffic. With instruments you
can now record a network trace,
it's a specific templates in
instruments and you should
really have a look at it. In the
article, you get an overview of
what you can do with this new
network trace template, and what
things you can find and debug by
using this template. What's
really nice about this is that
you can also really pick apart
what's happening during a
network call. So the DNS
querying the TCP negotiation,
TLS negotiation, waiting for
things and it shows you what's
really happening at a low level
within your network. There is a
caveat though, if you're
familiar with for instance,
Charles Proxy, you might be a
bit disappointed because you
cannot modify any of the headers
and viewing the headers and body
is limited to what you see in
the extended Details pane.
Charles has way more ways to
format the data that you're
looking at. A good tip that that
Keith provides is that you can
provide a session description
and the task description on your
Euro session and Euro session
tasks.
It really helps with how it's
being displayed in the network
trace in instruments. The final
link that I'm about to share,
it's not really an article. It's
just a link to a tool that has
updated to a new version and
which has been part of my day to
day work, I don't know for over
eight years already, and the
tool is called Kaleidoscope.
They just released version
three. And I'm just so happy
that the tool has received such
big new updates that I just
wanted to mention it here using
a specific merge tool take some
getting used to. But
Kaleidoscope has such nice
integration with Xcode really
through the debugging console,
you can just debug in Xcode and
get the debug output into
Kaleidoscope and then do some
more debugging and get that
input into Kaleidoscope as well
and have a comparison with also
the comparison features of other
formats within Kaleidoscope I
just create the price points of
Kaleidoscope might seem a little
bit hefty. It's like in my
timezone. It's 150 euros. But if
you can afford this too, I
highly recommend that you get a
license. I haven't upgraded
myself yet I still need to get
to that. But knowing how
Kaleidoscope has helped me and
save me so many hours in the
last eight years. I'm definitely
going to upgrade to their new
products so highly recommended.
And just have a look at it
Kaleidoscope dot app and the
next topic is Danny's Monday
morning tweets. When looking at
Danny's Monday morning tweet.
These are the highlights that
I've noticed Stuart Lynch is
celebrating his 100 and 50th
Swift swift UI video with a
video for the first time
finsanto has purchased some wall
art it seems when he's in front
of a camera, it looks like some
super advanced Lego set. I think
if we look at the picture, and
shy has added support for figma
to the prism tool that he built.
He refracted some codes and
ended up really cool and he
wished he could have used async
await for a lot of the change
that he had to do as I'm sharp
is working on a brand new course
test driven development in iOS
using Swift he hopes it will be
available before Thanksgiving.
And Tinder says good morning to
Donnie and he lets us know that
he recently released a new video
discussing the new swipe action
available in Swift UI, which is
really easy to configure and
customize. So thanks to him for
creating a nice video on this
topic. Check Nelson's also
wishes, Donnie Good morning, and
he's recharged after the weekend
and he helps everybody else is
to he's working on adding a
coverflow like interface to his
local music app, which he
launched last week. And he's
trying to learn a bit about Siri
intents for the next iteration
of his products. His product is
called mixtapes, a multi Cue
music player with smart mixes.
Taka has been fighting a strict
UI bug. It has to do with two
model sheet sheets, and one
accessed fear the complication
does not close. But yeah, other
one after accessing the normal
model sheets in the study, the
automotive sheet closes as soon
as he opens it. And he doesn't
understand why there's an
impacts are a link between these
two. So hopefully, it's okay can
can resolve it. And I wish and
best of luck with that. Rafi is
stuck on something, and he hopes
that someone can help him out
with it.
It's actually about an article
that Antoine has published. And
he's running into some issues
with Alamo fire. And Donnie
actually confesses that if he
gets to a code base that's new
for him. And as Alamo fire in
it. One of the first things that
he tends to do is rip out Alamo
fire. Well, that's a specific
preference. And Maurice is
telling us that he learned today
that a combined pipeline
receives failure completions, it
will also finish its work and
not listen for any new events
anymore. The same if there's a
finished completion that's being
received, he thought that there
would still be events received.
So today he is refactoring some
existing code. Pawel has
something to celebrate. Two
years ago, after six months of
development and learning swift
from zero he had released his
first iOS app, family grapes.
And it was it was the first step
in his career switch from being
a pharmacist to an iOS
developer. And if you want to
learn more about this journey,
that poll took a full look in my
back catalogue of episodes
because I did a nice interview
with him. So and the list goes
on and on. Obviously Leo is in
there as well. He's having to
recover a bit from from COVID He
seems he's hasn't been hit too
hard. And he's doing stuff for
the family and he's doing a new
podcast episode with gentle gel
cuts, which is a great guy as
well. And he also has a chat
with freak for PC on his new re
Wendling book on advanced swift
Lucas is mentioning that he
published his first app ever
completely written in Swift UI
for watching the results of
Czech elections. It was a long
journey for him to learn Swift,
but finally he made it and it
was the number one app in
Czechia in the free category for
over three days already, which
is awesome workman and Gil is
very excited about a new job and
it will be the first time that
he will work from an office in
about one and a half year and
Christian symbol Russia is
learning some objective C this
week. Objective C developers are
hard to find these days just
trying to get myself apart by
being able to work with legacy
code besides is helping me
understand swift better,
especially selectors and using
NS application main as to
applications, delegates. And
yeah, the list goes on and on.
There's some nice things in
there. And Eric Lippmann
actually started the 100 days of
Swift UI today, which is a great
course to do by Paul Hudson. I'm
also I'm also thinking about go
through both of his 100 day
courses at some point myself, so
who knows? And yeah, it's just a
lot of updates, and just tons of
stuff that are just great to see
people working on. It's a really
long list of replies on this
Monday morning sweets, probably
also because I'm a bit later
with reviewing the list. So
there you have it, people and
great episodes. Right before I'm
going to celebrate my one year
of podcasting. I hope you
enjoyed it. Always let me know
what you think through Twitter.
And if you want to support my
podcast, have a look at pod dot
fan slash app Force One. I
publish my recordings of
interviews I do with guests on a
podcast so you can get early
access to all these great people
a little bit earlier, and to
really help me support my my
podcasting journey. And I really
hope that you stick around as a
listener to my podcast for a
very long time. Thanks for your
time, and have a great week.