Main image of article Apple Details iPhone X App Development
[caption id="attachment_143507" align="aligncenter" width="3526"] iPhone X iPhone X[/caption] Hordes of developers tuned into Apple’s keynote this week. Apple not only unveiled the next-generation iPhone X, which it positioned as the "future" of smartphone design, but also new guidelines for developing apps for the device. Alongside those new guidelines, Apple released a ‘gold master’ of iOS 11 (the latest edition of the mobile OS is slated to release Sept. 19) and the final pre-release version of Xcode 9. Apple is currently accepting iOS 11 submissions to the App Store; some developers tell Dice their submissions are already seeing approval, too.

ARKit

A big, new feature of iOS 11 is ARKit, Apple's developer platform for augmented reality (AR). ARKit can leverage the iPhone X's depth-sensing front camera (which Apple calls TrueDepth); in addition to AR-enhanced game-play and maps, there are also Animoji, which take your own facial gestures and replicate them as emoji. (Both rear cameras for the iPhone X are stabilized, which will make for a better ARKit experience.)

Video Learning

If you prefer video as a learning tool, Apple added some new clips to its developer portal. These videos cover development for the Apple Watch 3, Apple TV 4K and iOS 11 with iPhone X. The video segments also quell some rumors about iPhone X development. First, landscape mode doesn’t naturally force in-app features around the hardware ‘notch’ at the top of the new iPhone. Instead, when an app is used in landscape, the sides (top and bottom in portrait) are blocked; apps are forced into a more narrow scope. This comes via an update to Apple’s safeAreaLayoutGuide.

'Safe Area'

In Xcode 9, a new toggle allows developers to adhere to the safe area automatically, which helps keep bottom-dwelling menus and scrubbers out of the way of the bottom bar, which Apple added as a visual reminder to users that they can swipe up to navigate through iOS 11. This change won’t be recursive; though it keeps things in the "safe" area, it won’t automatically scale other features accordingly. The menu may slide up, but it also may overlap other views in an app. Depending on the amount of whitespace used in an app, this could result in a good bit of tweaking. [caption id="attachment_143508" align="aligncenter" width="2924"] iPhone X Xcode 9 safeAreaLayoutGuide iPhone X Xcode 9 safeAreaLayoutGuide[/caption] Similarly, video in landscape can be double-tapped to reduce the picture size, eliminating the notch from view. This is all handled on a system level. For apps relying on gesture, Apple has a feature called edge protection. Normally, swiping up from the bottom will bring users back to the home screen. If an app uses a swipe-up gesture, going home requires a double-swipe. For users, it may feel like the OS didn't register a swipe. Apple notes that those developers using system frameworks such as UIKit and Auto Layout will have much less trouble making apps look great on iPhone X. Xcode 9 now has an iPhone X simulator. Developers are also being asked to embrace the full-screen experience, notch and all. Apple cautions against adding a black bar to the top and/or bottom of an app to make it look more iPhone 8-ish.

Face ID

Another feature that's creating some early developer consternation: Face ID. Apple completely ditched the Home button with the iPhone X, instead relying on facial recognition to unlock the device and qualify user-generated sessions such as Apple Pay. Like Touch ID, Face ID will be relatively off-limits to developers. They can use it for authentication purposes, but data remains on-device, locked away for security purposes. With regard to development, think of it as a successor to Touch ID, nothing more. Ultimately, iPhone X's full-screen-with-a-notch display is only meant for certain situations. Video, still images and games are good candidates for embracing the entire display. Other apps (like a to-do app that utilizes scrolling items) are better served by adhering to safe areas. As you may have assumed, this is currently applicable only to those apps that utilize Apple’s framework and tooling. Apps built with frameworks such as React will need to find their own workarounds, and we’d have to assume Apple will carefully monitor how those apps look and perform on iPhone X before being approved.