Read the transcript
Jeroen Leenarts: Hi, and welcome
to episode 80 of podcast app.
First one, 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 that
Cocottes for over nine years. If
you're an iOS app developer, you
should listen to my podcast
because it will keep you updated
some interesting articles,
conferences and defense you
might not have heard about. In
this episode, I'm going to talk
about fold unfold shortcut in
Xcode, how to use a different
swift tool chain in Xcode using
the is enabled environment value
in iOS 14. Mastering Timeline
view in Swift UI. Use text case
to make text uppercase, or
lowercase. How to Start iOS
development career part two c
lies our products to and
unlisted app distribution on the
app store. I will also mention a
couple of meetup events by Coca
Hudsonville and Twitter space I
will be participating in next
week. On top of that, there are
some conferences I wanted to
share as well tackle Rama at DEF
CON and 360 I def. So let's get
started. Last week, my episode I
recorded that with my DTI MC and
I had a listen to that. And I
reviewed what I thought of the
audio quality, audio quality is
quite decent, but especially if
I'm on the go, it's good enough,
but if I'm sitting at home, but
this microphone that I'm using
right now, again available, it's
just a no brainer that I
wouldn't want to use the DTI
make for like studio type ish
recordings. Of course, I'm in a
home environment. So I'm nowhere
near Am I near a true studio
setup. But still, I think we'll
be using the best setup that I
have available for my
recordings, depending on the
surroundings that I'm currently
at. And if I'm at home, it is
the regular old setup that I've
been using for years now. So
tomorrow I'll be traveling to
tech Rama in Antwerp, Belgium.
And I'll be doing a talk about
an interesting topic there. The
title is called being a lead
software developer and this
about the book that I wrote on
this very topic, me sharing my
experiences as being a lead
software developer. So very much
looking forward to how this
would work out in practice. It's
the first time that I'm doing
this kind of talk on my book in
public. So looking forward to
that one and see how the
audience responds to me sharing
my ideas on this very topic. And
tied into that I think I got
another talking opportunity, as
well as at DEF CON stream is
sponsoring at DEF CON but EVO
from DEF CON reached out to me
to do a talk titled The
developer manual working with
and managing software
developers. So this is more like
a talk about how you as a
product owner, manager or
designer, how you are supposed
to work with software
developers, that actually
creates problems, because as a
non technical person, you're not
writing the code. And you need
to communicate the
specifications and requirements
to your software developers so
that they actually create what
you are looking for. Right. So
this talk will go into that bit
on how to do this translation
from business needs into
technical requirements. So I'm
hoping that this will be a good
talk that I can execute well, as
well. It's a topic that's a bit
more far out there. But
fortunately, the talk itself is
only like a timeslot is 30
minutes. So it shouldn't be that
hard to make something out of
this that works well. So have a
look at the app dev Comdata. Now
schedule to see the rest of the
speakers there as well, because
there's a number of awesome
people showing up there as
presenters. And I think it's
well worth the the efforts of
going to Amsterdam for this
conference. And then there's of
course, in August me going to
360 I def.
This will be about something
that I launched today with the
help of Tim Condon and it's
vapor integration framework for
the stream backends. So I
created a little social video
for that and made sure that
there was like a launch blog
post written by Tim Condon so
that it was on the block of
stream and that all the Open
Source Repositories are
available. So there was a lot of
fun doing this work with the
help of Tim Tim actually did
most of the work, but I had to
make sure that that he got
connected with the right
individuals to be able to do
this. And I'll be doing a
presentation about this
technical work in August. So
looking forward to that one as
well. And then another big
development I'm trying out on
the podcast itself is is midroll
ads, the hosting platform that I
have my podcast on
buzzsprout.com They recently
rolled out a beta feature for
Metro ads so trying some
experiments with that what I
really like about it is that I
can pre listen all ads that are
being put in my podcast feed so
that I know for sure that my
values aligned with these ads
and that's actually the the ads
themselves are about things that
I consider to be interesting and
that I might find interesting
for my audience as well. But I'm
really looking for feedback on
this one. Tell me what you
think. My Twitter DM is always
open you can add mentioned me on
Twitter as well. Sent me my
Since because I always like
getting feedback from anybody
who's listening to my podcast.
And with that, I think it's
about time to Oh, yeah, there's
some other things as well. Coco
Chanel is having two events
scheduled. So the first one, I
mentioned that these two last
week as well, but I think it's
fun to just reiterate them
again, is on June 6, there will
be WWDC keynote viewing party in
The Hague. That's a city in the
Netherlands. So if you're in the
Netherlands, and you want to
watch WWDC keynote, with a
number of like minded people and
the heck is in your area,
definitely go and check this one
out. Link is in the show notes.
And on June 15. That's the week
after WWDC, there will be a
cokehead Snell meetup at the
office of stream. Probably, I'll
be doing a quick talk or have
some sort of a recap or
highlights of the WWDC event.
Nice way to come visit the
Office of the company that I
work at, in combination with
Coca Hudsonville about iOS
technology. So I think that's
already three things. That's
really cool. And then we're just
combining the three things. So I
really hope for a good turnout
on that evening as well. The
June meetup at stream is one
that I will be at in person. So
if you if you're around,
definitely come check it out.
And we will do a live stream and
the recording of the talks
during this evening. So if
you're not able to attend, you
still can have a look or have a
viewing of the videos
afterwards. And I think that's
also very much worthwhile to
spend some time on. So and on
the personal front. Yeah, it's
just cruising along right now.
My wife is still dealing with
the effects of the concussion.
It's taking a long while for her
to recover. But I think all in
all, everything is is working
out. Kids are in school, Lisa is
looking forward to the next
school year. But now she's back
at doing her gymnastics lessons.
Again, she's much more settled
down. Still a lot of energy, but
at least he has some way to fend
this energy, which in a
constructive way really. Because
if she cannot let this energy
go, then yeah, it's she'll,
she'll become a handful. Also,
there are some nice things
planned in a weekend, not too
long from now, a while back my
parents, they celebrated their
50th anniversary for the
wedding. And my wife and I
decided to give them a weekend
away with us to celebrate this,
and this weekend is now finally
grog near. So that's that
that'll be a fun experience as
well being with my parents in a
in a cabin for for a couple
days, probably going to be a
good one. It's going to be
interesting to spend a roof
again, sorry to share a roof
again with with my folks. But
yeah, my kids, they don't know
it yet. So that's going to be a
big surprise for them as well.
They know that their
grandparents, they have like a
weekend away. But they don't
know that they
will actually be a part of this
weekend themselves. So very
interesting to see how they
would respond to this. And once
this weekend has happened, I'll
be sure to let people know what
my kids thought of this whole
experience. So And with that, I
think it's about time to start
looking at this week's articles,
I have a whole bunch of them a
bit less than last week. But
still more than usual, just
because I wanted to get all
these interesting articles in
front of you, the listener of my
podcast. So let's get started.
So the first article I wanted to
talk about is another one by
Xcode dot tips by Dominic
Houser, it's default unfold
shortcuts that allow you to
collapse and expand blocks of
code in your source code editor
in Xcode. What's really nice
about this is that you can just
get your file into a seat into a
view that allows you to get a
quick overview of the structure
of the file and then dig into
things once you want to want to
start working with some code. So
definitely check it out. It's
especially the rest of his site
because it's very convenient
tips on there that you
definitely want to have a look
at. The second article is how to
use a different swift tool chain
in Xcode. It's by a Samwise. And
it's an article that basically
details how you can switch the
version of, of Swift that is
bundled with Xcode. So there's
basically two things in there
how you check the Swift version
statue If available on your
system, how you can install an
alternative version of Swift and
of course how you can use these
to change versions within Xcode.
So very fun little rates,
especially if you do Surfside
swift development, this is
something you might want to look
into a little bit. Or if you
want to use a pre release
version of Xcode with the
current version of Xcode, that's
also something you can do by
using this, this method of
switching your Swift compiler.
The third article is by Daniel
citee, using the is enabled
environment value in iOS 14. So
swift UI makes it easy to
implement specific things. So
for instance, a custom button
style that changes the
appearance based on if the
button is or if you are key is
enabled or not. So just add an
environment property that is
bound to the is enabled key
path. In a way, this is a nice
view on how it's enabled key
path works. But what Daniel C D
noticed is that there's
sometimes an issue that you have
to deal with cars on iOS 14.4,
the is enabled state is always
true. So he had to create a
workaround how to get around
this nasty swift UI
inconsistency. So it was easy to
miss, because it's just like an
enabled state of a button. But
it can cause all kinds of issues
in your app, right. So
basically, this article serves
as a warning on that you have to
be aware of that things can
break in new versions of iOS. So
every time an iOS version is
released, it's important to just
check if the behavior of your
app is still correct. But yeah,
and if you run into one of
these, these bugs, one of these
issues, his article gives you an
overview of a way that you can
get around some of these issues.
So it's a nice debugging. Well,
spelunking type article, so
something was discovered
something was fixed. And here's
how Daniel did it in his case.
But yeah, it's something to be
very aware of that the things
that you think are very stable
in your environment. As a
software developer, they
sometimes just are not as stable
as you would think they might
be. So on with the fourth
article, and this one is by
Majeed, so swift with Mojito
calm, and it's called Mastering
Timeline view in Swift UI
Timeline view is a swift UI view
type that updates its body
according to a provided
schedule. So normally, what
you're used to is that you swift
UI views updates their body
whenever the data that they
present change. But the timeline
view doesn't follow this rule
and allows you to build a super
custom schedule to update its
content in a precise way. In
this article, Majeed will go
into how you can use the
timeline view to create time
based views. So it basically
involves getting this thing on
the screen, the timeline view,
and then also how you can deal
with the schedule, how you
configure the time. And if you
to actually do these time based
updates of itself. It very much
feels like if you hear all of
this, like hey, this is like the
old style, watch complications
that you used to have on
on your Apple Watch so that you
could roll the digital crown and
then you could look into the
future and in the past, compared
to where you are in the current
time right now. But yeah, just
seeing the underlying technology
of this timeline view is very
interesting. And I think you can
do some fun use cases with a
timeline view, especially on an
iOS device that's a little bit
more powerful compared to an
Apple Watch. So the fifth
article is by my colleague, Adam
rush, use text case to make text
uppercase, or lowercase. So in
his article, Adam is going into
the text case, modify, so to
make text uppercase. So that's a
quick overview of how you can
make text elements uppercase,
and also how you can apply this
to a text field or a label. So
quick overview article, but
still very much a lot of fun to
just be reminded about this,
this text case modifier. Last
week, I shared an article by
Leonardo Maya Puglisi on His
holy swift blog, and this is the
second part of that article, how
to start iOS development career
prior to learning the Swift
language. In his previous
article, he detailed a five step
process of getting into iOS
development. And this is the
second part on learning the
Swift language. The problem that
you're facing, if you want to
get into iOS development is that
you also have to learn the Swift
programming language, right? So
in this article, Leonardo's
shares what resources he thinks
you can get going with to make
sure that you get a good head
start on on working with Swift
as a programming language. And
the two resources that he mainly
focuses on is the 100 days of
hacking swift series by Paul
Hudson. and apples owns fifth
programming book, which is a
very elaborate resource on the
Swift programming language. What
Leonardo suggests is that you
have to do something called
deliberate practice. And
deliberate practice is to make
sure that you have small problem
sets or small challenges that
you that you work on, that are
relatively easy to grasp, and
that you can build upon. So if
you do not have a lot of
deliberate practice, at some
point, you have so much practice
combined, that you'll be able to
start connecting the dots as
well. And once you start
connecting the dots with all the
small bits of information that
you learned, then you will be
able to really start going and
starting to get somewhere with
software development. So I liked
the way that he explains it,
because there's a lot of detail
that he goes into on how you can
do this deliberate practice. So
definitely worthwhile to read,
even if you're already able to
program swift by now. Because
just having this in your skill
set, doing deliberate practice,
is something that in the future
can help you very much in how
you can get going with new
technologies, new frameworks,
new things that you need to
learn as a software developer.
And now let's move onwards to
the seventh article of this
week. It's called Sea lice our
products to this is an article
by Pedro Piniella, and he has
experienced over the years that
working on command line
interface tools that there are
often not observed or perceived
as products. So consequently,
organizations don't embrace the
same principles as UI oriented
products, which leads to complex
tool design, there are few
projects that adopt product
mindset, and that really make a
difference. So in his article,
Pedro makes the case for seeing
command line interface tools as
proper products. And he has
something to share about that,
because he's one of the creators
of the twist project. And that's
actually one of those command
line interface tools that has a
very well thought out,
functioning command line
interface. So some of the
biggest recommendations that
petromax is that you pay
attention to how you name
commands, arguments and flags. A
terminal is limiting, but
remember constraints foster
creativity, and intent well
captured with the commands name
and flags that become indirect
complements of a sentence can
yield a very expressive
interface. So when you send
output through the standard
stream, so that standard in and
standard out it resembles
receiving a response in a
conversation, be clear and
direct. And when doing something
that takes time, make sure the
person knows about it. If you
couldn't do what the user asked
the CLI to do, tell them why,
and provide the next steps that
they can take to overcome the
issue. Errors are also
disregarded and CLI is primarily
due to impetuous experienced
developers laziness, it's
quicker to just throw than to go
to the root of the error to fix
it, and provide a better error
experience. So if you build CLI
remember, the how is as
important as the What the What
makes a command satisfy the
developers intent, the how is
what can make the experience
more enjoyable to use, some
smartphones had been designed
before Apple introduced the
iPhone, they all serve a similar
purpose. But one put attention
to the how, and create an
experience that made the product
a successful piece of
technology. So resist the urge
of being lazy. And not consider
scenarios that are different
than the happy path, you'll move
slower. But remember, this is a
long term investment that pays
off, and your users will be
thankful for it. So the final
article is by Ben Dotson, it's
called unlisted app distribution
on the App Store. It's a story
about him being involved in an
app back in 2015, that was
supposed to be delivered only to
specific individuals, but still
publicly on or through the App
Store. Then they ran into an
issue in 2022, that the current
app store program requirements
didn't fit this company anymore.
And the unfortunate situation
was that this client let their
Apple account labs. So to get
things going, again, they had to
true, they had to jump through a
lot of hoops, and making sure
that the app was then listed
again, back on the App Store
under something that is called
unlisted app distribution on the
App Store. So what this
basically means is that your app
can be on the App Store, without
it being publicly listed on the
App Store. So the only way that
an individual can get to the App
Store page is if they have a
direct link to your app on the
App Store. So this is something
that is like a nice go between
between an app being fully
public on the App Store. So you
can search for it, you can find
it, it'll show up in lists, or
in this way that it is available
on the App Store, but only if
you know where to find it where
the link. So. But to get your
app in this specific state, you
need to do a lot of specific
things to make sure that Apple
actually accepts your app as
being an unlisted app on the App
Store. So yeah, good overview by
Ben and just some interesting
tidbits of knowledge on the App
Store review process that you
might run into if you wanted to
have an unlisted app. I really
liked this, this article because
it was like more of a story, but
a lot of valuable information in
it. And in the end, they were
successful. So there's also a
happy ending to this story as
well. And as a small surprise,
at the end of this episode, I'm
actually working with a number
of people of getting a Twitter
space going as a sort of a
precursor to WWDC. So there will
be some interesting names in
there, hopefully on June 1, and
we'll be doing it live on on
Twitter. And hopefully, we are
able to get a decent recording
out as well. With video that we
can then edit and repurpose into
a nice video. So who knows some
experimentation going on here as
well just to add to the workload
of WWDC. But we'll manage and
we'll we'll get this stuff ready
for you. There's also daanish,
Monday morning tweets, I haven't
mentioned his tweets for a while
now. It's just because it's
yeah, I've been super busy. But
I did think that it's good to
have a look at his tweets,
again, just in a in a quick
fashion. So if you are stuck,
getting your work week starts on
a Monday morning, and you just
need some inspiration, it's
always good to check the
timeline of Daniels, and see if
he has published this Monday
morning tweet already, he
usually posted at around eight
in the morning, European time.
So if you are more to the west
of Europe, you should get this
tweet available to you right in
the morning. And if you move to
the east of of Europe, then
yeah, you might need to wait a
couple of hours depending on
where exactly are. So with that,
I'm going to link down his
Monday morning tweets in my
episodes and recommend that you
follow him online on Twitter, so
that you get his tweeting and
timeline every week for
yourself. So to wrap it up, if
you have any feedback on my
podcast, always feel free to
reach out on Twitter, you can
send me a DM or an ad mentioned
I love getting feedback. And
hopefully we will get to meet
each other in person at one of
the events that I'll be going to
in the next couple of weeks or
months I might say. So that's
going to be tech around in
Antwerp tomorrow. And that's
going to be at DEF CON, two
weeks after WWDC. And that's
going to be 360 I def at the end
of August, I think it was. And
yeah, it's just so much fun to
be able to get in touch with
people again in person. And I
will bring my DJI make with me
as much as possible. So that I
can also do an impromptu
recording with you on site, if
you feel so inclined to do so.
Something that I haven't called
for in recent times is there's
also a SpeakPipe link in every
episode that I create. So if you
just cannot wait to get some
audio feedback to my podcast,
and it has a good chance of
actually appearing in my podcast
as a question as a listener
question, feel free to send me a
SpeakPipe message, look it up in
the show notes. And they can
easily record yourself and sent
me a voice memo that I can then
incorporate an answer in my
episode. Also, if you post a
review somewhere, if it's on
Apple podcasts or any other
platform that that you use that
you like, let me know to Twitter
sent me a message about it. And
I'll make sure to read your
review on my podcast and give
you a shout out while I'm at it.
Because feedback is the one
thing that I really need from a
podcast to get better at this.
And the one way that I can get
feedback is by asking for it to
you the listener of my podcast.
So please do so. Thanks very
much for your time and talk to
you again next week.