Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Peter (00:02):
What's up, everybody?
Welcome to another episode of
the compile swift podcast. Thisweek, we're gonna have an
interesting conversation, andit's gonna be around the idea of
you know, you had your coreskills, right, wherever they may
be. In our case, we're gonna usemobile app development here. And
how working on other projectsand, you know, looking at other
(00:23):
things can lead you in newdirections and sometimes solve
problems for you in youreveryday workflows.
How are you doing, Geoff? Howare you doing, buddy? What's up
in life?
Geoff (00:34):
Things have been pretty
good. I've been just slowly
working on catching back up onthings after being gone at the
Deep Dish SWIFT conference and,really kinda just getting back
into the swing of things now.
Peter (00:45):
Yeah. By the way, so
couple of interesting facts that
nobody wants to know, but I'mgonna tell them anyway. That
episode with you and the guestsat Deep Dish is the first
episode of the podcast I've notappeared on. Crowd goes wild. I
know.
Right? And and also
Geoff (01:05):
You appeared to talk
about Trade Coffee.
Peter (01:08):
Yeah. Yeah. I I was in
the adverts. We joked about that
afterwards. But I do think itwas a really good episode.
Sounds sounds like you guys hada lot of fun, mostly because
because I wasn't there. Right? Imean, I I get it. Here I am
working for a living. But, no,well done.
That was a really good episode.Because these these live things,
(01:29):
they're never easy. Right? Youeither all gather in a hotel
room, and you can hear eachother on yeah. Or you, you know,
those ones where you're in theconference area and you hear
lots of people in the backgroundand so on and so on.
So so well done on that. I knowI know it was tricky.
Geoff (01:45):
Yeah. We'll we'll just
tell Josh to provide us with a,
podcast recording area next nextyear.
Peter (01:51):
Oh, I think I think I
feel like, hey. Come on. You
know? It's about time. Right?
Well, we have we haveconsistently at least double
digit listeners. Actually, it'smore like, what, triple, quad,
quad triple. I don't know.Moving on.
Geoff (02:11):
So, yeah, we're gonna
spend today talking about
expanding your skills beyondthat kind of core skill set and,
you know, what can you do todiversify your skills? Where can
these skills come and help youwith some of the things that
you're more used to? And wherecan you just be going and
learning things because you liketo go and learn things? And so
(02:32):
there 's a bunch of differentbenefits to, you know, not just
being in one to not just havingone thing that you're super
knowledgeable about, but to kindof also expand out and have a
base knowledge of quite a fewother things.
Peter (02:48):
And and this is a big
thing for me. Anyone that's ever
seen my livestreams will knowthat I like to do different
things, including stuff that Ihave no business doing, which is
probably nine 90% of my life.Mobile dev. Yeah. Mobile dev.
Yeah. Any kind of dev,computing. But to me, the it's a
(03:09):
big deal. Because, if you want,shall I go ahead and start with
some thoughts on this?
Geoff (03:15):
Go for it.
Peter (03:16):
Okay. Because for me,
right, mobile development is my
day job, and, therefore, justlike with any day job, you know,
there's a breakpoint. It doesn'tmatter how much you love it.
There's a breakpoint at whichit's like, that's enough for one
day. That's enough for one week.
(03:36):
Or, oh god. I need to dosomething else for a little
while. And that is completelywhere my personal side projects
at home come in, right, separatefrom the day job, and I get the
freedom to do whatever I wantand whatever technology, or even
look at something as I've doneon the live streams before.
(03:58):
We've spoken about them on thepodcasts. And whether they work
out or not, it really doesn'tmatter.
The point is that it's anexperience that may benefit me
in some way, or it's just amental stress relief. So for me,
the big one is game development,right? And I love to just either
(04:19):
mess around with ideas or gamegame ideas that I've wanted to
do for a long time. And it'scompletely different. So I'll
give you an example here.
Right? You know, Swift is stillmy my main everyday language.
Even though I, have Androidteams that I work with, and I
have React Native teams that Iwork with. But when it comes to
(04:40):
game development, I I triedSwift and SpriteKit, and there's
episodes on that. But I I liketo use the other engines.
Right? The well known ones.Endless hurdles game, for
example, is currently done inGodot. I'm I've got a game that
I've worked on before, and I'mworking on again in Unity. And I
(05:00):
like to mess around with UnrealEngine.
Most of those are either c sharpor their own scripting language,
something like that, or orvisual scripting. Clearly
nothing to do with mobiledevelopment in in the
conventional sense of Swift.Right? Yeah. You you can compile
to mobile, but that's kind of mystress relief as well.
(05:22):
And and I'll I'll talk about itmore, but what about you?
Geoff (05:26):
Yeah. So I actually
started my career as much more
of a generalist and, you know,had been so I got my start with
Objective C. That was really myfirst language and had done Mac
Dev. But at at my first job, Ireally kind of expanded into
anything that the company neededme to do. So, I had done a lot
(05:50):
of I I was doing iOS dev as mymain goal, but I was also doing
Android.
This was back before we kindaonly had two companies running
all of mobile. So I was alsodoing apps for Windows Phone and
for BlackBerry and for the NokiaOvi store and for Palm WebOS and
(06:13):
just so many of these differentthings. So definitely had done a
lot there in terms of otherlanguages. And while I've
retreated through the years moreto that core skill of Swift and
iOS, I've kinda kept that, like,really wanting to make sure kind
of wanting to keep my toe inother ecosystems. And,
(06:38):
obviously, the big one thesedays that's very popular, the
the kind of main place thatpeople are doing development
these days is web, specificallyfront end web, and being able to
build apps with web technologiesand build sites and know that
kind of stuff there to havesomething to really know outside
(07:00):
of mobile dev.
I do also kind of try to keepabreast of the latest in
Android, but that still feelslike it's kind of in the same
realm where Mhmm. I'm, you know,like, Swift development, Kotlin
development. If everything goesweb and everything goes AI and
(07:22):
there's kind of these whole newparadigms that, you know, iOS
and Android, they're probablygonna rise and fall together.
And so, you know, really tyingmyself to the Android ecosystem
is probably not much better thantying myself to the iOS
ecosystem.
Peter (07:38):
Yeah. I agree with you.
Right? I mean, I think we we've
said this before. It's aninteresting time.
Right? There's always thesecycles, and and, clearly, at the
moment, AI is one of thosecycles. And it'll end up
dominating something. Right? Andand at the moment, that
something is probably gonna bemobile dev because that's the
(07:58):
hotness.
Right? Now I agree with you. Youknow, I started out doing web
dev, and, personally, I thinkweb dev is always gonna be a
thing in in some format oranother. Right? And, yeah, of
course, AI things like AI andwhatnot.
It's made it super easy to webdev as well. But I I feel like
(08:21):
web dev is is always one ofthose ones, and web app's always
gonna be there. And I actuallyhave found I've started to think
to myself too, wait. With allthat's going on with with mobile
app stores and so on, maybe mylife would be easier to just
make some of this stuff as webapps, because it's just easier
and simpler and less politicsinvolved having to deal with
(08:44):
companies and app stores and andall of these kind of things. So
I agree with you.
You know? And and, of course, Imean, my gosh, how many
different ways can you make aweb app at this point? Right?
You got plenty of rabbit holesyou can go down. And that's how
I feel about, like, the gamedevelopment too.
Having been a gamer all my life,it's always been a thing. Right?
(09:07):
Oh, I'd make my own games. AndI've made games that I've never
told people about, neverpublished or anything like that
for my own fun. And justsometimes you just wanna check
that box that says you did it.
And I don't think, like, gamedevelopment would ever be a good
backup career for me because Ithink of all of the of all of
the areas. Right? Sit on a awebsite for you know, news techy
(09:32):
website for five minutes, andyou'll read some horror story
about game development or gamedevelopment companies. Right?
Not gonna get into it, butthere's plenty going on with
certain companies right now, forexample.
I I feel like that's notsomething I would wanna do as a
career, But I do like this ideaof the plan b because having
(09:55):
started out in web dev and thendoing, you know, of all things,
I've mentioned it before, flashdevelopment, been through it
enough times. Right? Having thatplan b and a plan c, it's never
gonna hurt. Chances are, as I'vesaid before, you can probably
spend your entire career doingwhatever you're doing now, but
(10:17):
it's good to have options. And Ithink it's just good mental
health as well as a developer tohave that that break that says,
look at something else, becauseyou never know.
Right? Okay. So how do you getinto some of this stuff? Right?
Let let's let's take a scenariohere.
Right? I'm let's take acompletely fictitious scenario.
(10:40):
I'm a mobile developer by trade.How do I how do I go about
identifying what is somethingelse I might wanna get into or,
you know, have an interest in?Or how did you do it?
Let's start there. Right?
Geoff (10:57):
I mean, how I did it was
basically just kinda trying a
little bit of everything. Justanything that came across my
radar in the early days, youknow, whether that was, you
know, the early days of Twitter,Reddit, Digg back in the day,
anything that came across aslike, oh, this sounds like fun,
(11:19):
was something that I tried out.Nowadays, obviously, A, the
media landscape is so much morefractured. And B, you know, I'm
just set in my ways. A lot of itcomes from just seeing other
problems that I need to dealwith in my day to day things and
(11:40):
seeing what I can do to go andlearn that.
So at my day job, for example,there are a lot of times where
it's like, oh, I need like, atool, a build tool. And I need
to go build this. And it needsto work for iOS and Android
devs. Or it needs to run on ourCI system that has certain
(12:01):
requirements. And what can I doto go learn that?
And that was, you know, like, Ihad done Python before, but that
was really how I got super intodoing stuff with Python. You
know, learning a lot of some ofthe frameworks like Django and
(12:21):
the testing frameworks and thatkind of thing with Python was
really just it came down to,hey, these are the tools that my
coworkers are using for this. Ishould probably pick up these
tools and use something similar.I had similar experiences with
TypeScript, which I do love.TypeScript is a great language.
(12:42):
Where it was just like, oh, hey.We're starting to look into
React Native. And the front endteam is already using React.
They're doing it all inTypeScript. If we're gonna do
React Native, we should probablyalso embrace TypeScript.
We should probably use similartesting tools. I think Jest was
the state of the art at thetime. You know, kind of learning
(13:05):
those tools and just saying,hey, these are other problems.
These are how the people aroundme have worked on these things.
I should go learn these things.
And obviously, I have a greatset of resources here in my
coworkers to kind of pick thingsup from. And so, yeah, like,
that's how I got intoTypeScript, for example. And
(13:27):
it's still something that Icontinue to learn and evolve
with today, even though I'm notat that company anymore, even
though I'm not really doingthose same sorts of things
anymore. It is this is what I'mkeeping up with. This is what
I'm interested in.
And I know you had kind of asimilar experience with, you
know, some of the game dev stuffthat you were in, where you
(13:50):
started with SpriteKit and kindaevolved into some other things.
Peter (13:53):
Yeah. That that's right.
You know? So, originally, you
know, sorta I I did the flashgame thing. Everybody does.
Right? Or everybody did, Ishould say. And then I did do a
game with Unity, and it was, youknow, one of those, oh, this
would be a fun project many,many years ago. But being a
(14:16):
swift developer, I was like, oh,SpriteKit. SpriteKit.
This should be a thing, and it'sa good excuse to do something
with SpriteKit. Yeah. You know,you may recall, as you say, I
was doing it on livestream, andthen, you know, some folks came
along. Shout out to this guy.And we're like, hey.
You know, do you have you usedUnity? Have you thought about
(14:39):
using Unity or other game engineof choice? Right? Which is what
happens with livestreams. Andthat's why I love livestreams,
because people come in and askgood questions.
So I was like, okay. Yeah. Let'slet's do this. I had done some c
sharp before, so I was like,great. This is an opportunity to
use an old skill just like we'resaying here.
(15:01):
Right? It was like, I'd done itpreviously. I was like, great.
This is a thing that's gonnahelp me out here. And so started
learning Unity in a morestructured way in the sense of I
have this goal to build thisgame, and that's how I wanna do
this.
And then, it also progressedinto Godot, for example, where
(15:22):
the current endless hurdles isin Godot because I didn't know
anything about Godot, buteveryone was talking about it.
And that uses GDScript. So it'skind of a same thing. Like, hey.
I know what I want this to do.
I just gotta now figure out thethe way this tool does it.
Right?
Geoff (15:40):
So given that we've
learned kinda some of these
other tools, the question reallythen is, even though this is
something that's external tothat, is there really something
that you can then turn aroundand use that same information
back with your core skills? Canyou go learn something from
(16:02):
these other external areas andactually use it to come back and
help you with, say, mobile dev?
Peter (16:09):
It goes full circle back
to, well, if headsets and so on
become a thing, particularly theApple one, I'm probably gonna
have to use ARKit and and andall those kind of things, which
will probably lean back intosome of the things I've learned
with SpriteKit. Okay? So I feellike that sort of demonstrates
(16:32):
the circle here of, you know,you go off on these tangents of
just curiosity or or need inyour case, like you mentioned
with the tools, And I wannatouch on that in a second. And
then you find, oh, this is gonnapay off because now look. I'm
back in this thing, and it'sit's very close to this other
thing that I'd learned before.
(16:52):
But I do wanna say that, yeah,some of it too is exactly as you
described for me. Right? I havea need for a tool or fellow
developers or team members. Youknow, they're like, as you
mentioned, Jest. Right?
We were using Jest for a whilewith TypeScript TypeScript app.
(17:14):
And now we're using Detox andthings like that. And it's like,
okay. Great. Let let let's gotake a look at that.
What's that all about? Right?And then I have no doubt at some
point, those skills that youlearn and techniques will go
full circle. And, hey. Now I'velearned another testing tool and
(17:37):
potentially another way to dotesting.
Right? So, you know, I find thatthese circles come up a lot for
folks. Right? If you it's kindof like the technologies. If you
just wait long enough, it'llcome around again.
You know?
Geoff (17:50):
I I mean, for me, the use
case where I've come with web
dev is obviously in terms ofbuilding out back end stuff and
building out websites, marketingsites, and that kind of stuff
for all of my apps where, youknow, I'm no longer having to
use like a build your ownSquarespace type website or
whatever to market my apps. Ican build something way more
(18:11):
custom. I can do stuff with likemy press kit that I wouldn't be
able to do normally. And all ofthat coming back because it's
like, Oh, I've gone and learnedthese things for web dev. And I
haven't released any public appsthat do anything like this for
us, but also cases where it'slike, Oh, I wanna support
(18:31):
platforms other than my mainplatform, iOS.
And what's the easiest way to dothat? It's going to be using
like a web wrapper. And so, someof my smaller personal apps that
I've made for myself and friendsor whatnot, you know, maybe
there's a single API backend,and I have, like, a front end to
(18:53):
it on iOS that I've built formyself. But for all my friends
that use Android or just, like,connecting via their computer or
whatnot, hey, you know, you'vegot the TypeScript React
version. That works for them ina way that I don't have to go
and write a different version ofit for each platform.
Peter (19:10):
So I I feel like we've
covered it pretty good here. And
I'd love to hear what theaudience thinks about this.
Right? So, you know, audience,you can, of course, reach out on
compileswift.com. There's acontact form there, and we're
about to give you all the blurband all the links on where you
can find us.
But as with everything we talkabout, we would love to hear
(19:31):
from you all, and shout out tothose folks that that reach out
to us and give us feedback.Greatly appreciate it because,
you know, we try to offerdifferent viewpoints here, but
we love to hear what theaudience thinks. So with that,
as always, you can find me atpeterwitham.com. All the links
there. And, Geoff, where canthey find you?
Geoff (19:53):
Everything that I have is
at cocoatype.com.
Peter (19:56):
Alright, folks. We'll
speak to you in the next
episode.