Apple for Microsofties 2/2

In September 2015 is did a short presentation about Apple for developers in the Microsoft ecosystem. This is the second part of the presentation's transcription.

We'll split this up in three part: how to DESIGN, DEVELOP & DEPLOY apps.

How to Design for Apple



Design for each of these devices natively. If there's only one thing you're going to read in this article let it be this: Apple expects you to design the best possible user experience for each device. Yes, this means rebuilding your app several times. Deal with it.

Apple is big on real-life testing. So you'll need to get into the habit of asking questions like "Does it work while lying down?", "Does it work while I'm distracted & walking on the sidewalk?". High-quality apps in the Apple ecosystem are native & well-tested in real-world environments. For Apple, Design is how it works & the only way to guarantee a good experience is lots and lots of testing.

Build Prototypes. But ditch the wireframing nonsense. A prototype is a pixel-perfect rendition of the app that can be tested in real-world environments. Yes, wireframing tools are useful for brainstorming, but not for testing. Yes, this is more expensive. Deal with it.

Apps are platform-savvy: whenever possible use native controls & usage conventions. Porting over your Windows Phone or Android UI is the best way to build an app that sucks. Apple users are a picky lot. They WILL notice.

Design a native UI for each device, use native controls & become part of the Apple ecosystem by using native APIs such as Handoff, HealthKit, HomeKit, TouchID, etc ... Apple likes apps that make use of their native hardware.

Yes, your app WILL be rejected if the UI is not intuitive enough. So make sure your app is easy to navigate, always put the content front-and-center, use touch gestures & strive for simplicity and clarity in your apps.

How to Develop for Apple



There's a clear yearly dev cycle at Apple. It peaks in summer after WWDC. Apple tends to release new iPhones in fall & announces new APIs before summer so devs can prepare their apps for the new devices.

To get started, you'll need a pretty fast Mac (Xcode consumes tons of resources), a developer account ($99 / year), 2 generations worth of test devices (this year's current device & last year's model) & a big screen if you're going to do a lot of app layout.

 Do NOT enroll as a company unless you have to, it takes longer. Setup Tax & Banking info early if you plan to sell apps, this also takes longer. You can have one account for your app & have multiple devs share it.

Apple has an Enterprise program, but it's still weaker than traditional IT offerings by e.g. Microsoft. That being said Apple clearly has ambitions (deal with IBM) & BYOD has introduced iPhones & iPads in places where IT doesn't necessarily want them, but have not option other than to tolerate them.

There are 3 major places where you will be spending your time as an Apple developer:

  • Xcode. This is the de-facto IDE, no way around it. Tools like CocoaPods & xcbuild allow you to build integration flows from the command-line but you'll need to learn Xcode.
  • iTunes Connect. This is where you will upload your app for review & acces sales reports.
  • Dev Center. This is where you will find all API docs & where you will create provisioning profiles & certificates.

How to Deploy for Apple

There are 4 places where you can deploy your app: the Simulator, testdevices (Ad-Hoc), the AppStore & the Enterprise AppStore.

Here are some tips to make deployment to the AppStore easy:

  • Follow the human interface guidelines (HIG). This is the best way to avoid rejections.
  • Get a good Icon. This is what will make your app stand out in the sea of apps.
  • Read the Review Guidelines. Now read them again. 90% of all rejections can be prevented by clearly reading & following the guidelines.
  • Read the Marketing Guidelines. Apple does like to promote high-quality apps. If you think you have what it takes to become a featured app, 
  • Submit early & count on one rejection. This means you need to submit at least 2 weeks before your launch date.
  • Create high-quality AppStore videos & screenshots
  • DO use the "Reviewer Notes" field to explain what your app does & why you need certain permissions.
  • DO setup a simple website for your app, at a minimum you'll need a marketing & privacy page.

Concluding Tips:

The appstore is a winner-takes-all market. Development is only 20% of the work involved. With no active marketing you will NOT make a big splash in the AppStore. The place is just too crowded.

DO use new technology when it comes out. Apple loves to feature apps that use new technologies (e.g. Apple Watch) but your app quality needs to be very high. You'll need a perfect UI, use native device capabilities & contact Apple at least a month before your launch.