iOS 9.3 and Apple Pencil

According to Myke Hurley, the Apple Pencil has lost functionality in the current iOS 9.3 beta:

Apple Pencil can no longer swipe between home screens, scroll through lists, and generally act as a replacement for my finger on iOS for anything other than tapping, drawing, writing, or text selection.

As Myke says, hopefully this is a bug. It’s the first release of the new beta; as a software developer, I know that things can be broken accidentally, especially in betas and especially with something as new as Pencil input.

But if it’s not, it makes the Pencil far less useful. In iOS 9.2, it’s an input device. In this beta, it becomes a drawing tool. And I really hope that it remains a general purpose input device, because iOS needs something that gives you a bit more accuracy than a finger.

Beta Testing For Teams

When you have a company of more than a handful of people, all working on your product, you have access to a ready-made, invested and very contactable set of beta testers.

Using a mobile app as an example, you obviously have the Android or iOS developers who have built it. But the original developers are not the best testers, as they’ll know of the app’s various foibles, will likely be more forgiving, and will have developed a certain way of using the app that lets them avoid or ignore annoying bugs.

As well as the app developers, you will have some of these people: web developers, server-side developers, animators, UI designers, UX designers, business analysts, product owners, project managers - the list goes on. The point is, when your company goes beyond being a small startup with just a couple of developers and business people, you suddenly have a wide variety of people around. They will all have a smartphone or a laptop to test your product on. And they’re all involved enough that they will want to see the app succeed, which makes them far more likely to test the app and report bugs than someone with just a passing interest.

Most of these employees should have access to an up-to-date, relatively stable (i.e. usable) beta version of the app. Very few (and certainly none of the dev team) should be using the publicly released versions[1], except around the time of its release. This way they can test the code that will be released soon, and use the app in the manner that a normal user would[2].

You need a good way for your beta testers to quickly raise bugs that they find in the app. This really applies to all testing, internal or external, but the advantage of using this ready team of internal testers is that you have more access to the same systems. So if you use something like Slack for team communication, you can have a bugs channel. Or if you use JIRA, Trello etc. to manage issues, you can make sure everyone has an easy way to raise those issues. You can even go for the simple, old-fashioned route and use email to raise bugs. And developers dealing with those bugs can easily contact the people who reported them to ask for some more detail.

It’s easier than ever to give people access to a beta build. Both iOS[3] and Android have beta distribution built into their stores now through TestFlight and the Google Play alpha and beta channels. You can manage internal and external test users, and directly promote tested builds to the main stores. And a host of other services (HockeyApp and Fabric for example) also provide beta distribution if you choose not to use TestFlight and Google Play.

Internal beta testing is really easy to set up, and the advantages are enormous.

If you want to talk more about this or have any feedback, you can find me on Twitter. I’m @neilmcguiggan.

  1. Product owners, or whoever is responsible for the app, probably should though, to keep on top of what’s actually released.

  2. Beyond simply catching bugs, another benefit (particularly if you use feature toggles to enable or disable features) is that you can make sure you don’t accidentally release something that you shouldn’t.

  3. Sort of. TestFlight is a different brand and a different app from the App Store, but you still upload builds through iTunes Connect, and you can still easily release a beta build to the App Store.


The short version: I’ve made an app called Framed that will decorate your Apple Watch screenshots. For reasons that I’ll explain below, it’s not available in the App Store, but for the developers among you, the source code is available on GitHub for iOS and for Mac.

The Idea

I spent a few months working on Framed, off and on (mostly off - it’s not a particularly complex app). The basic concept was to have an app that would take a screenshot from an Apple Watch in its basic, boring form, and frame it (see what I did there?) in an image of an actual Apple Watch, to make it look more authentic.

Framed example use

Original screenshot on the left, Framed version on the right

Of course, I was skeptical that Apple would allow me to actually use an image of the Watch, as they’re very protective of their intellectual property, but I thought it was worth submitting to the App Store anyway. It’s a useful utility for developers who want marketing images, members of the media who want to decorate screenshots of apps they’re reviewing, and just general app fans who want to show off a screenshot from their Apple Watch on Twitter.

It was of course rejected. The App Store review team enforces the Guidelines for Using Apple Trademarks and Copyrights, one of which says that you’re not allowed to use Apple’s trademarked images in your own apps or websites.

Beta App Review

If you wish to use Apple’s TestFlight system for beta testing, you need to let the App Store review team have a look at your app first. Presumably this process is intended to cover situations such as this, where I was clearly in violation of one of the rules. They flagged this, and rejected my app. I then appealed after finding a story about a similar app a few years ago called AirFoil Speakers. It successfully appealed against being banned from the App Store for a similar offence, and Apple’s marketing chief, Phil Schiller, said at the time that they would apply some common sense rather than immediately banning any app that simply used images of Apple’s devices:

