As announced at WWDC 2015, changes to Xcode 7 mean you no longer need to sign up to the Apple Developer Program to test your apps on your device.
From the Xcode 7 Release Notes:
Now you can go beyond the simulator to test your app on an iPad, iPhone, or Apple Watch — for free. Simply enter your Apple ID into the Accounts preference pane, then attach a device to your Mac using a Lightning cable. You can use the same Apple ID you already use for iCloud, iTunes, or the App Store, or create a new one. Join the Apple Developer Program when you’re ready to distribute or submit your apps to the App Store.
The Apple announcement on 9th September 2015 announced the following release dates for Apple products:
- Thurs 10th Sep – iPad Mini 4 ships
- Sat 12th Sep – iPhone 6s preorders
- Weds 16th Sep – iOS 9 ships (Xcode 7 available in AppStore)
- Fri 25th Sep – iPhone 6s ships
- October – Apple TV
- November – iPad Pro
App and in-app pricing best practice is a moving target. Sensor Tower have a mini case study of the effect of price changes on five apps – Tiny Wings, Angry Birds, Goat Simulator, Heads Up and Sims 3. It shows the effect of price drops on the volume of downloads and in app purchases. AppDK has more guidance on how to manage your price change.
The importance of pricing is spawning services like The Loadown which can manage you app pricing based on competitors pricing, as discussed on this AppMasters podcast episode.
The 5th iOSDevUK took place in Aberystwyth last week. Many of the presentations are being made available. The best of the roundups are:
Million Dollar Products · by Kyle Neath hits all the right notes. I’ve pulled out my favourite bits. Enjoy. Re-read. Share. Build.
Formula for success:
- Pick a task that people already use software for (communicate, organize, write, etc).
- Build a better piece of software to accomplish the task.
- Iterate on it with customer feedback.
- Build up enough revenue to quit your job and work on it full time.
It feels like the hobby programmers of today are only interested in building Unicorns — a really stupid name for companies valued at a billion dollars or more. People don’t start hacking on projects anymore, they become CEOs and start looking for funding.
We stopped building products that allow people to do more. Now we build products that make people use more.
If you want to make a million dollars a year, you don’t need millions (or hundreds of millions) of customers. 12,000 paying customers at $7 per month can do it.
You don’t have to cross cultural boundaries to get 12,000 customers, which means you aren’t trying to force one design pattern for everyone in the world. You don’t have to worry about internationalization, localization, or learning how business is done in Japan.
On making money:
Software is an extremely high margin business. We have all kinds of financial freedom that other businesses never experience. Once you get to the point where you can make payroll, money starts to add up fast.
Source: Million Dollar Products · by Kyle Neath
Each project with a new team brings new tools and workflows. Tools I’ve been using this month. See previous listings for February 2015, April 2015.
- Fabric include Crashlytics Beta for deploying test builds and Twitter Digits for user onboarding.
- Parse – for user management and uploading video files
- Fastlane – for deployment of test builds and screenshot generation for App Store listing.
- Balsamic Mockups 3 – upgraded to the latest version (free upgrade from purchase years ago – thanks :-))
- Soulver – part calculator, part spreadsheet, indispensable.
- Unicorns – live stream your iPhone screen. Useful for demoing, testing and more.
Can you sell your app in 30 words? No? Bad news, because that’s all you get in the App Store.
These screenshots show the small amount of space available for your app description.
These screenshots also highlight the importance of the app name. This is the only key information shown on the main App Store listing. It is also given a lot of real estate on the app detail screen.
The most important aspect of these screens are the screenshots. These take up the majority of the screen. The first screenshot can be an app preview video. With limited opportunities to sell to a user, these 15-30 second app preview videos are a great option.
Another common option is to add header/footer text or captions to your screenshots. This allows you draw attention to the key benefits or features of your app.
In summary, the most important parts of your app store listing are:
- App Icon
- App Title
- App Description
- What’s New
I’ve created App Store templates for experimenting with icons, descriptions and screenshots. This allows you to consider how a user will interact with your app at the point of sale.
This should be a significant consideration as part of your design process.
Using this information
You can use these screens as a starting point for creating your app. Build your sales messages into your plan from the start.
- Can you easily describe your app?
- Can you show the benefits of the app in a screenshot?
- Will your users understand it?
- Will it sell?
Download these free resources as PDF’s and start planning your app.
The last 1% of pixels in an app, take 10% of the time.
Quickly changing a button to have rounded corners and a coloured border is still not completely possible in Interface Builder. The use of Runtime Attributes does make it easier though.
With Expanding User-Defined Runtime Attributes in Xcode with Objective-C, a few more uses have come to light.
The list of possible values is wider than I realised including Boolean, NSNumber, NSString, CGPoint, CGSize, CGRect, NSRange, and UIColor. And it’s the inclusion of UIColor that makes it really useful. As long as you’re happy using the color picker.
But not even UIColor can help with a button border color. For that you’ll need CGColor. Mike Woelmer has provided a CALayer+RuntimeAttribute category to help.
While this approach keeps the view controller code cleaner, there do seem be some inefficiencies in applying the same attributes to multiple controls.
As mentioned by Sam Dods in his Interface Builder tutorial, this approach may lead to future code maintenance issues if other developers don’t realise that runtime attributes can be set in this way. More reason to share this knowledge further.
This post has been written in the spirit of “Write about something you’ve learnt, when you’ve just learnt it.” – Ash Furrow, echoed by NatashaTheRobot.