Swift Meetup Devs Pop-Quiz

We asked questions of some of our favorite Swift Language User Group (SLUG) speakers: Ayaka Nonaka, Sash Zats, Natasha the Robot, Hector Matos, and Michael Helmbrecht. They revealed their questionable cooking habits as well as exciting things they learned recently. Did you know that cats can play a major role in determining the success of an app? 🐱

Q: What’s your favorite app that you’ve recently fallen in love with?

Ayaka: I usually don’t play games, but, and this is a crowd favorite, but I really really love Monument Valley. When I used it, I was just like, “How did they design it? How did they engineer it? How does all the geometry and like, the 3D graphics work? How do you make impossible figures in computer graphics?” I just started thinking about all those things, and the creativity behind the game itself, and it just blew my mind. I was like, “How did a team of people actually build this thing?” Sometimes you use an app, and it’s just like, “Oh, yeah. I see exactly how they built it”. It’s like, “oh tab bar” and “oh, here’s a nav controller”, but this game, I was just like, “Wow, I have no idea, and it’s really cool.” And the design is awesome. Everything is perfect.

Sash Zats: That’s Hopper Disassembler for me. No, it’s not for the UI or the UX, but for the fact that I can look into the guts of other applications and just find out how they built it and what kind of secrets do they hold.

Get more development news like this

Natasha the Robot: My favorite app recently that I’ve been using a lot is Wickr. It’s kind of like Snapchat, but more for adults, where you have a friendlier interface, including texts. I enjoy it because your comments get deleted, so I’m enjoying the concept of ephemeral communication where things don’t have to be staying there forever. It’s surprisingly nice to develop deep conversations, and then BOOM! everything gets deleted the next day.

It reminds me of Buddhist monks who make these pretty sand sculptures one at a time, and then at the end, they just blow it away. Somehow Wickr makes that concept come to life for me more so than Snapchat, so I’ve been talking to everyone only via Wickr recently.

Hector Matos: I just started my personal website. I made it through Squarespace, which has an app for site metrics and analytics. It might not seem interesting, but since I just started out, it’s really nice to keep track of, “Oh, I got a thousand views today.” The app itself has solid UI and UX and is beautifully done. Nice little animations in there, giving you week over week, day over day stats in descriptive graphs. And it even tells you, “Hey, you’re down, like, 30% in views from yesterday,” which is pertinent to what I’m trying to do right now. They even have an Apple Watch app, so whenever I’m away from my phone in the office, and I just feel like checking on my metrics. I just hop on it or open the glance, and BAM, I see how many views I got.

Buffer is another really good app. I don’t know if you’ve heard of it. Realm uses it here for tweets and I am starting to use it for my tweets too to get visibility. It’s actually giving these tweets at peak times, and it works very well, and I like the fact that it actually shortens your URLs whenever you link to something. They have very good metrics and a Pro plan for more features.

Michael Helmbrecht: The best app I’ve fallen in love with recently is a delightful game from Japan, which is called Neko-Atsume. It is a delightful game in which you have a backyard, and you set out toys, and cats come visit and play with the toys. That’s the whole game. It’s very cute. Pretty much the end. The design is really good. Surprisingly, the game is from Japan, and it’s only in Japanese. Even the version that’s on the U.S. App Store is completely in Japanese. There are no audible words, it’s just music, but I don’t know how to read Japanese. I can’t even read the characters phonetically, so it’s very impressive to me that the game is so easy that I know how to play it. Cat love knows no language boundaries.

Q: What’s the most exciting new thing you’ve learned about development recently?

Ayaka: So I’ve been writing Swift 2.0 almost full time now. We’re kind of in this weird, awkward transition period, where we still need to do our two-week release cycles on our Objective-C code base, and also prepare for Swift release in September.

I kind of get to feel how painful it is to go back to Objective-C. I didn’t realize how bad it was until I saw the alternative. Sometimes I ask myself “Why are we even still using this?” And we still have tons of crashes on Objective-C that couldn’t even have been possible in Swift. I can’t wait to be full Swift and just move on from our Objective-C code.

Some of it’s from 2011. I was perfectly happy with Objective-C until Swift came out, but maybe there are always alternatives out there, and we should always be looking for something better, instead of being content with what we have right now. Maybe there’s something way better than Swift out there, too, and we don’t know about it.