“We need to delineate something that might confuse the customer and be an inappropriate use of a trademark from something that’s just referring to a product for the sake of compatibility.”

I used that as the basis of my appeal. I believed (and still believe) that Framed wasn’t abusing any of Apple’s trademarks and wasn’t misleading customers.

My appeal was successful, and Framed was granted entry into TestFlight to allow me to beta test my app. I assumed this was the biggest hurdle I’d face; that this approval was essentially saying that the basic concept of my app was suitable for the App Store.

App Review, For Real This Time

So once I’d ironed out the bigger bugs found by friends and colleagues, I submitted Framed to the App Store. And was rejected more or less immediately[1], for the same reason that I was rejected from TestFlight. No problem, I thought. I won this battle before. I assumed that this reviewer was just being diligent, and couldn’t see, or hadn’t noticed, the history of Framed in the App Review process.

My appeal against the rejection was immediately rejected. You’re not allowed to use images of the Apple Watch in an app on Apple’s store. It’s their trademark; fair enough. Clearly the Beta App Review team had made a mistake. It’s what I’d expected in the first place. I already had a plan in place.

App Review, Round 2

The first version of Framed allowed you to select from five images of the Apple Watch: the two Sport colours, the regular stainless steel model and the two varieties of gold. So I took out the various colours and finishes of Apple Watch, made it a matte black colour and removed the buttons from the side of the image I was using. So it now looked something like an Apple Watch, but without anything that could uniquely identify it as such. Without anything trademarkable[2].

A de-Appled Apple Watch frame

As you can see from the image above, there is a close likeness, but it is also just a rounded rectangle, with some lighting and glass effects to make it look vaguely Apple Watch-like. I thought this might be pushing my luck, but it felt worth a shot anyway, considering there was nothing specific about that image that would say “Apple Watch” as opposed to “generic smart watch”.

And it was rejected. Okay, I thought, this was probably just too close to the boundary. So I tried again.

App Review, Round 3

I took out the gloss and the lighting effects, and made a very basic, black rounded rectangle.

Very basic frame for screenshots

There’s no way this could be so close to the Apple Watch design that it could be described as infringing on a trademark. Right? This is just a black rounded rectangle wrapped around a screenshot.

If you thought that would be approved, you’re clearly not grasping the pattern here.

Open Source

Essentially, App Review just doesn’t like the concept of Framed. And I think this highlights a big problem in the App Store moderation system. But I’ll get to that in more detail in another post.

I still believe that Framed is a useful app. So I’ve made the source code available to anyone who wants to use it, and I also built a very rudimentary version for OS X. There are also plenty of things that can be done to improve it (off the top of my head: iPad support, a Share or Action extension, or adding in other device frame options such as iPhone or iPad) so feel free to fork it and run with it yourself, or to submit Pull Requests.

Both versions of the app are available to download on GitHub:

Framed for iPhone

Framed for OS X

Framed Logo

  1. App Review has an almost-constant queue time of around 7(!) days before they get around to looking at your app.

  2. To the layman, of course. I’m obviously unqualified to decide what is actually trademarkable. I can’t think of a less interesting field to work in than intellectual property law.

"The realities of the App Store"

Steven Hackett on the iPad Pro:

While Adobe and Microsoft were demoed on stage, developers all over the world are looking at the realities of the App Store, weighing their options.

A lot of reviews, such as MacStories and Daring Fireball, have mentioned the iPad Pro being the future of computing. But is it, if people can’t make a business from selling professional-level apps?

Professional desktop apps are priced in two or three figures. The vast majority of apps in the App Store are currently free, or single digit dollars/pounds. Whether that’s a problem with the App Store itself, or whether businesses/developers could be charging more for professional apps, there’s no argument that there’s a big gap in app revenue between OS X and iOS apps.

"It’s time to take iOS seriously as a pro tool."

I read an article earlier today by Brad Colbow about Adobe’s approach to iOS apps, and this part really stood out:

It’s now 2015. It’s time to take iOS seriously as a pro tool and do what you do best. Don’t give us 30 apps that each do one thing. Give us one app that does 30 things. We don’t need you to be Instagram. We need you to be Adobe.

I’ve had a lot of thoughts about the iPad and iOS, and their possible position as the future of computing, swirling around my head for a few weeks, especially since the iPad “Pro” was announced. The above quote pretty accurately sums up one of the bigger points.

