Search: wenderlich

Have you always wanted to try writing augmented reality apps for iOS with ARKit? Do you have some free time this weekend? If you answered “yes” to both, you should know that Beginning ARKit, my course at, is available for free until Friday, Arpil 5th!

In 2 hours and 22 minutes of video, plus the time it takes you to get the starter projects and code along with me, I can take you from the AR equivalent of “Hello, world!” to building apps that you can turn into your own creations in the App Store…

Hello, AR World!: Your first foray into AR programming, which comes with a free SceneKit tutorial:

Happy AR Painter: An augmented reality tribute to Bob Ross, which turns your iDevice into a Google Tilt Brush-like thing that lets you paint in 3D space. This one had a lot of people at RWDevCon playing with it well after my workshop:

Raykea: In 300-ish lines of code, you’ll be able to write an app that does a little more than IKEA Place. Not only does it let you place virtual furniture in the room you’re in to see what it looks like, it also finds vertical surfaces and covers them with posters!

BaedekAR: The name’s a play on “Baedeker”, and this app is a museum app in the making. Point it at a known work of art, and it’ll draw an AR annotation telling you the title of the work, and an AR hotspot that you can tap to get more information about the work. This is one that I’m trying to promote to my cruise industry customers.

BaedekAR 3D: This app takes the BaedekAR app into the third dimension by having it use a new feature in ARKit 2.0: 3D object recognition! We’ll use this to detect 3D objects in the real world and draw AR annotations so you know what they are.

Once again, this course is FREE until Friday, April 5th! If you’re ready to learn ARKit and have fun at the same time, head there now and start learning!


Holiday gift ideas for the aspiring Android developer

by Joey deVilla on December 12, 2018

Android Apprentice and Kotlin Apprentice: Learn from a couple of great books

I learned iOS programming from iOS Apprentice, which is one of the more fun programming books I’ve had the pleasure of reading. It’s put out by the developer tutorial site, who have since expanded their offerings to cover Android programming in addition to iOS programming. Android Apprentice is for developers who want to learn Android programming from scratch, while Kotlin Apprentice focuses on the Kotlin programming language, which is rapidly becoming the preferred language for Android development. Both are excellent resources, whether you’re new to Android programming, Kotlin, or even programming in general.

Moto X4: So much Android for so little money

For just a smidge over $200, you can get the perfect Android phone for the developer on a budget (or in my case, a perfect second phone that also runs Android): the Moto X4. It has solid engine under the hood (Snapdragon 630, 3GB RAM, 32GB storage), good display (LCD, 5.2 inches, 1920 by 1080 pixels, 424 ppi), better-than-you’d expect cameras (12 megapixel rear, 8 megapixel front), and a 3,000 mAh battery. These specs put it squarely in the middle of the pack of the current phones, for a price that’s only slightly higher than a much slower, much sadder bargain device. Its metal body feels more like one of a premium phone, and unless you’re running the more intensive games, you probably won’t notice the X4’s performance difference from higher-end models. It’s makes a great phone for the Android developer who wants to target a wide range of devices. That’s a lot of bang for the buck, and that’s why it’s my Android development phone.

Don’t take just my word on the X4; here are a number of glowing reviews from other sources:

Logitech K380 keyboard: Feels good, man

A $30 keyboard shouldn’t feel this good, and it most certainly shouldn’t be be able to switch among three devices with a single keystroke. But that’s exactly what Logitech’s K380 keyboard does, which is why it’s the keyboard I use at my home office (where I work on and personal projects). I prefer it to Apple’s Bluetooth keyboard. Come to think of it, I should get one for use during my day job at Sourcetoad.

Want more than just my opinion? Check out these videos:


My ARKit tutorial at RwDevCon 2018

by Joey deVilla on October 4, 2018

Earlier this year, I gave both a 4-hour workshop and a two-hour tutorial on ARKit, the iOS augmented reality framework, at RwDevCon 2018, the latest edition of a mostly-tutorials conference put on by the premier mobile development site It got some of the conference’s highest reviews, and the video of the two-hour tutorial has been made available on YouTube:

Here’s the video…

…and here are the starter and finished projects that go along with the tutorial.

