AppForce1 Podcast: news and information for iOS app developers
← All episodes

hashtag iOSDevHappyWhatTheHackHour

31:03

In this episode

Read the transcript
Jeroen Leenarts: Hi, and welcome to the 15th episode already of the app force one podcast. My name is Shannon Leenarts. And I've been developing software for 18 years, and I've been developing iOS apps for over nine years. Also, I'm running the Dutch cocoa has for over seven years. If you are an iOS app developer, you should listen to my podcast because it will keep you updated on interesting articles, conferences and events you might not have heard about otherwise. Also, I have my coaching for free section with Sam, this episode will be a bit longer than you used to. But that's because I have a big section on coaching Sam, at the end of my episode. Of course, I will also have done these Monday morning tweet. Last weekend. I also meant to the iOS dev happy hour for the second time, and I will shortly discuss my experiences there. But first, this week's news identity pinic how to configure sharp certificates for your app. traits of a good accessible iOS app. app architecture basics in Swift UI, part two swift UI natural pattern ListView, a table view equivalent in Swift UI, accelerometer and gyroscope examples in Swift, what you should know about iOS unit testing, and lazy four in Swift explained with code examples. If you have any feedback, please reach out on Twitter at app Force One. Apple has released an article on identity pinning and how you can configure server certificates for your app. It's an interesting overview on how you can do certificate pinning within your app and what the drawbacks and advantages of radar. What was interesting for me was that you can actually do some form of pinning with App Transport Security declarations in your info P list. So yes, you heard that correctly, you can pin a certificate just by entering a value in your info dot P list. Be careful when you're doing certificate pinning in your app, because the drawbacks can be very significant. Have a look at Apple's article and you'll definitely learn something new. Danny defesa has written a nice article on what the traits of a good accessible iOS app are. It's a great overview of why and how you can do accessibility within your app and pay special attention to the artwork. I really like it. So have a look at his article and learn about why you should make your app accessible, then he has been a guest in one of my interview episodes a little under two weeks ago, Matt Gallagher from cocoa would love as released the second part of his app architecture basics in Swift UI article. In this article, he will discuss swift UI as natural pattern. And it's a great overview. If you want to have a bit more insight into what architecture actually drives your standard swift UI application. Definitely have a look at this if you want to know how swift UI fits in the whole architecture world with model view controller and Model View ViewModel. And other approach that you can take architecting your iOS app. So Irun has released the third part of his article series building lists and navigation in Swift UI. In this article, he will explore a list UI table equivalents in Swift UI, he creates a nice overview of what you can actually do with a list in Swift UI, how it compares to a UI TableView what challenges you might run into if you are coming from UI Kit development. It's a great overview and it's a nice addition to his article theory. Robert Pietta has an article on accelerometer and gyroscope examples in Swift. As we all know, iOS devices come with built in motion sensor capabilities for detecting changes in acceleration, rotation and magnetic fields. In his post, Robert presents examples for reading accelerometer, gyroscope and magnetometer data using cm motion manager in Swift. It's a great article if you want to look into these physics based sensors available in any iOS device. Christiane Crowley provides a nice overview of why you should do unit testing on iOS. This article is called What you should know about iOS unit testing, but he provides a convincing argument on why you should actually be concerned about unit testing your code base and what benefits it will actually bring you definitely have a look at this article if you want to be reminded on why unit testing is important. And if you're new to iOS development, make sure to have a look at this article because unit testing is something that you want to have in your skill box available at any project in any code base on Tom formulae, or Antoine vanderley, whichever you prefer. This is exactly the type of article that Antoine is very good at explaining concepts within the Swift language or within the frameworks of iOS, and making sure that you can understand what the specifics are by providing great code examples. So if you want to learn about what allays for is in Swift, have a look at Antoine's article and learn all you need to know about lazy variables in Swift. Now, let's continue on so Donny was Monday morning tweets. Philip Nemecek has launched the iOS feats project this week. He wants to add a dark team and possibly promoted a little bit Philip describes that the site helps bloggers find audiences and audiences find new content. The site aggregates over 400 blogs and it's refreshed every few hours. Philip will be super happy if you check it out and tell your developer friends about iOS feats.com Rob Black is taking the plunge on NS Fetch Results Controller. Nick Ben Porat is still working on the thingy, and today is his birthday. Happy birthday NIF FASCO is working on implementing a custom swift UI availability calendar. He continues working on the MVP iOS app. And on top of that, he's publishing the swiftly brief issue and blog post. He's going to speaking in a local podcast about whiteboard interviews. Joe melotti, is still trying to figure out better xe test test names without much third party code count and Owen started the job hunt after losing his towards the end of 2020. Good luck on finding a new job. Magnus did a soft launch of flip Graham. And he handed out a few free codes during the iOS deaf happy hour. I was actually in the chat with Marcus and I received one of his codes. It's an interesting app display program. But I have to dig more into it to be able to tell you more about it. And that brings us to the next. And that brings us to the next part of my episodes, which is iOS dev happy hour. Last weekend, there was another edition of this phenomenon. And it's been the second time that I attended. And it's been another great addition, I definitely recommend any iOS developer out there to have a look into iOS dev happy hour, and join the next one when available. Just search for the hashtag on Twitter, iOS, deaf, happy hour, all one word. It's providing to be a great community. And the people in there are awesome. Also, a lot of the names related to iOS deaf happy hour will be future guests on the episode. So keep an eye out for my future episodes, and get up to speed with iOS deaf happy hour, highly recommended. And this in turn brings us to the final part of this episode. And that's Sam. He is also a participant of iOS dev happy hour. Sam is a self taught iOS developer who is working hard to land his first paid job as an iOS developer. Sam has been receiving some coaching from me. And he's actually a participant of the What the heck hackathon. And he was quite successful. So have a listen to what Sam and I discussed. I personally have my fingers crossed for a successful week for Sam. So hi, Sam, how are you doing this week? Sam McGarry: I'm doing great. Jeroen Leenarts: I've actually heard from you that there's actually two big things that are actually happening at this time. One has already happened and one is in the near future. And I wanted to touch upon those two things, because both of them are great things that actually are happening at the moment, the first one that you participated in a hackathon. And the second is that you actually have your first job interview. So how are you feeling about that? Sam McGarry: I'm feeling really excited about the interview. In particular, I've worked a really long time getting my projects together and studying and things like that. So this is just getting an interview by by itself was like it was a huge moment for me. Jeroen Leenarts: Obviously, there's no guarantees yet, but you still have the experiences of going on an interview for the first time. Sam McGarry: Yeah, that's, that's why I'm looking forward to it. No matter what happens, Jeroen Leenarts: I think you can only grow from this. So I wouldn't fuss too much about it. Of course, I can imagine that. It's it's a big thing. And I myself would get a little bit nervous as well. But that's all normal. So don't worry about you being nervous. Let's dig into the hackathon a bit first. And then I think you have some questions to prepare yourself for your interview. We'll go into that second. So the hackathon, what happened there? Sam McGarry: I met a few people on Twitter, I met a guy named Alex Silver, who teamed up with first dance. And then I was looking forward to two more teammates, and I found a duo on Twitter that were already teamed up together as Rob black and an idiom coats on Twitter. And we all got together a few days before the hackathon. And we started brainstorming ideas. And we we were really interested in doing something with Apple's AR kit and vision frameworks Jeroen Leenarts: who organized the hackathon syro Sam McGarry: and ting and they they got together and organized it they announced that on Twitter and there was about a little over 45 participants. And at the end there was I think in total Around 16 people that were involved in presenting there was like, six or seven teams. And then there was three or four people who presented a solo project. And so Jeroen Leenarts: the the entire hackathon basically was a hashtag on Twitter, right? Sam McGarry: Yes, yeah. Yeah, that the hashtag started naturally, as it does. So what's the what? What's Jeroen Leenarts: the Hashtag? Sam McGarry: Hashtag? What's the hack? Jeroen Leenarts: What the heck, okay, I have a little secret for you actually, thing. And I have been in contact after the hackathon. And thing will be on my podcast. sometime this year, we're going to be recording most likely in March. So hopefully, by the end of April, there's a nice interview with thing available online. And maybe I should ask if the other organizer can also join in then. But who knows? Let's see if he listens to my podcast. So yeah, as a hackathon on Twitter, you basically saw it on Twitter, I thought, like, hey, that's interesting. And did you ask if you could join a team? or did somebody offer that you join their team? Sam McGarry: So the way they had it set up as you joins as an individual, and then later on, if you ended up joining a team, or you were already on a team, you could inform them? So I, I didn't know anybody doing it. And I just I had joined as an individual. So I, I made a tweet myself saying, is anybody interested? And in making team, hashtag What the heck, you know, do do what you have to do. And Alex commented on that tweet, and that's how we start talking. Jeroen Leenarts: It's fun, actually, because it's basically what we talked about in my previous episodes of my podcast, you reaching out on a social media platform, Twitter in this case, and somebody else actually reaching back and saying, Hey, man, join our team. And we'll have a blast and see where we'll end up. Because I think you ended up at quite a reasonable. And result, I think, right? Sam McGarry: Yeah, it was, it was a, it was a really cool result, our app that we made was voted for. We got the award for best products, that because there was a there's a voting system at the end, where everybody can vote for five distinct categories. Jeroen Leenarts: It was a 24 hour. Hackathon, right? Yeah. If you look at the end result, you were part of a team of four people, how big was your contribution to the final product? Sam McGarry: Somewhere around 20 to 25%. Jeroen Leenarts: So you're basically your character weight within the team, and were able to contribute? And did you learn a lot or Sam McGarry: I learned so much. I did not have a lot of experience using gits with team members. And we base our whole project on GitHub. And we were doing merge requests and pull requests and making our own branches to work on specific things and, you know, committing those changes and push it into the repo. And I'd never done that working on a team before. And all the team members honestly helped me out, like learning the good stuff at first. So that was really, really useful. Because I know that's, that's, I mean, it's important to know that if you're looking for developer positions, Jeroen Leenarts: okay, so yeah, that's basically the project type teamwork that you had hands on experience there. And by putting yourself out there, you actually had a lot of fun. You created something that was impressive, because otherwise you wouldn't have won in this category of Best Product. And you learned a ton. So any drawbacks? Sam McGarry: Just that I was on three hours of sleep, I think that was the only drawback coding for 19 hours straight was, was really fun, and especially being in a call with my teammates for basically all that time. We we got pretty close, just, I mean, working on the same problems for hours on ends and just trying to get it done by the deadline. But no Dropbox it was, I learned a bunch of frameworks as well, I learned, I spent hours learning how to train a machine learning model for the hand gesture recognition that we were trying to implement in our application. Yeah, just for Jeroen Leenarts: reference, the product that you created was called AR deck. And it allows you to control an RDC stream by making hand gestures right? Sam McGarry: Yeah, so it connects with a streaming program called OBS. You can set up gestures in the application to do specific actions in the program. So you could assign let's say, like the full hand gesture, where you have your five fingers extended to toggle the volume For your stream, say you wanted to lower by default, just like lower the volume of the stream to a certain level, you could set that level and then set that to the hand gesture. And then when you do that hand gesture that action would perform. And then we also supported some other actions like changing the background scene for your stream. Jeroen Leenarts: It was a confirmation of what we talked about the previous time, just by putting yourself out there, you were able to get into a situation that allowed you to learn a lot, have a lot of fun, create something worthwhile that can actually be put on your portfolio or your resume. And you made new connections with with like minded people. Is that Is there anything on the next hackathon or event that you would do differently compared to this first time, Sam McGarry: we actually were talking about this a little bit. And my teammate, Alex actually just wrote a blog post, kind of chronicling the whole event, step by step. And he also kind of touched on the kind of like lessons learned at the end, and things we would have done differently. So the planning, overall, was was pretty good. Like, we had a pretty good plan for the UI and things like that. But we didn't plan like how we were going to use Git, and we didn't plan out our architecture. And we didn't plan out. Like, we didn't quite really test like the machine learning thing, like creating your own model from scratch. And using something like that. Because, for example, I took in, in an attempt to make our own model, because for the demo version of the app, we actually ended up using a model that was that was online. That's what we had to fall back on. But we tried to make our own and I took 380 photographs of my own hands trying to teach the model to recognize six unique gestures. And it likes two or three of the gestures and the other ones, it just it just did not recognize. And we trained it several times. Jeroen Leenarts: Yeah. But still, it's, it's a meaningful exercise. And you were able to, to showcase the principal mechanisms of the product that you created with a team of four people. So that's really good results. The other thing that we want to touch upon was you actually having a job interview. Now, we're not going to go into too much detail, when and where. But you did have some questions on how you can prepare yourself for this job interview? If I'm correct, I hope our can answer your questions that you have in this regard. Sam McGarry: These questions are just kind of general preparation, questions that have been kind of bouncing around my head? Because I mean, this is my first interview. So some things I want to clarify. So my first question is, is it good to ask for a copy of code from the company to get an idea of what I'd be working on? In my role? Jeroen Leenarts: It That depends? Because if you would be interviewing for a company that has that product, open source, then yes, of course, you can ask where it is. But with with source code, if it's closed source, maybe on principle, they would be perfectly willing to share it with you. But legally, there are some obstacles there because of course, it's source code. And there can be a lot of intellectual property in the source code itself. Because one of the things that if you get hired, that you're bound to run into is a nondisclosure agreement. Of course, you can ask, but I would expect that you would get an answer. No, we cannot share the source code. But thank you for asking. So that's a bit what you would run into there. Sam McGarry: What about, like a take home project? Would that be something I could ask for in the interview is, do you have something I could take home and work on to show you what I'm capable of doing in a code base? Jeroen Leenarts: That depends a bit on the interview process with the company. Some companies actually ask you, here's an assignment, create some code based off of this assignment, and show us what you have done. On the other hand, you already have some of your own work available online at GitHub. I reckon that E AR deck app will also be available on GitHub publicly. And that's actually good resources to to share with prospective employers, because their engineers can then once you are through the first level of selection, they can actually look at stuff that you create it and get a feel of what type of software developer you are. So basically, having some of your own work available online that people can look into that you can point to is quite good. And any software developer that would look into your work would actually take into account that how recent the work has been. Because if you know that somebody has a short track record in software development, and you see the test some work like a year ago and some work, that's like two months ago, you would, you would assign more value to the more recent work, because obviously, somebody who's new to software development has learned a lot in a year time. Sam McGarry: Cool. My next question is kind of, it's a bit more, it's, it's a bit more of a simple question. But if I'm asked something in an interview that catches me off guard, how should I respond? Jeroen Leenarts: First of all, don't worry too much about it. Hard to do when you are actually in the interview. If there's something that catches you off guard, for instance, you really don't know, don't try searching for an answer. Don't start mumbling and just throwing random stuff out there. You can always ask like, I don't know how I should answer this. Or it's unclear to me what you're trying to get to with the question, can you please elaborate a little bit? First of all, the person interviewing you, gives you some more detail in what they're trying to get from you. And second of all, because they're talking and you're listening, you can have some more time in your own minds, too, to process what they're actually asking of you. So by asking a question to elaborate, you actually provide yourself in an interview situation, some more thinking time, and also some more spoken detail by the person interviewing you. So I In any case, don't fuss too much about being caught off guard. remain honest. And if you don't know, you just don't know. Cuz there's nobody out there who knows everything? Sam McGarry: I'd say. My next question, when I got the interview, I followed up and asked if there's anything they would like me to prepare for the interview. And they said no. And the only other information they provided me was that they expected the interview to be around an hour. So I was just wondering if you could help me kind of depict what that means. Jeroen Leenarts: You asked me a question back. Is there anything I can do to prepare? Or is there anything you'd like me to prepare? That's, that's very good that you did that? Because it shows that you are engaged and that you are willing to do the best that you can to showcase yourself have a first one hour long session? What can you expect? Yeah, it depends a bit on the process that you have, it could very well be that it's immediately a technical interview, that it's it's about source code and software development and your skills as a software developer, it could very well just be that they first are screening you whether or not you as a person are a fit for their culture and their company. Both interviews have their own specific challenges and fun aspects, really. And maybe they combine in one session could be as well. But I just go in there and and just take an approach. Okay, this is my first time, I don't know what's going to happen. Every company is different. So let's just see what happens. I've done my homework. And I'll just answer any questions within reason, of course, that they have for me. And also, if the if you have the opportunity. Don't don't force it, but also lead by asking specific questions show that you actually have spent some time on their website, looking into what the company actually produces as a product. So for instance, if it would be a company that does a lot of things with, with audio, maybe you can ask some specific questions on specific frameworks that are in this area. Or you can ask is your app using core audio for example, of course, look up what your relevance frameworks might be within the iOS ecosystem. But that would be an example of how you can ask a legitimate question that's actually showing that you have an interest that shows that you have actually have looked up what the company creates. And it also provides an opportunity for the person interviewing you to start talking. Because one of the secrets that you should know about when talking to people is the easiest way for people to to like you in a conversation is that if you are able to let the other person do the talking, it's very weird, but in my experience, the more you shut up, the more they like you. And of course, it's an interview for job position, so you have to answer the questions. But if you have the opportunity to ask a question back, and then just listen attentively to what they're telling and ask maybe one or two follow up questions, if they allow you, then they're doing the talking, they like you. And you show an interest on a technical level, that's also a good strategy to keep in the back of your mind. And if there's an opportunity to just toss one of those questions into the conversation, I was Sam McGarry: thinking of preparing a list of questions, I actually asked a few questions in my application itself. So I plan on kind of like paraphrasing those. And they, I also downloaded their iPhone app. And I've been messing around with it a little bit. And they actually, it's really cool. They have a little section in their in their app, kind of like a setting settings page where you can view all of the third party frameworks they used in the app. So I've been taking notes on that and kind of familiarizing myself with those, those frameworks, Jeroen Leenarts: piece of advice that I can give you that because you I know you you like to take notes and prepare, it's better to let your conversation just flow organically, and not having to refer back to your notes. Compared to going down a bulleted list. Okay, I want to talk about this, this, this and this. Oh, we forgot one, I wanted to ask this as well. Sam McGarry: What are some ways of standing out in an interview as a candidate, Jeroen Leenarts: that's a good one, really, because it really depends a bit on what company is looking for. But in general, what always works is if you can showcase what you are capable of doing. And in your case, that will both be most likely that you are capable of learning, because you're actually interviewing for a junior position. And you yourself are a junior developer. And I think it's in your case, it is important to showcase that you are able to work together with other software developers, that hackathon that you are able to work in somewhat project like setting. So again, something like a hackathon. And also that you are able to create an app on your own and solve challenging engineering puzzles. That's, for instance, the core data stuff. And obviously, with the core data stuff, you would have been done quite a lot faster if you had someone available or some reference available that like helped you over the speed bumps. But that's part of learning, running into things and overcoming the challenges. So I think in your case, as a junior, it's most important that you show that you're able to work together, that you're eager to learn, and that you are capable of taking suggestions and advice. Obviously, you have an opinion on things. But being a good Junior means that you actually are willing to do the work and capable of of doing the work and the test opportunity for you and the company to grow from a junior to a more Meteor senior developer at some point, because then you actually have showcase that you if you show that you're able to do those things, then there's potential. And for a junior developer, you're always looking for potential in a candidate. A first interview very exciting, Sam, and I really hope that that you have a good experience and that maybe you have some great results. Because that would cut short on our on our coaching a little bit. But then even suppose that you would turn into a professional iOS developer, which is your goal, I think, I think we'll stick together for a little bit anyways, because there's so much to learn, actually, even if you are already working with a salary on iOS development. So good luck during the interview, and definitely let me know as soon as possible if you have any results from the conversation, and best wishes to you and I hope for the best. Sam McGarry: I appreciate it. Thank you

Keep listening

More from the show

Image
Title