The iPad has been around for five years now. It’s been getting more and more powerful, and with the iPad Pro coming out, with its laptop-comparable performance and screen size, it’s time we had some truly powerful apps for it.

There are debates to be had around the viability of a business built on selling software on the App Store[1]. There are debates to be had around the editorial decisions that Apple takes with approving or rejecting apps from their store, and the impact that they have on developer creativity[2].

There’s no debate that the iPad is sorely missing eyecatching professional apps from companies that are currently content to make stripped-down versions of their “proper” desktop apps.

  1. But Adobe now makes all of its apps free with a subscription.

  2. But it’s hard to see how that’s a problem in the case of Adobe beefing up its existing apps, especially given the close relationship between Apple and Adobe.

Being Critical

“In many ways, the work of a critic is easy. We risk very little, yet enjoy a position over those who offer up their work and their selves to our judgment. We thrive on negative criticism, which is fun to write and to read. But the bitter truth we critics must face, is that in the grand scheme of things, the average piece of junk is probably more meaningful than our criticism designating it so. But there are times when a critic truly risks something, and that is in the discovery and defense of the new. The world is often unkind to new talent, new creations. The new needs friends.”

I recently watched Ratatouille, which is a movie about someone having an unexpected talent, but struggling to have that talent be accepted because of where he comes from. Or, on a simpler level, it’s about a rat that wants to be a chef.

That quote comes from the story’s food critic character, when he has cause for introspection near the end of the film. It’s widely quoted, and for good reason: the web makes it very easy to have our opinions heard. And as the quote says, it’s fun, for some reason, to both read and write negative criticism. People can write negative blog articles or fire off quick, critical tweets, and have them be received by the target of the criticism and also the wider world with incredible ease.

A big part of being a critic is passing practical judgement. There is also moral judgement, of whether something is right or wrong, or inappropriate, but often the most harmful negative criticism is that something “just won’t work” or “isn’t worth trying”. This is also the hardest criticism to justify, as you’re essentially saying that you can predict the future, and that’s where I feel this quote comes into its own.

Whenever something new appears, people always want to be the first to say why it will fail. Why it is unworthy of the attention that it is getting. Why the fact that it breaks existing traditions means that it will either crash and burn, or is somehow inappropriate. It’s rare to see that encouragement of a new idea of which Anton Ego speaks. For some reason, people are more comfortable with the idea of criticising something and being wrong when it succeeds, than supporting something and being wrong when it fails. Possibly because failure is more common, so it’s easier to be right.

That’s why, with so many people being so naturally inclined to say something will fail, “the new needs friends.” Of course it’s important to exercise critical judgement; to study something and understand what makes it weak. But it’s also important to understand what makes it strong, and to support it in evolving, in changing or removing its weak points in favour of its strengths. Whether as a stakeholder or as an interested outsider, there’s far more value to be had from positive, constructive criticism, and support of new ideas, than to be had from being right if and when something struggles.

Anton Ego

Apple Watch Glances

Glances have been a really disappointing part of the Apple Watch so far. Almost every app with an Apple Watch component has a Glance, but I only use 3: Settings, Battery and Now Playing; all default Glances. Developers really don’t seem to have an idea of what to do with them.

Great default glances
The Settings, Battery and Now Playing Glances.

It feels really obvious to me:

A Glance should show quick, concise, read-only information without the user opening the whole app, and without requiring interaction.

For example, a to do list app should show the top of your list. Todoist sort of does this, but wastes space. It should show a few items, but only a single item is there. A complication could do that, I want to see the state of my list.

Calendar and Todoist Glances
Clockwise from top-left: Calendar, Fantastical, Todoist

You could argue that you should be focused with your to do list, and that’s why only one item should appear, but you can’t make the same argument for your calendar. It should be quick and easy to glance at your day, so why do the native Calendar app and Fantastical only show the current appointment? I can already get that from the complication. I’d like a Glance to be a quick view into my calendar, and if I want to do anything in more detail, like editing events or reading details about them, then I’ll open the app. And I can do that really easily from the Glance just by tapping, it’s a perfect interaction.

As I think about the Apple Watch, I see three levels of interaction:

  • Watch Face Complication: raise your wrist to see a single, current unit of information.
  • Glance: Swipe up on the watch face to get a bit more information.
  • App: Tap on the Glance, or go to the app screen, to open the app. Then you can get more detail on what you were looking at, or full access to interact with the app.

I love my Apple Watch, and I use it a lot every day, but I feel like there is a lot still to be figured out.

How To Ask A Question

