Skills that divide and conquer
What's up, everybody? Welcome to another episode of the compile swift podcast. This week, we're gonna have an interesting conversation, and it's gonna be around the idea of you know, you had your core skills, right, wherever they may be. In our case, we're gonna 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.
Peter:How are you doing, Geoff? How are you doing, buddy? What's up in life?
Geoff: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 kinda just getting back into the swing of things now.
Peter:Yeah. By the way, so couple of interesting facts that nobody wants to know, but I'm gonna 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.
Peter:Right? And and also
Geoff:You appeared to talk about Trade Coffee.
Peter:Yeah. Yeah. I I was in the adverts. We joked about that afterwards. But I do think it was a really good episode.
Peter:Sounds sounds like you guys had a lot of fun, mostly because because I wasn't there. Right? I mean, I I get it. Here I am working for a living. But, no, well done.
Peter:That was a really good episode. Because these these live things, they're never easy. Right? You either all gather in a hotel room, and you can hear each other on 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.
Peter:So so well done on that. I know I know it was tricky.
Geoff:Yeah. We'll we'll just tell Josh to provide us with a, podcast recording area next next year.
Peter:Oh, I think I think I feel like, hey. Come on. You know? It's about time. Right?
Peter:Well, we have we have consistently at least double digit listeners. Actually, it's more like, what, triple, quad, quad triple. I don't know. Moving on.
Geoff:So, yeah, we're gonna 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 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.
Peter:And and this is a big thing for me. Anyone that's ever seen my livestreams will know that I like to do different things, including stuff that I have no business doing, which is probably nine 90% of my life. Mobile dev. Yeah. Mobile dev.
Peter:Yeah. Any kind of dev, computing. But to me, the it's a big deal. Because, if you want, shall I go ahead and start with some thoughts on this?
Geoff:Go for it.
Peter:Okay. Because for me, right, mobile development is my day job, and, therefore, just like with any day job, you know, there's a breakpoint. It doesn't matter how much you love it. There's a breakpoint at which it's like, that's enough for one day. That's enough for one week.
Peter: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.
Peter: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 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.
Peter:Right? You know, Swift is still my 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 I tried Swift and SpriteKit, and there's episodes on that. But I I like to use the other engines.
Peter:Right? The well known ones. Endless hurdles game, for example, is currently done in Godot. I'm 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.
Peter:Most of those are either c sharp or their own scripting language, something like that, or or visual scripting. Clearly nothing to do with mobile development in in the conventional sense of Swift. Right? Yeah. You you can compile to mobile, but that's kind of my stress relief as well.
Peter:And and I'll I'll talk about it more, but what about you?
Geoff: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 my first language and had done Mac Dev. But at 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 I was doing iOS dev as my main goal, but I was also doing Android.
Geoff:This was back before we kinda only had two companies running all of mobile. So I was also doing apps for Windows Phone and for BlackBerry and for the Nokia Ovi store and for Palm WebOS and just so many of these different things. So 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 kinda kept that, 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 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.
Geoff: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 Mhmm. 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 gonna 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.
Peter:Yeah. I agree with you. Right? I mean, I think we we've said this before. It's an interesting time.
Peter:Right? There's always these cycles, and and, clearly, at the moment, AI is one of those cycles. And it'll end up dominating something. Right? And and at the moment, that something is probably gonna be mobile dev because that's the hotness.
Peter:Right? Now I agree with you. You know, I started out doing web dev, and, personally, I think web dev is always gonna be a thing in in some format or another. Right? And, yeah, of course, AI things like AI and whatnot.
Peter:It's made it super easy to web dev as well. But I I feel like web dev is is always one of those ones, and web app's always gonna be there. And I actually have found I've started to think to myself too, wait. With all that's going on with 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 and all of these kind of things. So I agree with you.
Peter:You know? And and, of course, I mean, my gosh, how many different ways can you make a web app at this point? Right? You got plenty of rabbit holes you can go down. And that's how I feel about, like, the game development too.
Peter:Having been a gamer all my life, it's always been a thing. Right? Oh, I'd 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 wanna check that box that says you did it.
Peter: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 a website for you know, news techy website for five minutes, and you'll read some horror story about game development or game development companies. Right? Not gonna get into it, but there's plenty going on with certain companies right now, for example.
Peter:I I feel like that's not something I would wanna 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, it's never gonna hurt. Chances are, as I've said before, you can probably spend your entire career doing whatever you're doing now, but it's good to have options. And I think it's just good mental health as well as a developer to have that that break that says, look at something else, because you never know.
Peter:Right? Okay. So how do you get into some of this stuff? Right? Let let's let's take a scenario here.
Peter:Right? I'm let's take a completely fictitious scenario. I'm a mobile developer by trade. How do I how do I go about identifying what is something else I might wanna get into or, you know, have an interest in? Or how did you do it?
Peter:Let's start there. Right?
Geoff:I mean, how I did it was basically just kinda trying a little bit of everything. Just anything that came across my radar in the early days, you know, whether that was, you know, the early days of Twitter, Reddit, Digg 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, you know, 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.
Geoff:So at my day job, for example, there are 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 run on our CI system that has certain requirements. And what can I do to go learn that?
Geoff:And that was, you know, like, I had done Python before, but 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.
Geoff: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 gonna do React Native, we should probably also embrace TypeScript.
Geoff: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.
Geoff: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 those same sorts of things anymore. It is this is what I'm keeping up with. This is what I'm interested in.
Geoff: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 kinda evolved into some other things.
Peter:Yeah. That that's right. You know? So, originally, you know, sorta I I did the flash game thing. Everybody does.
Peter:Right? Or everybody did, I should say. And then I did do a game with Unity, and it was, you know, one of those, oh, this would be a fun project many, many years ago. But being a swift developer, I was like, oh, SpriteKit. SpriteKit.
Peter:This should be a thing, and it's a good excuse to do something with SpriteKit. Yeah. You know, you may recall, as you say, I was doing it on livestream, and then, you know, some folks came along. Shout out to this guy. And we're like, hey.
Peter:You know, do you have you used Unity? Have you thought about using Unity or other game engine of choice? Right? Which is what happens with livestreams. And that's why I love livestreams, because people come in and ask good questions.
Peter:So I was like, okay. Yeah. Let's let'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're saying here.
Peter:Right? It was like, I'd done it previously. I was like, great. This is a thing that's gonna 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 wanna do this.
Peter:And then, 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 a same thing. Like, hey. I know what I want this to do.
Peter:I just gotta now figure out the the way this tool does it. Right?
Geoff:So given that we've learned kinda 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?
Peter:It goes full circle back to, well, if headsets and so on become a thing, particularly the Apple one, I'm probably gonna have to use ARKit and and 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 or need in your case, like you mentioned with the tools, And I wanna touch on that in a second. And then you find, oh, this is gonna pay off because now look. I'm back in this thing, and it's it's very close to this other thing that I'd learned before.
Peter:But I do wanna say that, yeah, some of it too is exactly as you described for me. Right? I have a need for a tool or fellow developers or team members. You know, they're like, as you mentioned, Jest. Right?
Peter:We were using Jest for a while with TypeScript TypeScript app. And now we're using Detox and things like that. And it's like, okay. Great. Let let let's go take a look at that.
Peter: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.
Peter:Right? So, you know, I find that these circles come up a lot for folks. Right? If you it's kind of like the technologies. If you just wait long enough, it'll come around again.
Peter:You know?
Geoff:I I mean, for me, the use case where I've come with web dev is obviously in terms of building out back end stuff and building out websites, 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 cases where it's like, Oh, I wanna support platforms other than my main platform, iOS.
Geoff:And what's the easiest way to do that? It's going to be using like a web wrapper. And so, some of my smaller personal apps that I've made for myself and friends or whatnot, you know, 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.
Peter:So I I feel like we've covered it pretty good here. And 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.
Peter:But as with everything we talk about, we would love to hear from you all, and shout out to those folks that 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 peterwitham.com. All the links there. And, Geoff, where can they find you?
Geoff:Everything that I have is at cocoatype.com.
Peter:Alright, folks. We'll speak to you in the next episode.