If you’d like to see the four-hour workshop, which includes two extra projects — one using ARKit’s image recognition, and another than harnesses Core ML to recognize real-world objects and rooms — you can see it and all the other conference tutorials and workshops by getting the RWDevCon 2018 Vault Video Bundle, available for $199.99 at the store.

And for even more ARKit goodness featuring Yours Truly, check out ARKit by Tutorials, the book that goes even deeper into ARKit with games, augmented reality portals, face detection, and more. I was a technical editor on this book, for the opening chapters, in which you build an augmented reality “Poker Dice” game.


Last night, Anitra and I enjoyed delivering our presentation on building user experiences for mobile augmented reality apps to the combined Tampa Bay User Experience and Front-End Design meetups at Bank of the Ozarks’ Innovation Lab in St. Pete.

Photo by Beth Galambos.

Augmented reality is still relatively new territory for most mobile app developers and designers. Until recently, if you wanted to build AR apps for smartphones and tablets, you were faced with the task of doing a lot of programming in order to “roll your own” capabilities, including:

  • Overlaying virtual images over camera images and displaying both on the screen
  • Detecting changes to the device’s location and orientation in real-world space
  • Re-orienting virtual images and drawing new ones in response to changes in the device’s location and orientation
  • Detecting and responding to objects in the real world as seen by the device’s camera and other sensors

This has changed in the past year, with the introduction of built-in augmented reality frameworks by Apple into iOS (ARKit) and Google into Android (ARCore). With these, you don’t have to be an expert low-level programmer to built AR apps; even if you can build basic web or mobile applications, building AR apps is now something within your reach.

Photo by Joey deVilla.

Augmented reality is also relatively new territory for users. Desktop and laptop computers have had the processing power to do AR for many years, but in order to be truly useful, AR needs the kind of portability that comes with tablets, smartphones, and wearable devices. For the longest time, these portable devices lacked the power to do usable AR.

The past year has seen the introduction of the A11 “Bionic” processor in the iPhone 8 and iPhone X, and the Snapdragon 845 or Exynos 9810 processor in the Samsung Galaxy S9. We now have flagship smartphones and tablets with processing power that rivals the processor in the current MacBook Pro. These devices are now powerful enough to deliver practical AR experiences.

Photo by Beth Galambos.

With augmented reality now within easy reach of developers and users, it’s time for UX specialists and front-end designers to start thinking about building AR experiences. AR interactions are quite different from those for desktop applications, and expand upon plain mobile applications.

It’s AR’s early days. Think of AR today as being at the same point as…

  • Personal computers in the mid- to late 1980s
  • The GUI, multimedia, and CD-ROMs in the early 1990s
  • The internet and web in the mid- to late 1990s
  • Web 2.0 in the early 2000s
  • Mobile apps in the late 2000s and early 2010s

If you take the leap, you can make a splash.

The presentation

AR’s a big topic, and we had a big presentation — 99 slides! We had a lot of ground to cover, as you can see from the SlideShare above.

For those of you who want to download your own copy of our slides, here they are in a couple of formats:

Apple Keynote (131MB)

PDF (101MB)

The presenters

In case you don’t know who we are, here’s a quick summary…

Anitra Pavka

  • Technical Product Manager at Malwarebytes, working on the consumer anti-malware product used by almost 15 million people.
  • Contributing author to O’Reilly’s book, HTML5 Cookbook.
  • Technical editor for O’Reilly’s book, Universal Design for Web Applications.
  • Three-time speaker on accessibility and usability issues at SXSW Interactive.
  • Previous Tampa Bay UX Meetup speaker about Apple TV UX. | @APavka | LinkedIn


Joey deVilla

  • Lead Product Manager at Sourcetoad, overseeing the design and implementation of mobile applications.
  • Contributing author at the mobile developer tutorial site
  • ARKit session and tutorial presenter at RWDevCon 2018.
  • Technical editor for the book ARKit by Tutorials.
  • Tampa iOS Meetup organizer.
  • Former Microsoft dev evangelist; tried to make Windows Phone 7 happen. | @AccordionGuy | LinkedIn

Learn to build your own ARKit apps!

