We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
People
G
Geoff
P
Peter
Topics
Peter:作为一名移动开发者,我发现仅仅专注于核心技能是不够的。参与副项目和探索新技术能够帮助我发现新的职业方向,并解决日常工作流程中的问题。移动开发是我的日常工作,因此在工作之余,我需要寻找其他兴趣来放松。个人项目能带来自由,尝试新技术,无论结果如何,都是一种有益的体验和精神放松。我喜欢游戏开发,即使它与我的日常工作完全不同,这能让我放松。拥有备选方案和Plan B、Plan C对心理健康有益,让你在职业生涯中拥有更多选择。 Geoff:我职业生涯开始时是通才,在第一份工作中扩展到公司需要的任何领域。尽管我逐渐回归到Swift和iOS的核心技能,但我一直努力涉足其他生态系统,特别是前端Web开发。我认为将自己局限于iOS或Android生态系统,不如关注Web和AI等新兴领域。我通过解决日常工作中遇到的问题来学习新技能,例如为了构建工具而学习Python。我通过团队的需求学习了TypeScript,并持续学习和发展。我通过Web开发技能为我的应用构建后端和营销网站。我使用Web封装器来支持iOS以外的平台。

Deep Dive

Chapters
This chapter explores the advantages of expanding your skill set beyond mobile app development. It emphasizes the importance of side projects and learning new technologies to reduce stress, enhance workflow, and unlock unexpected career opportunities. The discussion includes personal experiences with game development and the use of various game engines.
  • Diversifying skills provides mental relief from core tasks.
  • Side projects offer freedom to experiment with different technologies.
  • Learning new technologies can solve workflow problems.
  • Game development, using engines like Godot and Unity, offers a creative outlet and skill diversification.

Shownotes Transcript

Translations:
中文

What's up, everybody? Welcome to another episode of the Compile Swift Podcast. This week, we're going to have an interesting conversation, and it's going to be around the idea of, you know, you have your core skills, right, wherever they may be. In our case, we're going to use mobile app development here, and how working on other projects and, you know, looking at other things can lead you in new directions and sometimes solve problems for you in your everyday workflows.

How you doing, Jeff? How you doing, buddy? What's up in life? Things have been pretty good. I've been just slowly working on catching back up on things after being gone at the Deep Dish Swift conference and really kind of just getting back into the swing of things now. Yeah, by the way, so a couple of interesting facts that nobody wants to know, but I'm going to tell them anyway. That episode with you and the guests at Deep Dish is the first episode of the podcast I've not appeared on.

Crowd goes wild, I know, right? And also... You appeared to talk about trade coffee. Yeah, yeah. I was in the adverts. We joked about that afterwards. But I did think it was a really good episode. Sounds like you guys had a lot of fun. Mostly because I wasn't there, right? I mean, I get it. Here I am working for a living. But no, well done. That was a really good episode. Because those live things...

They're never easy, right? You either all gather in a hotel room and you can hear each other. Yeah. Or you, you know, those ones where you're in the conference area and you hear lots of people in the background and so on and so on. So well done on that. I know it was tricky. Yeah.

We'll just tell Josh to provide us with a podcast recording area next year. Oh, I feel like, hey, come on. It's about time, right? We have consistently at least double-digit listeners. Actually, it's more like what? Triple, quad, quad, quad, triple? I don't know. Moving on.

So, yeah, we're going to spend today talking about expanding your skills beyond that kind of core skill set. And, you know, what can you do to diversify your skills? Where can these skills come and help you with some of the things that you're more used to? And where can you just be going and learning things because you're

you like to go and learn things. And so there's a bunch of different benefits to, you know, not just being in one, to not just having one thing that you're super knowledgeable about, but to kind of also expand out and have a base knowledge of quite a few other things. And this is a big thing for me. Anyone that's ever seen my live streams will know that I like to do

different things, including stuff that I have no business doing, which is probably 90% of my life. Mobile dev. Yeah, mobile dev. Yeah, any kind of dev, computing. But to me, it's a big deal because if you want, should I go ahead and start with some thoughts on this? Go for it. Okay, because for me, right, mobile development is my day job.

And therefore, just like with any day job, you know, there's a break point. It doesn't matter how much you love it. There's a break point at which it's like, that's enough for one day. That's enough for one week. Or, oh God, I need to do something else for a little while. And that is completely where...

My personal side projects at home come in, right, separate from the day job. And I get the freedom to do whatever I want and whatever technology or even look at something as I've done on the live streams before. We've spoken about them on the podcasts and whether they work out or not.

It really doesn't matter. The point is that it's an experience that may benefit me in some way, or it's just a mental stress relief. So for me, the big one is game development, right? And I love to just either mess around with ideas or game ideas that I've wanted to do for a long time.

And it's completely different. So I'll give you an example here, right? You know, Swift is still my main everyday language, even though I have Android teams that I work with and I have React Native teams that I work with.

