Episode 260  on March 12, 2018Behind the Screens

Behind the Screens with Angus Mak

Lullabot's Senior Developer Angus Mak stepped away from Drupal to take on Roku, iOS, and tvOS for clients. He tells us what it's like switching platforms, how he got there, and fishing.

Transcript

Chris:
Today, I'm going behind the screens with Lullabot's senior developer, Angus Mack. Hello Angus.
Angus:
Hey, how's it going?
Chris:
Good. So you joined Lullabot how many years ago?
Angus:
I think over five years now, I think it was 2012 in March.
Chris:
And you started off doing mostly Drupal work, right?
Angus:
Yeah, it was a Drupal 7 at that time. Yeah I was basically mostly doing Drupal for a little while until I started branching off to do other stuff.
Chris:
So, what is it that you're doing now because you barely touch Drupal at all anymore, right?
Angus:
Yeah, I'm actually working on iOS and tvOS and mostly concentrate on tvOS and using Swift and X-code and all that good stuff.
Chris:
So Swift is the language ... that was a Facebook language, right?
Angus:
Apple.
Chris:
Apple okay, Swift was an Apple language?
Angus:
So, technically Swift is open source but a lot of the Apple SDK is written in Swift or Objective C is not open source.
Chris:
Okay so how has it been transitioning with Drupal to something like that?
Angus:
It's interesting. I mean, I haven't been doing Drupal for a quite a while now so I spent some time working on Roku for a little while. I spent some time working on React and JavaScript and all that stuff and yeah, and now I'm working on Swift. It's always ... I've always liked playing with different technologies and just like moving and kind of challenging myself. I believe ... I say, once I understand PHP, I want to try something different and see how people are doing it in the Swift world and then kind of be able to contrast a different languages and how they're different or the same or what can we do better in JavaScript from learning some of the good stuff from Swift, for example.
Chris:
Mm-hmm (affirmative). So Swift is used in tvOS, is it also used in Roku or do they use a different language?
Angus:
No, Roku is in BrightScript, which is a language that I think it was the founder of Roku created. It's a pretty ... people compare it to Visual Basics but it's pretty low level and there's a lot of issues with it. Swift is a little bit more sophisticated and I think technically it's built on Objective C.
Chris:
Mm-hmm (affirmative).
Angus:
So there's a lot of stuff that you can bridge from Objective C to Swift but it's mostly written new for iOS and tvOS.
Chris:
Interesting. So, you're putting together apps for these services?
Angus:
Yeah.
Chris:
For particular Lullabot clients?
Angus:
Yes, so I worked for a big media company and so if you have an Apple TV at home, you could be using the app that I spent a lot of time and tears and blood and sweat and yeah and so it's an app that ... we have an iOS app and tvOS app and I worked on the iOS app first and you know, just an app that you can go and watch some of your favorite TV shows for NBC and so if you're using, if you go on your phone then you get the NBC app and you can see some of my work there and we end up splitting out to the tvOS team and we actually we use a lot of the code because it's technically it's the same code base. I mean, iOS and tvOS share a lot of the common elements.
Chris:
Mm-hmm (affirmative).
Angus:
But the front end obviously is different. One is on the phone and you have ... your finger can touch it.
Chris:
Right.
Angus:
And there's like the tap action and all that but on the tvOS, you have sort of a track pad remote thing. So, it's a little bit different but we share a lot of the code. And so-
Chris:
Yeah.
Angus:
If you have an Apple TV and you go and download the NBC app, you might be able to see some of the work that I've been doing.
Chris:
What was the most difficult part of like a big "gotcha" on those, it was really ... it took a while to figure out but once you got it, it was sort of like that "aha, this feels really good" moment. Or was there one or was the whole thing in and of itself-[crosstalk 00:04:26]
Angus:
The language itself is not too bad. There are a few things that it's a little bit of a ... like just Apple's sugar that they put in, so it makes it a little bit confusing and complicated so for example, every single variable can be an optional variable or a non optional variable so it's kind of like a nullable concept. So in JavaScript, you don't have that, you know? You have to check if the variable is null but in Swift, if you're variable is not optional, there's no chance for it to be nil. They call it "nil" in swift and there a few other stuff like, you know, just little things that you use like we use enum a lot for different things, which we don't have in PHP but I think there's ... they have it in C or maybe even Java.
I don't know, I can't remember. But there are a few differences but the most difficult thing is probably just the setup. It's really darn difficult to set up X-code and have it compiled and have everybody using the same certificate so you can build your app to actually a physical device. So I guess, it's fine if you want to play around with it and I encourage everyone to go download X-code and use the simulator and play around and see what you can get out of just putting in a few lines of code but once you are past that point and you want to actually build it to a test device, that becomes a little bit more complicated and you have to get a developer account and you have to pay for it and you have setup your certificate and all that stuff. It becomes even harder when you have a team of people that you know, you're developers, sometimes you might have to take away permission from somebody and then you're gonna have to generate a new search for everybody and sent that out to your whole team kind of thing.
Chris:
That sounds really tricky. And so everyone's working on their local host then with X-code emulator to see how it's all working?
Angus:
Yeah so each of us still have a device as a ... that's what your client is going to see so the simulator sometimes doesn't catch some of the problems like there's memory problems that you might not get when you are running it on your MacBook Pro, there is a few things like the way they interact with an Apple TV simulator is not the same as using a remote and actually sort of using your finger and rapping the track pad and clicking it, it's just a little bit different the way that you would kind of navigate so that kind of stuff is really hard to really have a good sense of what actually happens when you're using your simulator. So, a lot of times with tests, especially some of that user interaction things, we'll test it on the actual device just to see how it performs.
Chris:
Mm-hmm (affirmative). That makes sense. So if somebody wanted to get into creating an app either for Roku or for well iOS or tvOS, what's a piece of advice you would give to somebody who is really interested in maybe learning Swift or learning a language and creating something like that?
Angus:
Mm-hmm (affirmative).
Chris:
What's a good starting place for them?
Angus:
I would say just go ahead and download X-code, there is a lot of beginning apps just from downloading X-code. There's the playground that you can use on the iPad I think, I don't know if they have it on the iPhone but on the iPad there's something called Swift Playground and it's basically sort of like a video game where you have this animal creature thing that you're supposed to bring into from the beginning to the destination so, you would have to write code so they would teach you, "okay, I need to go forward three times, how can I write a loop in Swift to kind of bring this creature over to the destination?" So like little levels like that so you get to play around with a lot of that stuff.
And that's a really good resource and they actually built it for I think mostly for kids to just learn and just kind of get them interested in programming but I would also just go online. There's a lot of resources, you pay $10. Udemy has a lot of good courses, that's actually how I started. I knew I was gonna transition over to start working on iOS and tvOS so, what I did was I [inaudible 00:09:04] on the weekend, I spent about 30, 40 hours and just finishing a course and just to see how the basic stuff worked because a lot of the stuff, you can sort of figure it out but just following somebody and doing the same thing, there's nothing that beats just trying hands-on, getting your hands dirty.
Chris:
Yeah, absolutely. I didn't realize there were so many fun like game sort of resources like that, that's really cool. Do you miss Drupal at all or do you want to stick in this area of programming or is there some other place that you'd like to get to to [inaudible 00:09:40] project?
Angus:
I always like to be a little bit different from everyone else so it's kind of cool that I'm like, "Oh, I'm this Swift guy," and I can make jokes like, "Here this is what I would do but don't listen to me, I'm just a Swift guy." But I don't know, I do really like Drupal and I feel like I've not been keeping up with Drupal 8. My focus was on Drupal 7 a lot of the times and I have transitioned off the Drupal project since before it was out. So I've spent some time on it but I feel like I want to get back into it a little bit but at the same time, I'm not completely detached from Drupal. Like a lot of the information that we get, even though it's like a few layers down, the information, the data is still coming from Drupal to begin with.
To editors going to Drupal, they go through no API that goes into a middle tier before it gets to me in iOS or tvOS but a lot of that stuff is still kind of relevant so I can still tell when I get a piece of data, oh this is an entity, I know exactly why it was scheduled ... like it was ... the data is structured that way so a lot of that kind of makes me feel a little bit like home and also kind of makes sense when I see it so, it definitely helps a little bit but I do want to try to get back into Drupal 8 and maybe convert my website over kind of thing.
Chris:
So if you woke up tomorrow and all that was gone, the internet had disappeared, what would you do with your time?
Angus:
Oh man, I can't wait for that to happen. I would love to be ... so first, I would have to fight off everybody and get a piece of property just by the water and I would just start farming that land and fishing that land and I would just, that's my dream. Even if the Internet's still around. The problem right now is, I work, you know? Gotta make money.
Chris:
Right. Well still, you could make money doing that.
Angus:
Yeah so, I would love to be able to just even in 20 years if I'm able to just live by the water and you know, grow my own food and catch my own fish for dinner, that would be great.
Chris:
Yeah, you talk about fishing on our calls a lot. Is there any particular place you like to go or do you prefer ice fishing over regular fishing or is it just any time you get a chance to throw a line out?
Angus:
Yeah it's sort of mutually exclusive so I'll take any chance I can so, I like them equally but they also different. But it's definitely great to be outside either way whether it's warm or cold, just be outside in nature.
Chris:
Yeah.
Angus:
Just catch a fish, put the fish back. It sounds kind of weird when you put it that way.
Chris:
What's the largest fish you've ever caught. And you can exaggerate because no one can see your hands so, no one will have any idea if you're telling the truth or not.
Angus:
This big.
Chris:
That's a monster fish.
Angus:
Probably a few pounds, I mean, I catch a lot of bass and I live in Ottawa in Ontario so we don't get the fish that you get in the south so you know, a bass is like four or five pounds that's pretty good.
Chris:
Nice. So to wrap it all up, is there anybody that you would like to share some thanks or gratitude with who maybe gave you a little push along the way or is a presentation that you saw that was really inspiring?
Angus:
Yeah there are a few people and most of them are Lullabots. First was, I was given a chance. You know, I feel like when I applied to be a part of Lullabot, I wasn't ready for it. Like I don't feel like my skills were good enough to be a part of Lullabot. You know, I'm sure a lot of us feel that when they first started but you know, Lullabot took a chance on me and along the way James and Andrew, they helped me out a lot, just my personal growth and just technical skills in general. And I would like to thank Mateu for basically giving me a little push.
I was sort of given of choice of whether I want to go and explore the iOS and tvOS world and I was actually about to turn it down and he actually said, "Well it's you, I mean, you have done the other stuff, you have done Roku, you have switched from PHP to JavaScript, you know, why are you worried about it now?" And that actually opened a big door that you know, it's just like to see a whole world that I've never seen before so thank you for the people mentioned and a lot of Lullabots here that have given me the chance and encouragement.
Chris:
Cool. Angus, thanks a lot for taking a few minutes, man. This was great.
Angus:
Oh thank you.
Join the conversation
newsletter-bot