If you’d like to try your hand at building AR apps for iOS, take a look at the tutorial session that I gave at RWDevCon 2018 in April. In it, I walk the audience through building two of the apps that we demoed last night:

  • Happy AR Painter, which lets you “paint” augmented reality shapes in real-world space.
  • Raykea, a scaled-down version of the IKEA Place app.

Not only does this page contain the video of the entire tutorial session, it also has links to the starter and final projects for both these apps. All you need is Xcode (available for free from Apple) and an AR-ready iDevice (iPhone 6S or later).

If you’d like to get even further into AR development for iOS, there’s no better book than ARKit by Tutorials, which not only teaches you all sorts of things about ARKit, but shows you how to build 5 AR apps:

  • Tabletop Poker Dice
  • Immersive Sci-Fi Portal
  • 3D Face Masking
  • Location-Based Content
  • Monster Truck Sim

I was part of the technical editing team for the book, and I can say with certainty that it’s a fantastic resource for the AR developer.


If you missed my two-hour tutorial session on ARKit programming at RWDevCon 2018, Getting Started with ARKit, you’re in luck — you can get the video of the session, along with the slides, step-by-step instructions, and starter and finished code for free!

RWDevCon is an annual conference organized by the people behind, the premier site for mobile app development tutorials. Over three days in early April 2018, the conference featured:

  • 4 intensive half-day hands-on workshops, including my in-depth ARKit session,
  • 18 hands-on tutorials, including my “Getting Started with ARKit” tutorial included in the free bundle,
  • Some very moving inspiration talks, and
  • A number of great parties, including one where I got to join the band, James Dempsey and the Breakpoints (who are playing later this year at WWDC)!

My free tutorial, Getting Started with ARKit

Go and download the materials from my tutorial, where you’ll enjoy all sorts of interesting stuff, including gratuitous meme abuse…

…the secret history of augmented reality, including what could be the first literary reference to what would eventually become AR glasses (and written by the author of The Wizard of Oz)…

…what I consider to be some of the best diagrams explaining key ARKit concepts anywhere…

…and a complete walk through the process of building a couple of apps that are both fun to use and show you how to write your own AR apps:

  1. Happy AR Painter, which you can think of as a less expensive version of Google’s Pixel Brush, but with your iPhone or iPad, and
  2. Raykea, my tribute to IKEA Place, which lets you see what stuff from my pretend semi-disposable funny-named furniture catalog would look like in your room.

The RWDevCon 2018 Vault

Part of what you get for RWDevCon’s price of admission is the RWDevCon 2018 Vault, which is the next-best thing to being there. It includes:

  • Four intensive, half-day workshop videos (including my in-depth ARKit session, where I walk you through building four ARKit apps)
  • 18 hands-on tutorial session videos (which includes Getting Started with ARKit)
  • Over 500 MB of complete sample project code for all tutorial sessions and workshops
  • Over 500 pages of conference instructional workbooks in PDF format

If you didn’t attend RWDevCon 2018 but still want the bundle, you can buy it. Better yet, for a limited time, you can buy it for half price — $99.99 instead of $199.99! (And in case you were wondering, I don’t make any money from sales of the Vault.)

Feeling lucky? is giving away three copies of the RWDevCon 2018 Vault to three lucky people! Enter the draw by going to this article on their site and leave a comment. On Friday, May 18, they’ll pick three random commenters and give them a free copy of the Vault.


How to “work the room” at RWDevCon

by Joey deVilla on April 6, 2018

Me and Delia, one of the friends I made at RWDevCon.

Hello from RWDevCon! It’s the annual conference held by the folks who run, the premier tutorial site for mobile development (and where I’m an author on the Android team). We’re all gathered at the Westin in Alexandria, Virginia, just across the Potomac River from Washington, D.C., where Anitra and I will get some sightseeing in once the conference has wrapped up.

I’m sure that you’ve perused the schedules and picked out the ones that you’d like to attend (and hey, if you’ve been meaning to learn about ARKit, come see my session on Saturday at 10:00 a.m.). But have you planned out how you’re going to work the room?