But when it comes to game development, I tried Swift and SpriteKit, and there's episodes on that. But I like to use the other engines, right? The well-known ones. Endless Hurdles game, for example, is currently done in Godot. I've got a game that I've worked on before and I'm working on again in Unity. And I like to mess around with Unreal Engine. Most of those are either C-sharp or...

their own scripting language, something like that, or visual scripting. Clearly nothing to do with mobile development in the conventional sense of Swift, right? Yeah, you can compile to mobile, but that's kind of my stress relief as well. And I'll talk about it more, but what about you? Yeah, so I actually started my career as much more of a generalist and had been...

So I got my start with Objective-C. That was really my first language and had done Mac dev. But at my first job, I really kind of expanded into anything that the company needed me to do. So I had done a lot of, I was doing iOS dev as my main goal, but I was also doing Android. This was back before we kind of only had two companies.

companies uh running all of mobile so i was also doing apps for windows phone and for blackberry and for the nokia ov store and for palm web os and uh just so many of these different things so uh definitely had done a lot there in terms of other languages and while i've retreated through

the years more to that core skill of Swift and iOS, I've kind of kept at like really wanting to make sure kind of wanting to keep my toe in other ecosystems. And obviously the big one these days that's very popular, the kind of main place that people are doing development these days is web, specifically front end web and being able to

build apps with web technologies and build sites and know that kind of stuff there to have something to really know outside of mobile dev. I do also kind of try to keep abreast of the latest in Android, but that still feels like it's kind of in the same realm where I'm, you know, like Swift development, Kotlin development,

If everything goes web and everything goes AI and there's kind of these whole new paradigms that, you know, iOS and Android, they're probably going to rise and fall together. And so, you know, really tying myself to the Android ecosystem is probably not much better than tying myself to the iOS ecosystem. Yeah, I agree with you, right? I mean, I think...

We've said this before. It's an interesting time, right? There's always these cycles, and clearly at the moment, AI is one of those cycles, and it'll end up dominating something, right? And at the moment, that something is probably going to be mobile dev because that's the hotness, right? Now, I agree with you. You know, I started out doing web dev, and personally, I think web dev is always going to be a thing in some ways.

or another, right? And yeah, of course, things like AI and whatnot has made it super easy to do web dev as well. But I feel like web dev is always one of those ones and web apps always going to be there. And I actually have found...

I've started to think to myself, too, wait, with all that's going on with mobile app stores and so on, maybe my life would be easier to just make some of this stuff as web apps because it's just easier and simpler and less politics involved having to deal with companies and app stores and all of these kind of things. So I agree with you, you know, and of course...

I mean, my gosh, how many different ways can you make a web app at this point, right? You've got plenty of rabbit holes you can go down. And that's how I feel about the game development, too. Having been a gamer all my life, it's always been a thing, right? Oh, I make my own games. And I've made games that I've never told people about, never published or anything like that for my own fun. And just...

sometimes you just want to check that box that says you did it and i don't think like game development would ever be a good backup career for me because i think of all of the of all of the areas right sit on a uh website for you know news techie website for five minutes and you'll read some horror story about game development or game development companies right not going to get into it but there's plenty going on with certain companies right now for example and

I feel like that's not something I would want to do as a career, but I do like this idea of the plan B because having started out in web dev and then doing, you know, of all things, I've mentioned it before, flash development, been through it enough times, right? Having that plan B and a plan C is never going to hurt. Chances are, as I've said before, you can probably spend your entire career doing whatever you're doing now, right?

But it's good to have options. And I think it's just good mental health as well as a developer to have that break that says, look at something else because you never know, right? Okay, so how do you get into some of this stuff, right? Let's take a scenario here, right? Let's take a completely fictitious scenario. I'm a mobile developer by trade. How do I go about...

identifying what is something else I might want to get into or have an interest in. How did you do it? Let's start there. How I did it was basically just trying a little bit of everything. Anything that came across my

radar in the early days, whether that was the early days of Twitter or Reddit, Dig back in the day. Anything that came across as like, oh, this sounds like fun was something that I tried out. Nowadays, obviously, A, the media landscape is so much more fractured, and B, I'm just set in my ways. A lot of it comes from just seeing...

other problems that I need to deal with in my day-to-day things and seeing what I can do to go and learn that. So at my day job for...

There were a lot of times where it's like, oh, I need like a tool, a build tool, and I need to go build this and it needs to work for iOS and Android devs or it needs to, you know, run on our CI system that has certain requirements. And what can I do to go learn that? And that was, you know, like I had done Python before, but, um,

That was really how I got super into doing stuff with Python. You know, learning a lot of some of the frameworks like Django and the testing frameworks and that kind of thing with Python was really just, it came down to, Hey, these are the tools that my coworkers are using for this. I should probably pick up these tools and use something similar. I had similar experiences with TypeScript, which I do love. TypeScript is a great language. Yeah.

