AR Bookmarks - Dev Notes #1 - v0.1

Published on

After playing around with building an iOS app in Swift, I thought it would be really nice to attempt to get an app into the App Store. My expertise is in the web, I have always believed heavily in “bet on the web” and use JavaScript day to day so Swift is fairly familiar to me. My "hello world" app was a HSL colour picker that I could make even more easily in JS, that got me thinking if I am to make something for iOS it should be able to do something that would be hard on the web.

I wanted to build something that makes more sense as an iOS app than a website, but that is also related to the web. So I decided to go the route of AR Bookmarks. ARKit has just hit version 2.0 with iOS12 so it is perfect timing for an experience that takes the cutting edge of iOS and complements the web.

However, I am very aware that whenever I start a side project I don’t finish it. It helps with this that there is a clear milestone of “get it approved and into the store” but to get to that point I knew I would need to focus on an MVP. So while on the plane home from India, I wrote a list of ideas of what the app could do. Some were more far fetched than others. Eventually I then took that list and focussed it down to something that seemed doable. I was also aware that this is pretty much the first iOS app I’ve made so there were bound to be hurdles.

Getting started

I began by taking Apple’s example project of AR space invaders where you add 2D space invaders around 0.2m away from where you’re looking. I chose 2D SpriteKit instead of 3D SceneKit purely to lower the barrier to entry and make it more likely for me to get to the MVP stage, I would like to look at 3D in the future. I started by changing the space invaders into link icons. So now there were loads of floating links, it kind of looked like what I was thinking of for the initial version.

My next task was to get those links to have a URL attached and open in Safari. I began by adding a text-field and a label with the intention of updating the label to show the URL being looked at and when clicked it would show the text-field if a link wasn’t already there. That idea didn’t work. Someone more experienced than me in Swift/iOS could probably do it in seconds but I couldn’t get it working.

So to get some kind of proof of concept working I decided to make it add a random URL, from a small array, whenever a new link is added. It also needed to be able to open in Safari. That worked quite nicely and I could see the idea start to become reality. On one side of the room I had a link to Google and on the other I had a link to Wikipedia. Not perfect but a good proof of concept so I versioned it v0.1.

Release notes - v0.1:

  • Ability to place a link in 3D space
  • Link is shown with the link emoji
  • Link is random out of a list of a few example sites
  • Pressing once in empty space will place link
  • Pressing on an existing link will open the link in web browse

Read more about AR Bookmarks.