At RWDevCon — and hey, any conference you attend — you should keep in mind that while we spend a lot of energy on the presentations and sessions, the opportunity to meet and talk to the other people there is just as important. I’ve observed that some of the most important things I’ve learned at conferences didn’t happen at the presentation, but in the hallways, lounges, lunches, and social gathering, conversing with the other attendees. This observation is so common that it’s given rise to “unconferences” like BarCamp, whose purpose is to invert the order of things so that the conference is more “hallway” than “lecture theatre”.

It’s especially important to talk to people you don’t know or who are outside your usual circle. Books like The Tipping Point classify acquaintances with such people as “weak ties”, but don’t let the word “weak” make you think they’re unimportant. As people outside your usual circle, they have access to a lot of information that you don’t. That’s why most people get jobs through someone they know, and of those cases, most of the references came from a weak tie. The sorts of opportunities that come about because of this sort of relationship led sociologist Mark Granovetter to coin the phrase “the strength of weak ties”.

The best way to make weak ties at a conference is to work the room. If the phrase sounds like sleazy marketing-speak and fills your head with images of popped collars and wearing too much body spray, relax. Working the room means being an active participant in a social event and contributing to it so that it’s better for both you and everyone else. Think of it as good social citizenship.

If you’re unsure of how to work the room, I’ve got some tips that you might find handy…

Have a one-line self-introduction

A one-line self-introduction is simply a single-sentence way of introducing yourself to people you meet at a conference. It’s more than likely that you won’t know more than a handful of attendees and introducing yourself over and over again, during the conference, as well as its post-session party events. It’s a trick that Susan RoAne, room-working expert and author of How to Work a Room: The Ultimate Guide to Making Lasting Connections In-Person and Online teaches, and it works. It’s pretty simple:

  • Keep it short — no longer than 10 seconds, and shorter if possible. It’s not your life story, but a pleasantry that also gives people just a little bit about who you are.
  • Make it fit. It should give people a hint of the cool stuff that you do (or, if you’re slogging it out in the hopes of doing cool stuff someday, the cool stuff that you intend to do.)
  • Show your benefits. Rather than simply give them your job title, tell them about a benefit that your work provides in a way that invites people to find out more. Susan RoAne likes to tell a story about someone she met whose one-liner was “I help rich people sleep at night”. That’s more interesting than “I’m a financial analyst”.

My intro will be something along the lines of “I’m a rock and roll accordion player, but in my side gig, I’m a mobile/AR app developer who helps design apps for Tampa’s coolest software company.”

How to join a conversation

At RWDevCon, you’ll probably see a group of people already engaged in a conversation. If this is your nightmare…

Click the photo to read the Onion article.

…here’s how you handle it:

  1. Pick a lively group of people you’d like to join in conversation. As people who are already in a conversation, they’ve already done some of the work for you. They’re lively, which makes it more likely that they’re open to people joining in. They’ve also picked a topic, which saves you the effort of having to come up with one. It also lets you decide whether or not it interests you. If they’re lively and their topic of conversation interests you, proceed to step 2. If not, go find another group!
  2. Stand on the periphery and look interested. Just do it. This is a conference, and one of the attendees’ goals is to meet people. Smile. Pipe in if you have something to contribute; people here are pretty cool about that.
  3. When acknowledged, step into the group. You’re in like Flynn! Step in confidently and introduce yourself. If you’ve got that one-line summary of who you are that I talked about earlier, now’s the time to use it.
  4. Don’t force a change of subject. You’ve just joined the convo, and you’re not campaigning. Contribute, and let the subject changes come naturally.

Feel free to join me in at any conversational circle I’m in! I always keep an eye on the periphery for people who want to join in, and I’ll invite them.

More tips

