Appendix B. Tips and Tools
The ios Developer Program, iOS SDK, and many third-party tools are often mainly used by designers and developers who are responsible for the creative and technical aspects of developing an app. However, a number of extremely useful resources and tools are available for people who don’t fall into those categories, yet are daring enough to understand them. The good news is that you can be slightly less daring because I’m going to highlight just the parts that are relevant to you.
iOS Developer Program
By being a registered Apple Developer and enrolling in the iOS Developer Program, you’ll get access to tools and information not available publicly. The iOS Developer Program itself is what will allow you to actually submit your app to Apple for review and will grant you access to a number of important areas, including the iOS Provisioning Portal and iTunes Connect, which are mentioned in the last four chapters of this book. The program will also enable you to get support through the private Apple Developer Forums and the Developer Support Center.
Registration and Enrollment
As I mentioned in the Preface, tackling iOS Developer Program enrollment when your app is almost completed or after your app is completed can delay your entrance into the App Store. So, you should begin registration and enrollment at the outset of this process. The first step is to register as an Apple Developer (http://developer.apple.com/programs/register/). This registration will create an Apple ID for you (if you don’t already have one), and collects only basic information. Completing this free registration will give you access to download the iOS SDK (discussed next) and documentation related to iOS.
Once you’ve completed the registration, activated your Apple ID, and logged in, you should navigate to the iOS Dev Center (http://developer.apple.com/iphone/). You will see some information in the righthand sidebar about joining the iOS Developer Program. Follow those links until you reach a page asking if you want to enroll as an Individual or Company. Choose the appropriate option. The second choice (Company) will have a more significant impact on how long your application process takes, as it will require additional supporting documentation as part of Apple’s identity verification process. Note that generally you should select Individual only if you will be releasing your app under your own name.
After you’ve completed the enrollment and submitted any required documentation, you’ll need to wait for Apple to process, verify, and approve you into the program. Upon receiving your approval into the program, return to the iOS Dev Center and you’ll be able to access four new options in the righthand sidebar: iOS Provisioning Portal, iTunes Connect, Apple Developer Forums, and the Developer Support Center. Right now, you’ll want to focus on iTunes Connect.
Paid Application Contract
iTunes Connect is more fully explored in Chapter 7, as it’s the place where you’ll submit your application. Currently, however, you’ll want to select the Contracts, Tax & Banking Information link on the home screen. If you plan to distribute only free applications, you are already done and will see that Free Applications has a green checkmark for Contract in Effect (see Figure B-1). If you want to offer paid applications, you’ll need to request a contract for that and agree to its terms before you can distribute paid applications.
You’ll then need to complete the Contact Info, Bank Info, and Tax Info sections for this contract. These aren’t the worst forms in the world to complete, although no forms are really ever fun. You may need to look up some information related to your bank for the Bank Info section, or consult with an accountant or tax professional regarding the Tax Info section. Try to complete all of this information promptly because it can take up to several weeks for Apple to process your contract once you’ve submitted all your information. The implication is that you won’t be able to distribute paid applications until the paid contract is in effect.
Pay attention to the three bullets at the bottom of the Manage Your Contracts screen. The first two are relevant for developers in Canada or Australia. The last one is for all developers distributing paid apps in Japan. Unless you complete the additional paperwork, your earnings will be subject to an additional 20% withholding, as deemed by the Japanese government. Although it’s more tedious compared to other forms, not completing this paperwork can have a significant impact on revenue you receive from Japanese sales. If you don’t know yet, Apple takes 30% of the revenue from the sale of all apps, meaning that you may only receive 50% of the revenue for apps you sell in Japan.
Both Apple and third parties offer a number of iPhone-specific and general software development tools, which can help you better guide and oversee the development of your app. Apple’s iOS SDK, which includes its iOS development tools, requires an Intel Mac, as do the other tools detailed in the following subsections.
The iOS SDK (software development kit) is generally used only by developers. It includes their development environment, Xcode, and a number of other tools to aid in the programming side of applications. There is one application, which is part of Xcode itself, that can also be extremely useful for you and make installing the SDK worthwhile: Organizer.
By registering as an Apple Developer, you will be able to access and download the iOS SDK from the iOS Dev Center. There’s really no risk for you to try out these tools, with the costs being the time it takes to download and install the 2 GB to 3 GB iOS SDK disk image file, which includes the SDK as well as Xcode. Of course, you can kick off the download and subsequently run the installation while you busy yourself with other tasks.
If you are officially enrolled in the iOS Developer Program, you’ll possibly have the option to download two different SDKs, the second of which is usually a private “beta” of what Apple has coming next. Stick with the publicly available SDK unless your app requires functionality available only in the beta version.
If you allow the SDK installation to use its default settings (recommended), a new top-level folder called Developer will be created on your Mac’s hard drive after installation is complete. The easiest way to access that folder is to select your hard drive under Devices in the Finder application. Inside the Developer folder, you’ll want to access Applications, which is the folder that contains the Xcode application. Open that application and you should be greeted with the first useful tool, called Organizer. If you don’t see it, it’s also available via the Windows menu item of Xcode. Organizer will let you take screenshots of anything open on a connected device and access diagnostics information such as crash logs (Figure B-2). Using these functions of Organizer is described in the Organizer section in Chapter 6.
Building onto a device
In the Screens and Prototypes section in Chapter 5, I first mention that when testing your in-progress app, developers should be building apps onto devices instead of relying on the iPhone Simulator. As part of the Development App section in Chapter 6, I discuss the process of installing your app through iTunes or the iPhone Configuration Utility after your developer sends you the latest version. But with Xcode installed, a few other tools, and some configuration help from your developer, you too can build your app directly onto your iPod touch, iPhone, or iPad.
The benefit of you being able to do this is that it allows you to always have access to the very latest version of the app. Once developers distribute an app, they usually continue to work on it. This means that even minutes after you install your app, a bug fix or other change may be available that you won’t be able to see until your developer provides you with another version. Not only is that inefficient for you, but it’s tedious for your developer. So, by spending some time to get this environment set up properly, you’ll also make your developer more productive.
For this situation to be possible, you’ll need access to your app’s source code. Because of what we covered in Chapter 5, you should already have access to your code’s repository (see Repositories and source code in Repositories and source code). Using the latest version you pull down from the repository, you’ll open it in Xcode and build the app straight onto your device. Thus, this method makes installing your app with iTunes or the iPhone Configuration Utility obsolete.
If you are already starting to feel overwhelmed, don’t feel bad if you need to depend heavily on your developer through this process. In fact, I’m purposely not going to provide all the required details because this setup can get fairly complicated and frustrating for someone with no experience.
It’s simple enough to pull down the source code and open it in Xcode. You’ll be looking for an Xcode Project File (see Figure B-3) in the folder of the source code, which ends with the extension .xcodeproj. Double-clicking that file will open Xcode.
On the other side, what’s not so simple is the configuration required to actually build the application onto your device. You are going to need to rely exclusively on your developer to help you with these steps. An overview of this process includes using Keychain Access and the iOS Provisioning Portal to request and install certificates, as well as ensuring that you have the proper provisioning profile installed. After these steps are completed and you’ve verified with your developer that the settings are correct, connect your device. Choose your device from the Overview drop down and set your configuration to Adhoc. If everything is done right, by clicking Build and Run (see Figure B-4) you should be moments away from Xcode installing your app onto your device. Work with your developer until that occurs.
If you feel beaten down by this process, remember that once you have everything set up the right way, your main task is just pulling down the most recent code from your repository. You then only need to click Build and Run in Xcode with your device attached. The ongoing benefits outweigh the complications of the initial setup.
One of my greatest frustrations in the development process, and particularly in testing apps, has been dealing with screenshots. Screenshots are incredibly helpful to show both creative and functional issues, and I almost always include them when logging bugs.
Screenshots aren’t that bad when done through Organizer. You can use the Capture tool under the Screenshots tab to grab a screenshot and then drag it to your computer. But your device may not be connected to Organizer when you need to grab a screenshot of your app. In fact, if you are testing your app in live, real-world conditions, you often should not be sitting in front of your computer. In this case, the screenshots you take on the device itself—by pressing the Home and Power buttons at the same time—are stored on the device’s Camera Roll.
In this case, my preference in transfering these screenshots has been to use two third-party tools. The first is Infinite Labs’ Mover+, which operates on the iPod touch, iPhone, iPad, and Mac (http://infinite-labs.net/mover/). When the devices are on the same WiFi network, opening the app on any of them allows you to “slide” photos from one device to another. Mover+ really is the quickest way to move stuff from one device to another, and more specifically, one-off screenshots from an iOS device to a Mac (see Figure B-5).
The second tool I frequently use is called PhoneView (http://www.ecamm.com/mac/phoneview/). After connecting your device and opening PhoneView, you can easily drag one or more photos to your computer (see Figure B-6). I find PhoneView to be the fastest way to get multiple photos (screenshots), which are already stored on my device, onto my machine. For one-off screenshots, I would be remiss if I didn’t mention Tapbots’ apps, Pastebot and Pastebot Sync (http://tapbots.com/software/pastebot/). You may also want to read the interview with Tapbots’ Paul Haddad and Mark Jardine at the end of Chapter 5.
To edit screenshots, especially when preparing them for submission in iTunes Connect, check out iPhone Screentaker (http://fabian-kreiser.com/public/iPhone-Screentaker.app.zip), Acorn (http://flyingmeat.com/acorn/), or Pixelmator (http://www.pixelmator.com/). iPhone Screentaker, in particular, provides a streamlined interface, where those without image editing experience can accomplish the key tasks required for manipulating iOS screenshots (see Figure B-7 and Figure B-8).
The best way to stay sharp and attuned to what’s happening in the App Store ecosystem is to continue to foster relationships with fellow developers, read blogs, and stay active on Twitter. Here is a list of some other places where you can continue to learn and look for help:
- Apple Developer Forums (https://devforums.apple.com/)
- iOS Reference Library (https://developer.apple.com/ios/library/navigation/index.html)
This is Apple’s documentation on the iOS, including the Human Interface Guidelines mentioned in Chapter 5.
- Answer sites (http://stackoverflow.com/; http://answers.oreilly.com/)
Stack Overflow and O’Reilly Answers are great places to find answers to commonly asked questions. Although Stack Overflow is programming-oriented, it can save you from having to email your developer.
- OnStartups (http://answers.onstartups.com/)
Consider Answers OnStartups to be the product-focused version of Stack Overflow. It’s not tuned into apps specifically, but you can get answers related to building startups (i.e., your app) and small businesses.
Of course, don’t forget to check out http://kenyarmosh.com/appsavvy, where I’ll continue to list new or updated resources and, more generally, help keep you app savvy!