I asked only my second question on Stack Overflow[1] last week. Most of the problems I face in software development are fairly common and already have answers on the site, but occasionally I do find something more unusual. I’ve drafted a few questions in the last couple of years, but I normally end up deleting them, because the way I write questions often helps me to answer them.

I usually spend a long time writing a question, sometimes an hour or more. There are a few reasons for this:

  1. It’s important to make sure that your situation is clearly explained, so that the people answering your question know what the problem actually is. When you’re asking for help in an online forum, you’re asking people you don’t know. And they don’t know you or how you think, so if you write a short or vague question, there will either be lots of follow-up questions to clarify the situation, or you will get answers to the wrong question. Illustrating your question with things like source code, diagrams, screenshots, or anything else that is appropriate, also helps to make the situation clear. Sometimes a picture is worth a thousand words.
  2. A clearly explained, detailed question also helps prove that you’re not just posting because you can’t be bothered to think for yourself. If you show that you understand what the problem is, people will be more likely to engage than if you could have just done some basic research. If you can type your question into a search engine and get the answer that way, you’re just wasting everyone’s time, including your own.
  3. Listing everthing you’ve already tried means you won’t get redundant help from other people. If you’ve already tried something, but didn’t mention it in your question, someone else could suggest it to you, meaning that you’ve lost an opportunity to get a new suggestion from that person.
  4. Detailing your understanding of the problem, and your attempts at solving it, help you to think clearly about the situation. Sometimes just explaining things clearly can give you a new perspective. Most of the times I’ve deleted draft questions have been times when I’ve come up with the correct solution while writing the question[2].

That last part is the most important. Explaining what the problem is and what you’ve tried so far is great for clarifying your own understanding, and seeing the next steps to solving the problem. And once you’ve hit the limit of your own understanding, you’ve got a whole community out there to get ideas from.

  1. Stack Overflow, for those who don’t know, is a Q&A site for software developers. Stack Exchange, the parent company, hosts a huge number of Q&A sites, ranging from Amateur Radio to Woodworking.

  2. This is a similar phenomenon to Rubber Duck Debugging, where you keep a ducky or other toy on your desk to help you think about a problem. This comes with the added benefit of adding a little whimsy to your working environment.

Who Are You?

We are defined as people not by what we are obliged to do, but by what we choose to do.

Nobody is entitled to anything. There is no law of nature that says people ought to have anything. Not charity, not honesty, not respect. Not property, nor employment. Certainly not social security, a pension or free healthcare. We chose to make these a part of our society. Even legal obligations like our human rights were constructed from choices that we made. We didn’t start off with the society in which we live, we built it ourselves. And we can dismantle it ourselves.

Everything from dropping your spare change in a charity collection to donating a kidney to a complete stranger is a choice that defines who you are.

Choosing to give up your time to volunteer with the Samaritans, or to help pack food parcels, is a choice that defines who you are.

Choosing to freeze public sector pay, while accepting your own substantial pay rise[1], defines who you are. Choosing to fight against either aspect of that inequity, or to donate your pay increase to charity, defines who you are. Choosing to make cuts to welfare that provides help to the segment of society that needs it most, while also cutting taxes for the segment of society that doesn’t have to worry about where the next meal or the next rent payment comes from, defines who you are as a leader of society, and defines who you are as a member of society.

Who are you?

  1. According to the linked BBC News article, Downing Street has said the pay rise is “not appropriate”. But it’s still going ahead, and I struggle to believe that the Prime Minister doesn’t have a veto over this.

The Importance of Product Marketing

I should be clear about this up front. This post is a hypothesis[1]. I’m writing about how to create a business out of making software, but as of this moment I’ve never been actively involved in that business. While I’ve written software professionally for a few years, I’ve never had to rely on directly selling apps to the general public in exchange for money.

A huge number of successful[2] apps are free to download. Many have other ways of generating income, through in-app purchases such as locked features or power-ups. But more still are completely free, and don’t bring in any money at all for the developers of the software. Brent Simmons, a long time Mac and iOS developer, has said that in his opinion, the software industry can no longer support independent developers and small teams who just want to sell their own software. Those developers now make apps as hobbies, and have to earn money in other ways. And that’s an understandable position. The most popular apps are either free or incredibly low-priced. It’s hard to see how developers could earn a living at those prices. But in a market with hundreds of millions of mobile phones being sold each year, I don’t think that’s the whole story.

The Forty-Niners

There’s a gold rush mentality that’s lingering from the early days of the app store, when apps such as Angry Birds or Doodle Jump or Instapaper seemed to become popular through word of mouth, which led to success in the Top Selling charts and more exposure to app buyers, in a relatively small marketplace. They charged reasonable[3] amounts of money, and brought in a lot of it for the people who made them. As with the California gold rush in the 19th Century, people thought that just showing up with an app would almost be enough to get rich, that there were nuggets of gold just waiting to be collected.