Here’s more advice on how to work the room:

  1. Be more of a host and less of a guest. No, you don’t have to worry about scheduling or if the coffee urns are full. By “being a host”, I mean doing some of things that hosts do, such as introducing people, saying “hello” to wallflowers and generally making people feel more comfortable. Being graceful to everyone is not only good karma, but it’s a good way to promote yourself. It worked out really well for me; for example, I came to the first DemoCamp (a regular Toronto tech event back in the 2000s) as a guest, but by the third one, I was one of the people officially hosting the event.
  2. Beware of “rock piles”. Rock piles are groups of people huddled together in a closed formation. It sends the signal “go away”. If you find yourself in one, try to position yourself to open up the formation.
  3. Beware of “hotboxing”. I’ve heard this term used in counter-culture settings, but in this case “hotboxing” means to square your shoulders front-and-center to the person you’re talking to. It’s a one-on-one version of the rock pile, and it excludes others from joining in. Once again, the cure for hotboxing is to change where you’re standing to allow more people to join in.
  4. Put your coat and bag down. Carrying them is a non-verbal cue that you’re about to leave. If you’re going to stay and chat, put them down. When you’re about to leave, take your coat and bag and start saying your goodbyes.
  5. Show and tell. We’re geeks, and nothing attracts our eyes like shiny, interesting pieces of tech and machinery. It’s why I carry my accordion around; I think of it as a device that converts curiosity into opportunity (and music as well). I’ll be doing the same with my iPhone and ARKit apps as well! Got a particularly funky laptop, netbook, smartphone or new device you just got from ThinkGeek? Got a neat project that you’ve been working on? Whatever it is, park yourself someplace comfortable in the hallway, show it off and start a conversation!
  6. Save the email, tweets and texts for later, unless they’re important.They’ll draw your attention away from the room and also send the message “go away”.
  7. Mentor. If you’ve got skills in a specific area, share your knowledge. Larry Chiang from GigaOm says that “It transitions nicely from the what-do-you-do-for-work question. It also adds some substance to party conversations and clearly brands you as a person.”
  8. Be mentored. You came to RWDevCon to learn, and as I said earlier, learning goes beyond the sessions. One bit of advice is to try and learn three new things at every event.
  9. Play “conversation bingo”. If there are certain topics that you’d like to learn about at RWDevCon, say ARKit, Android, architecture, and so on, put them in a list (mental, electronic or paper) of “bingo” words. As you converse at the conference, cross off any of those topics that you cover off the list. This trick forces you to become a more active listener and will help you towards your learning goals. Yelling “BINGO!” when you’ve crossed the last item on the list can be done at your discretion.

I’ll see you at RWDevCon, and if you see me, please say “hi” — I would love to meet you!

{ 1 comment }

What I’m up to this week (and next)

by Joey deVilla on March 26, 2018

Tampa iOS Meetup (Tuesday, March 27th)

On Tuesday, I’ll be leading the Tampa iOS Meetup group through another exercise building an augmented reality app with ARKit. This time, we’ll build a simple version of IKEA Place, the app that lets you see how furniture in the IKEA catalog would look in the room you’re in.

Tampa iOS Meetups are “code along with me” exercises. I’ll provide you with a starter project, and together, we’ll build a working app. Note that this meetup requires you to bring the following:

  • A Mac with the Xcode 9.3 beta installed (you can get it from
  • An ARKit-ready iPhone (iPhone 6S or later) or iPad (any iPad Pro, or the 2017 iPad) running the iOS 11.3 beta

Tampa iOS Meetup will take place this Tuesday, March 27th at the Sourcetoad office (2701 West Busch Blvd., suite 1018). We’ll provide omnivore and vegetarian pizza and drinks. If you want more details or to register (it’s free), visit our meetup page!

Synapse Innovation Summit (Wednesday, March 28th – Thursday, March 29th

I’ll also be at the Synapse Innovation Summit, which takes over Amalie Arena this Wednesday and Thursday.

With 2,500 attendees catching the following over two days…

  • 56 breakout sessions
  • 200 speakers (including IBM’s Chief Innovation Officer, a colonel from SOCOM’s Transnational Threats Division, the CEOs of Hyperloop, Connectwise, Bionic Miracle, and Innovation Hub)
  • 60 showcases
  • 250 exhibitors

…it should be an interesting event.

RWDevCon (Thursday, April 5th – Saturday, April 7th)

Next week, I’m off to the D.C. area to do double speaking duty at RWDevCon,’s annual tutorial conference. RWDevCon 2018 is their 4th annual mostly-tutorials, high stuff-to-fluff ratio conference, and I’ll be there to do both a full-afternoon workshop and basic tutorial on building augmented reality apps for iOS with ARKit.