Tuesday, March 21, 2017

CloudKit! Oh, Wait... I Guess It's Time To Enroll In The Apple Developer Program

This blog was originally supposed to be about CloudKit and using Apple's cloud services for use in your apps, but after snagging Ray Wenderlich's starter project from his site and launching it in Xcode I was met with this:

O dam.  I guess it's about time to fork up some do$h for a Paid Developer Account with Apple.  The day has finally come.  But what do I actually get for my 99 US Dollars?  Why do even have to pay for this thing at all?  Well, let's dig in.  For those of you that are on the cusp of making the plunge along with me, I hope this article will be helpful on your journey.


The first perk of being a part of the Apple Developer Program is access to the Beta versions of all of their operating systems, including iOS, macOS, tvOS, and watchOS.  This ensures that as a developer you are always in the know about which features are going to be hitting consumers in the next software updates.  Apple also hosts beta releases of Xcode on their developer site, so you'll always have access to the most updated version of the powerful IDE for your Swifting.


There are a bunch of key Apple technologies that become to available to you after you enroll as well. Let's go over some of them.

  • CloudKit: Provides user authentication, database storage, and cloud assets to your program using Apple's iCloud service.  For free, it starts with 10GB Assets Storage, 100MB Database Storage, 2GB of Data Transfers, and allows 40 requests per second.  It even scales up as your user-base increases.
  • Game Center: Apple's social network for gaming.  Tracks high-scores, game invites, and online matchmaking.
  • Wallet: Integrate into your app to track gift cards, concert tickets, boarding passes, and more using PassKit.
  • Apple Pay: Simplifies the payment system of your app by allowing the user to utilize the cards they already have saved in their Apple Pay preferences and verifying their identity using Touch ID.
  • In-App Purchase: Using the StoreKit framework, you can offer premium content, virtual goods, and subscriptions to your user-base.
  • Maps: Gain access to Apple Maps integration, including custom annotations, highlighted regions, overlays, 3D views, and more.
  • Keychain Sharing: Allows the use of Apple Keychain to share user passwords between your apps.
  • App Groups: Lets you share containers between your apps and grants additional features for the apps to communicate with each other.
  • Data Protection: Encrypts the data you are storing locally on your users' devices for increased security.
  • HomeKit: Grants the ability to control Network-enabled devices with your app.  HomeKit compatible door locks, lightbulbs, thermostats, window shades, and more are already on the market.
  • HealthKit: Connects your app to Apple's Health app and lets you use the user data stored there to implement your own features.
  • Wireless Accessory Configuration: Enables your app to connect to and configure external Wi-Fi accessories.
  • Personal VPN: Create and manage custom VPN configurations.
  • Inter-App Audio: Export audio that can be used between other inter-app audio enabled apps.
  • Background Modes:  Define background functionality for your app while the user is doing other things.
  • Associated Domains: Associate your app with specific web domains to connect it to specific services.


Another key benefit of the Apple Developer Program are the features it provides you for testing your products.  You are permitted to add up to 100 devices to your developer account from each product family (iPhone, iPad, Apple TV, etc.) to directly install your applications on for testing purposes.  This is a great way to give test builds to friends, family, testers, to get some feedback on your app.

A much more robust testing platform is TestFlight.  Think of TestFlight as an official beta release of your app that you can invite up to 2,000 participants to try by simply adding their email to the invite list.  The really cool thing about TestFlight is that it's an officially managed platform by Apple, meaning that once you've submitted your app and it's been approved Apple takes care of all additional device management.  Apple includes all necessary user instructions to get started directly in the invite email.  If you have a new build ready to go out, just let Apple know and all testers will get a notification informing them to download the new build.  Pretty sweet!


Think of this like AppleCare for your apps.  As part of your membership in the Developer program, you are granted up to two sessions a year for code-level support by Apple Technical Support.  These sessions are designed to speed up your development process and get you to deployment as fast as possible.  Not a bad little perk!


At the end of the day it's all about that do$h, innit?  The single most important thing about the Apple Developer Program is that it lets you host your products on The App Store, accessible from the millions and millions of Macs, iPhones, iPods, Apple TVs, and Apple Watches out there in the wild.  It's important to know that Apple takes a 30% cut of all profits you make from your apps (hey, it could be worse), so prepare for a good chunk of change to be scraped off the top of each check that swings your way.

Specifically for macOS, Apple lets you circumvent the store by providing you with a Developer ID that you can use to register your apps with Apple.  This let's macOS users open your apps after downloading them without having to worry about any security warning or privacy concerns that Apple has built into the OS.  If you are interested in developing extensions for Safari, enrollment in the program also allows you to host your extensions in the Safari Extensions Browsers.


This whole article probably comes across as an ad for Apple's Developer services, but guess what?  If you have any hope of seeing your app running on someone's phone other than yours or a close friend's, you've got no choice but to pay up!  Seems aggressive, but that's the way Apple does business and will almost certainly continue to doing business.  At least Apple recognizes the need to continually attract new developers, so has added value to the program by offering the services listed here.  So from my perspective $99 a year is not all that unreasonable.  

Or maybe I've just been drinking the Apple Juice for way too long!

No comments:

Post a Comment