But now, as then, we’ve quickly reached the point where the market is saturated, those easy nuggets have all been collected, and significant amounts of investment are required to achieve success. For most people, “investment” means funding from venture capitalists or large corporations like Google, and for those same people, “success” means millions of downloads and active users, and probably eventual sale to a big company for millions or billions of dollars. At which point, that big company will figure out how to actually make money from your free app.

While I agree that significant investment is required for success, I have different definitions that work better for small developers. If you invest time into product marketing, rather than focusing mainly on software development, I believe it should be possible to achieve success. Probably not success in the form of huge amounts of users, attention, fame or even money, but success in the form of making an independent living creating software. The gold rush is over, but there’s still a living to be made.

Market Research

Market research is the first part of product marketing. Before you start creating your product, you have to fully understand the market that you want to create software for. There are a few parts to that:

  • Who gets value from what you’re going to create?
  • How much value will they get from it?
  • How many of those people are there?
  • How much money do they have to spend?

You need to have a rough idea of the answers to those questions, because I believe that’s the basis for the price of your app. It doesn’t matter how complex the app was to make, how many hours you worked on it, how many difficult problems you solved, how much clever code you wrote, how many expensive servers you use to power the app or anything else. What matters is: how much time or how much difficult work does your app save for your customers? They have no idea how much work you put in, how many finicky details you sweated over or how much it costs you. And they shouldn’t. How much time do you spend researching component, factory and shipping costs when you decide if your laptop or car is worth the price? How much time do you really spend thinking about the complexity of editing books, newspapers or magazines, or the amount of hours that go into recording and producing music? An app that was difficult to make, but doesn’t do much for people, isn’t worth much. But a simple app that saves a lot of time and effort is worth a lot.

It’s also worth stating that what people value is not the same as what people need. For example, a beautiful appearance can add value for your customer (ask Apple, Mercedes, Louis Vuitton etc.), but it’s not strictly necessary for the app to function. Entertainment is another example. Nobody needs to spend money on games, but they often want to because they get value from that entertainment. This is especially evident in in-app purchases, where players find value in things like power-ups and extra lives, even if they don’t don’t initially see the value in spending money on the game in the first place.

As a developer, you can incorporate both value and necessity into your price. However, while you can charge for what people like, what people actually need is much easier to put a price on. So a highly polished, delightful UI can add value to your app that people would be willing to pay for, but you need to consider how much time you’re investing in developing that UI, and how many people will be willing to pay extra for that.


Here’s why advertising is important: it’s fine for you, the developer, to understand how much time and difficult work you are saving your customers, but that might not be obvious to them. Doing your research, and identifying and understanding your target market matters, because you now need to find ways to get your product in front of them and show them the benefits of using it. That could mean paid adverts on websites or podcasts, or in magazines or newspapers. But it could also be through an established community, for example getting involved in meetups or conferences, talking to people on social networks like Twitter or contacting journalists who you think would be interested in telling their audience about your app. If you’ve made something worth talking about, then word of mouth can be an effective marketing strategy, but you need to get those words coming out of the right mouths.

And when it comes to value, rather than necessity, it’s fine for you, the perfectionist, to know how much time, care and consideration went into creating your beautiful product, but you have to be able to tell that story as well. Just hoping people will spot the things that you painstaingly crafted is setting yourself up to fail. If you can’t show what went into making such a beautiful product, your potential customers could easily take it for granted, because they have no idea what’s involved in the process. They might think that it’s easy, or that you didn’t mean any of it. If you want people to value something, you should show that you value it too. That’s why, when Apple releases new hardware, they publish videos showing how it was carefully, thoughtfully, lovingly made, as well as the more expected marketing videos telling you how and why you should use it.

Since the gold rush era, the number of apps in app stores has soared, and the average price has plummeted. It’s no longer possible to get rich as a result of huge numbers of downloads of a paid app. I believe there is still money to be made from making apps, but it’s not easy, and it involves far more than just programming. But there are no Get Rich Quick schemes. It’s about the whole process of creating a product, from ideas and market research, to pricing strategies, to design and development, all the way through to promotion and advertising.

  1. Or perhaps a manifesto for Multicoloured.

  2. In this case, I’m defining success as a high number of downloads.

  3. Reasonable by today’s standards. Angry Birds was in fact cheap even then, at only $2. Instapaper started at $10, eventually dropping to $5, and is now free, with some premium features.

» Older