Sash Zats: I’m still trying to learn to delegate, not as a pattern, but as a real life interaction. You have very limited span of time, attention, whatever, and then you just have to learn to delegate and to interact with others.

Natasha the Robot: Today I learned from Hector’s talk that capture list arrays also accept different variable than self and you make them weak, strong, unowned. It’s a bit embarrassing, but I also didn’t know that you had to make delegates weak, and I worked in the Student Developers and other projects. I did know any closure referring to self should capture it weakly, and now I get to explore this.

Hector Matos: There have been several things. Especially since the community is actually starting to talk to me on my website. I wrote a blog not too long ago about the right way to write a singleton, and I got it right except for a part towards the end. Then an Apple evangelist actually tweeted at me, and said, “Hey, you should make your inits private”. That never occurred to me and now I am aware of the best way to write it, which is not available in other places online.

A second cool thing I learned is unowned references. For today’s talk, I researched the subject and how it could lead to dangling pointers, reading interesting things about how hackers and black hat people can take advantage of situations where somebody forgot to do something with memory and left a dangling pointer. Because of that they can now just rip inside your app. This could easily happen to us with Swift applications with unowned unowned references, so I brought that up in my talk today.

Michael Helmbrecht: I haven’t done a lot of Swift coding recently. I’ve been doing a lot more web stuff. But I think probably the best thing that I’ve seen would be, now that Swift 2.0 supports respondsToSelector() and performSelector(), that you can just do duck-typed Swift by making everything an AnyObject, and just send selectors like in Objective-C.

Q: What’s the last thing you cooked?

Ayaka: Oh, no. I’m such a bad cook! That’s so bad. I literally never cook. The only things I can kind of cook are spaghetti and Annie’s Mac and Cheese. Oh, no! I know how to portion out the milk properly. I’ve experimented with using yogurt instead of milk as well. I think I’m the worst cook in the world.

Sash Zats: Actually, it was this weekend. It was a burger with some juicy meat and some onion. Yeah, that was really good. Most recently I had Soylent. Yeah, I do Soylent at work, just because we’re working in the middle of nowhere and the food around us is terrible. I have been trying it for month and a half now.

Natasha the Robot: It’s crazy, but I haven’t cooked for about two or three years until one day, I walked back from yoga class and felt that “I wanna cook.” This was around two weeks ago. When I cooked, it was pretty simple. I like healthy foods, so it was a pasta, but cause we’re in California, it was the brown rice healthy pasta that doesn’t really stick together, but it’s still good. I also like heirloom tomatoes and mushrooms and some carrots. Shallots, that’s the secret ingredient.

Hector Matos: Most recent thing that I cooked…my wife stays at home, takes care of the baby, and so she’s been cooking for me for a very long time. I think the last thing I cooked was spaghetti, but it’s been so long ago that I hardly remember it.

Michael Helmbrecht: The most recent thing that I, personally, with my hands, cooked? I have to think about that, actually. It was a recipe from Budget Bytes, which is a good website for eating cheaply and well. So there’s a recipe on there for African peanut sweet potato stew. It’s very good.

About the content

This content has been published here with the express permission of the author.

Ayaka Nonaka

Ayaka leads the iOS team at Venmo, where they write only Swift these days. She’s been doing iOS development since iOS 4 and loves writing Swift while listening to Taylor Swift. In the past, she’s given talks on NLP in Swift, Swift Scripting, and rewriting the Venmo app in Swift. She was born in Tokyo and was super excited to give her first talk there! 宜しくお願いします。

Natasha Murashev

Natasha is secretly a robot that loves to learn about Swift and iOS development. She previously worked as a senior iOS Engineer at Capital One in San Francisco, but now she travels around, writing about her experiences with new technologies. In her free time, she works on personal projects, speaks at meetups and conferences, contributes to open source, and likes to cross things off her bucket list.

Michael Helmbrecht

Michael designs and builds things: apps, websites, jigsaw puzzles. He’s strongest where disciplines meet, and is excited to bring odd ideas to the table. But mostly he’s happy to exchange knowledge and ideas with people. Find him at your local meetup or ice cream shop, and trade puns.

Sash Zats

Sash leads the iOS team at Wondermall. He started developing for iOS back when it was just Objective-C! Being a big fan of creative solutions, he believes in repurposing technologies as long as they work great and solve problems in the best way possible.

4 design patterns for a RESTless mobile integration »