Where it was just like, oh, hey, we're starting to look into React Native. And the front end team is already using React. They're doing it all in TypeScript. If we're going to do React Native, we should probably also embrace TypeScript. We should probably use similar testing tools. I think Jest was the state of the art at the time. You know, kind of learning those tools and just saying, hey, these are...

Other problems, these are how the people around me have worked on these things. I should go learn these things. And obviously I have a great set of resources here in my coworkers to kind of pick things up from. And so, yeah, like that's how I got into TypeScript, for example. And it's still something that I continue to learn and evolve with today, even though I'm not at that company anymore, even though I'm not really doing anything

those same sorts of things anymore. It is, this is what I'm keeping up with. This is what I'm interested in. And I know you had kind of a similar experience with, you know, some of the game dev stuff that you were in where you started with SpriteKit and kind of evolved into some other things. Yeah, that's right. You know, so originally,

you know sort of i did the flash game thing everybody does right or everybody did i should say and then um i did do a game with unity and it was you know one of those this would be a fun project many many years ago but being swift developer i was like oh sprite kit sprite kit this should be a thing and it's a good excuse to do something with sprite kit and

Yeah, you know, you may recall, as you say, I was doing it on live stream and then, you know, some folks came along, shout out to this guy, and were like, hey, you know, have you used Unity? Have you thought about using Unity or other game engine of choice, right? Which is what happens with live streams. And that's why I love live streams because people come in and ask good questions and

So I was like, okay, yeah, let's do this. I had done some C sharp before. So I was like, great, this is an opportunity now.

to use an old skill just like we're saying here right it was like I'd done it previously and I was like great this is a thing that's going to help me out here and so started learning Unity in a more structured way in the sense of I have this goal to build this game and that's how I want to do this and then it

It also progressed into Godot, for example, where the current endless hurdles is in Godot because I didn't know anything about Godot, but everyone was talking about it. And that uses GDScript. So it's kind of the same thing. Like, hey, I know what I want this to do. I just got to now figure out the way this tool does it, right? So given that we've learned kind of some of these other tools, the question really then is,

Even though this is something that's external to that, is there really something that you can then turn around and use that same information back with your core skills? Can you go learn something from these other external areas and actually use it to come back and help you with, say, mobile dev? It goes full circle back to, well, if headsets and so on become a thing, particularly the Apple one,

I'm probably going to have to use ARKit and all those kind of things, which will probably lean back into some of the things I've learned with SpriteKit. Okay. So I feel like that sort of demonstrates the circle here of, you know, you go off on these tangents of just curiosity or need in your case, like you mentioned with the tools. And I want to touch on that in a second. And

And then you find, oh, this is going to pay off because now look, I'm back in this thing and it's very close to this other thing that I'd learned before. But I do want to say that, yeah, some of it too is exactly as you described for me, right? I have a need for a tool or something.

fellow developers or team members you know they're like as you mentioned jest right we were using jest for a while with typescript uh typescript app and now we're using detox and things like that and it's like okay great let's go take a look at that what's that all about

Right. And then I have no doubt at some point those skills that you learn and techniques will go full circle. And, hey, now I've learned another testing tool and potentially another way to do testing. Right. So, you know, I find that these circles come up a lot for folks. It's kind of like the technologies. If you just wait long enough, it'll come around again, you know.

I mean, for me, the use case where I've come with web dev is obviously in terms of building out backend stuff and building out websites and marketing sites and that kind of stuff for all of my apps where, you know, I'm no longer having to use like a build your own Squarespace type website or whatever to market my apps. I can build something way more custom. I can do stuff with like my,

press kit that I wouldn't be able to do normally and all of that coming back because it's like, oh, I've gone and learned these things for web dev and I haven't released any public apps that do anything like this for us. But also, you know, cases where it's like, oh, I want to support platforms other than my main platform, iOS. And what's the easiest way to do that? It's going to be using like a web wrapper. Yeah.

And so some of my smaller personal apps that I've made for myself and friends or whatnot, maybe there's a single API backend and...

I have like a front end to it on iOS that I've built for myself, but for all my friends that use Android or just like connecting via their computer or whatnot, Hey, you know, you've got the TypeScript react version that works for them in a way that I don't have to go and write a different version of it for each platform. So I feel like we've covered it pretty good here. And yeah,

I'd love to hear what the audience thinks about this, right? So, you know, audience, you can, of course, reach out on compileswift.com. There's a contact form there. And we're about to give you all the blurb and all the links on where you can find us. But as with everything we talk about, we would love to hear from you all and shout out to those folks that reach out to us and give us feedback. Greatly appreciate it because...

You know, we try to offer different viewpoints here, but we love to hear what the audience thinks. So with that, as always, you can find me at peterwhittam.com. All the links there. And Jeff, where can they find you? Everything that I have is at cookatake.com. All right, folks, we'll speak to you in the next episode.