ARKit: Opportunities And Challenges
Limitations and Potential
The introduction of easy to implement augmented reality through the ARKit API is one of most exciting additions to the iOS toolkit that I’ve seen in awhile. Ever since ARKit was announced at WWDC in June, it has been the subject of fierce debate and speculation. For detractors, at worst, ARKit is a gimmick. A gimmick that won’t pan out or stand the test of time. At best it is still not ready for prime time. From my perspective, after having worked with ARKit for the last few months, the technology is at interesting crossroads, where its future power and potential are self-evident, while at the same time its current challenges and limitations remain very real.
ARKit isn’t a gimmick because augmented reality isn’t a gimmick. As I’ve said before, PokemonGO proved that when it comes to setting, nothing beats our world. Augmented reality is a new medium, and ARKit is just first easy to use tool to promote mass adoption. Like anything new, there are still areas that remain undefined and unrefined, but these will get filled out as well as sanded down as the technology matures. Despite some very real limitations, ARKit has some really awesome applications for the world as it is now and these will only grow over time.
Battery - First issue ARKit needs to overcome is that it eats battery. ARKit doesn’t just eat your battery life. It feasts on it. Take the draining capacity of the camera and marry that with the graphics rendering engine of your choice (be it SpriteKit, SceneKit or Metal), sprinkle in some CoreLocation, MapKit or Vision framework, and you’ll drain your battery like a vampire. With rapid and wireless charging and larger battery capacity plus more efficient systems, this will be less of a problem over time, but for now, it’s something to think about.Plane Detection - While ARKit’s machine vision alchemy can detect horizontal planes currently, it cannot detect vertical ones. It seems likely that’s something that will be added in the future. For now, without implementing a homebrew solution, you’re stuck playing with the floor. At the same time, it’s easy to see why they left it out. ARKit has a decent amount of trouble detecting horizontal planes, particularly doing so in a timely fashion.Consistent Positioning - Even when using the default SceneKit spaceship app that Apple provides, you’ll occasionally notice that the ship will suddenly shift oddly from time to time without you moving. By and large, Apple has done an amazingly good job on calibrating the software and hardware together to create a great augmented reality platform, however occasionally the ARKit engine loses track of the object's position and it drifts.
The good news is these are all eminently solvable issues, and solvable in the very near term. Ever increasing battery capacity (and more energy efficient phones) as well as wireless charging already give us a glimpse of an era where we are untethered from our charging cords. With all of Apple’s technical skills and money pouring into building new homegrown GPU’s we’re likely to see serious upgrades in mobile processing power that will solve issues like plane detection and positioning. Ultimately, none of these issues are large enough of a handicap to keep developers from building projects right now. They are things to keep in mind, but definitely don’t let it deter you from building something cool!