Monday, October 5, 2015

iOS and Mac developer demographics - Fall 2015

iOS and Mac developer survey - October 2015

Our iOS and Mac developer Slack group has grown! The group now has over 200 developers from the Utah area. We ran the survey again using polldaddy.com. 95 people responded. We added a few new questions around education that produced some very interesting results.

What type of development do you do? (allowed multiple selections)


iOS
94
98.9%
Mac
19
20.0%
Android
14
14.7%
Other
9
9.5%


What type of iOS apps do you develop? (allowed multiple selections)

Productivity/Business
70
73.7%
Utilities
37
38.9%
Education
34
35.8%
Social Networking
23
24.2%
Health or medical
20
21.1%
Entertainment
17
17.9%
Games
17
17.9%
Other
6
6.3%


How much do you use Swift?

All my new projects are in Swift
47
49%
Everything
20
21%
Some
18
19%
None yet
10
11%


My programming education includes: (allowed multiple selections)

Self taught
48
50.5%
A college degree in CS or CE
47
49.5%
A college degree (other)
25
26.3%
A code bootcamp like Dev Mountain
15
15.8%
Formal, online code classes
7
7.4%
Other
5
5.3%


How long have you been programming professionally? 



How long have you been programming iOS/Mac?



How do the apps you have developed recently make money? (allowed multiple selections)

They don’t need to directly (e.g. banking app)
48
50.5%
Paid app
37
38.9%
IAP
23
24.2%
VC funded, not worrying about that right now
18
18.9%
Subscriptions
17
17.9%
Ads
10
10.5%
Other
7
7.4%


How do you primarily make money from apps/mobile ecosystem?

I work full time for a company
49
51.6%
Publishing apps that I develop
37
38.9%
Contract app development
23
24.2%
Teaching others how to do it
18
18.9%
Other 
17
17.9%
Making tools for other developers
10
10.5%
I work part time for a company
7
7.4%


If you work full time for someone else, what is your annual salary?

- Average $106,000



If you work full time for someone else, what other benefits do you get?

Paid Vacation
67
93.1%
Health Insurance
67
93.1%
401k/retirement
44
61.1%
iDevices, as needed
39
54.2%
Stock options
35
48.6%
Pays for service plan for iPhone
14
19.4%
Other
9
12.5%
Profit Sharing
7
9.7%


Do you do contract app development? Or does the company you work for hire you out…

Sometimes, on the side
44
46.0%
No
42
44.0%
Yes, full time
9
9.0%


What is your (or your employer's) hourly rate for contract app development?

- Average $103/hr



Monday, April 6, 2015

iOS and Mac developer demographics

A slack group has assembled recently in the Utah area around iOS and Mac development. It's become a nice little group. But I'm curious how it differs from the developer community from 2009, when I first started getting into iOS development. So I put together two quick polls. One specifically covered salaries and benefits. The other poll covered everything else. I'll cover the bigger one first.

What type of Developer are you? (52 responses)

iOS
52
100%
Mac
10
19.2%
Android
4
7.7%

What type of iOS apps do you develop? (52 responses)

Productivity/Business
43
82.7%
Utilities
21
40.4%
Games
8
15.4%
Entertainment
8
15.4%
Health
2
3.8%
Social Networking
1
1.9%
Education
1
1.9%
IOT
1
1.9%
Music
1
1.9%

Are you using Swift yet? (51 responses)

Some
27
52.9%
Not Yet
14
27.5%
Only
10
19.6%
Never!
0
0.0%

I asked what people were using to develop apps. e.g. Xcode, App Code, Xamarin.
4% were using App Code. Everyone else used Xcode.

How do the apps you have developed recently make money? (52 responses)

App doesn't need to make money directly (e.g. banking app)
22
42.3%
Paid App
15
28.8%
Other
3
5.8%
IAP
7
13.5%
Ads
1
1.9%
VC Funded
1
1.9%
IAP+Ads
1
1.9%
Both Paid and IAP
2
3.8%

How do you primarily make money from apps? (52 responses)

I develop apps for a company
33
63.5%
I publish apps myself
9
17.3%
I do contract app development
7
13.5%
I work for Apple
2
3.8%
Teaching
1
1.9%

Do you do contract app development? (52 responses)

Sometimes, on the side
32
61.5%
No
15
28.8%
Yes, full time
5
9.6%

What is your (or your employer's) hourly rate for contract app development? (37 responses)

The average rate was $104. If I remove some of the outliers, the average is $112.


Salaries and benefits poll (35 responses):

This poll ran separately from the above.


The average over the whole dataset was $105,000. I tried to exclude some of the outliers ($85k to $130k) and the average was $112,000. But that is a pretty strong signal at $120k.

Benefits:

Health Insurance
31
91.2%
401k/Retirement
22
64.7%
Free iDevices, as needed
18
52.9%
Stock Options
19
55.9%
Profit Sharing
6
17.6%
Pays for service plan for iPhone
5
14.7%


Tuesday, July 29, 2014

Actually, Apple does allow free trials and paid upgrades (sort of)

Have you ever discovered something fantastic, but been to worried to share for fear that it will go away? That's me.

I've been reading a number of blog posts recently by different iOS developers. It's been fascinating reading really. I think it may have started most recently with Jared Sinclair's sharing of his revenue from his app Unread. http://blog.jaredsinclair.com/post/93118460565/a-candid-look-at-unreads-first-year The money he made from that app is pretty impressive, especially given the competition in the App Store for RSS readers.

David Barnard reposted a link to a blog entry from 2012. I had to share after reading it again. http://davidbarnard.com/post/58970916992/the-sparrow-opportunity

Let me tell you about my apps. I first released GW Mail in March of 2010. It's a boring business app. It's an email client that will let you connect to a GroupWise email system. Novell GroupWise is an email system like Exchange or Lotus Notes. Only a lot fewer people use GroupWise. But if you do use it at your work, my app is pretty helpful. Use it every day helpful.

When I first released my app I wondered if people would be willing to pay to solve a problem that Novell should be solving for them? The answer was yes. The first version of my app could barely do anything. You could read a few emails and that was it. No replying, switching folders or anything. But within a few weeks I had added those features, a separate calendar app and then eventually a contacts app too.

I updated GW Mail 68 times from Mar 2010 to Feb 2014 without requiring additional payment.

Sales were good. They were good enough that they paid my salary. And then also for another person to do support and testing. Then sales peaked in 2011. The gradual decline started. The support/testing employee is long gone. And now finally, the company is no longer able to cover payroll.

But since the announcement of iOS 7, I've been working on a paid upgrade. It had an all new interface. It merged the mail, calendar and contacts into one app. It fixed a number of annoying bugs. It had everything I had learned over the prior years. Background refresh notifications, ARC, NSURLSession and more. I rewrote most of the app to pull this off. It took forever. Perhaps I got a little carried away.

This would be a paid upgrade. It had to be or the company would not survive. But I didn’t want to have to do this again in a year or two. A subscription seemed like the best way to align my need for continued revenue and my users’ need for constant updates. Every year the new iOS release seemed to break a few things no matter how hard Apple worked at providing backward compatibility. It happens.

But technically Apple doesn’t allow subscriptions just for apps. Usually subscriptions were for things like Dropbox or Pandora. But we have started to see subscriptions for apps like MS Office. I added a subscription.

But how much should I give away with the app? I had a friend that had done a similar backend subscription sync subscription with most of the main app free. I think they gave away to much of the core functionality and lost most of their revenue. I didn’t want to repeat that mistake. I wondered if I could get away with putting everything in the subscription. So I did that.

Problem: businesses and schools buy my paid app all the time. (VPP) How would they buy my IAP? Not possible. So I built a subscription management server. It validates receipts in general for users. And it also give me a way to sell a volume license to a company. They pay me directly, I unlock the app for their users so they don't see a prompt to buy a subscription.

Free trials?

Free trials were pretty easy to do with my subscription management server. The server tracks people. The app lets users try the whole app out for free for a week. At the end of the week the app turns off and asks them to pay monthly or annually.

Honestly, I didn’t think Apple would approve this. But I submitted the app. They rejected the app. They said my app description had to have a reference to a terms and conditions page on my website. And I couldn't mention contacting me to for a site license from within the app or app store description. Um okay. That's it?

I fixed the problems and sent Apple an update. They approved it. I couldn’t believe it.

I did another update. They approved that.

I still couldn’t believe they let me do this app. The app was approved but still was not publicly released. I was fixing bugs, beta testing with a few people and getting the subscription logic just right.

I went to WWDC. While I was there I sat down with the App Store approval folks. I told them about my app. I asked, “why did you approve my app?” The answer, “because you connect to a backend server.” Okay then.

Here is a link to the new app: GW Mailbox https://itunes.apple.com/app/gw-mailbox/id724785934

Complainers

Like other people that released a paid upgrade for iOS 7 over the last year, I’ve had a few complainers. When I respond to these people I tell them the following: First, the new subscription is necessary to support continued development and upgrades. Second, if you are unsure if the new app is worth paying for, give the free trial a try. You can have access to all of the app for a whole week. If it isn’t worth it, so be it. Third, Apple doesn’t allow upgrade pricing. But I’ll give you three extra months of free trial with the app. I go onto my server and fix their account by hand so that their free trial doesn’t expire for a few months.

Most people that try out the app agree that it is worth paying for.

Marketing to existing customers

I put an upgrade prompt into the last update for my old app. The old app watches the App Store for a new app published by me. If it sees it, it prompts the user to check out the new app. The user is only prompted once. The popup only works if the new app was published in the last 30 days.

Did it work?

Is my company sustainable again?

Maybe not. I had hoped that a large part of my existing customer base would upgrade to the new app. I had a pretty good idea of how many people were still actively using my app.

Over the last month since I pulled the old app from the store and replaced it with the new one, sales have been pretty sad. It looks like about 5% of my customer base have upgraded. That isn't enough.

iOS 8 to the rescue?

It turns that iOS 8 breaks a few things in my old app. It is about to get pretty annoying to use. I also will not be able to adapt to the larger screen sizes that are coming. Maybe my users will want to get my new app then?

iOS 8 extensions are a great opportunity for my app to do new things. I’ll roll that into my app and see what happens.

If not, I need to find a new app to create or someone else to work for.

Pricing

Most people only bought my old email app for $9.99. I also had a calendar app for $4.99 and a contacts app for $4.99. The new app is $.99/month or $8.99 a year. Most people buying the app have gone for the annual option. Yes, that is a pretty serious drop in initial revenue per user.

A good idea for all developers?

No. Most people only use apps for a few days at most and never open them again. This sort of subscription that I am doing only works if the app is able to deliver continued value to users over time. Did I just kill my company? Maybe. But then, it was already dying.

Is the fact that it is really hard to build a sustainable business on the App Store Apple's fault? Nope. But the diversity, quality and depth of the App Store is a big asset for the iPhone. It is in Apple's interest to keep this asset.

tl;dr
I have an app on the App Store right now that has:
- a Free Trial
- a subscription to use 100% of the app, no payment, the app shuts off
- I can give users a few free months of use of the app based on their prior use of my old app; an “upgrade discount”

Apple allows this. I’ve updated my app multiple times.

Friday, May 10, 2013

The App Store is a Ponzi scheme

The best apps on the app store are apps that provide some type of utility. They are useful. They are helpful. These are the apps that you use on a regular basis. They are apps that help you take better pictures like Camera+, apps that help you track tasks like Appigo's Todo, and apps that let you create and modify office documents like Documents To Go. Apple even makes these type of apps like Pages, Numbers, and Keynote.

Actually there are two types of apps on the App Store (that try to make money as a paid app). The one that gets the most press is the gamed/entertainment category. If the developer is lucky, these typically make *a lot* of money all in a weekend or two. Their monetary model is a lot like the movie industry. The apps are bought in order for people to be entertained. After the first week or two, the app is old and few people will buy it.

Apple has told people to go buy these useful apps in order to make your devices more productive and valuable. How many years did Apple run the "there's an app for that" advertising campaign? And they are right. When I go buy Apple's Pages app, I no longer feel like I need to have Microsoft Office for my iPhone or iPad. I can download a document, modify it, and send it back out to a coworker. No Microsoft Office needed, Mr. Gates.

These useful apps are like a Ponzi scheme.

Let's say that you buy that app. You pay your $10, $5, $.99, or whatever. What do you expect to get for your purchase? You expect a quality app that does what the app description says. You expect that you will get updates to fix minor bugs. But what about new features? App developers add big, new features trying to get new people to buy their app.

And this is how the App Store is like a Ponzi scheme. If new customers stop buying the app, developers stop updating the app, and all the old customers stop getting the increased value from updates to their favoriate apps. Somebody has to pay for the developer's time. I would love to see some analysis that shows how many of the apps on the App Store have not been updated in the last six months, or the last year?

This has to be fixed. Apple wants developers to create great apps. That is what they tell the developers repeatedly at WWDC. Great apps sell more devices, which makes Apple happy. The problem is that developers make more money selling new apps and less money updating their current library of apps.

Why should an app developer invest a couple of weeks of their time adding a new feature? It will not bring in new customers. It has the potential to break something for the old customers, which increases support costs. Why bother?

Potential solutions

Trial periods for apps would be nice. Amy Worrall has been getting some visibility for her comments on free trial periods. While I think this would help increase the average selling price of apps, I don't think this would fix the Ponzi problem.

Advertising? You have to sell a lot of copies of an app in order to make enough money from advertising. While that might work for the top 10 in each app store category, it doesn't work for smaller niche apps.

Freemium? For the most part this just creates crappy apps. Who hasn't played a free game that quickly isn't fun because you have not paid for some In-App-Purchase power up? It usually sours me on the game faster than I develop a desire to buy the extras. These apps usually just feel like a scam instead of something well made and designed to help me solve a problem.

Subscriptions? For some things this works well. If there is a backend service that can really provide value, have the user pay for the service and the app comes for free. But not all apps make sense to have a service part to them. I get a lot of utility out of Apple's Pages app without adding a paid, backend service. How about an email client or web browser? If you forced a subscription on to that, it would break the value of the app.

I wonder if some sort of expiration date would work? Maybe you get free updates that are compatible with the current version of iOS for a year?

I'm still trying to think up a good solution. But I am pretty sure that nothing will work well without Apple's cooperation.

Monday, February 27, 2012

Apple TV

In Walter Isaacson's biography of Steve Jobs, Steve said 'I finally cracked it.’ http://www.businessinsider.com/apple-television-steve-jobs-2011-10 When we heard that, everyone wondered what the answer was. I think I have figured out part of it. Now that I've thought of it, it seems obvious to me that Apple is going to do this.

1. How is Apple going to make money from the Apple TV? They are going to partner with cable companies and take a piece of the cable company's pie, the monthly revenue from you.

Evidence: http://www.theglobeandmail.com/globe-investor/rogers-bce-vying-for-a-bite-of-apples-itv/article2328772/

Why on earth would Apple need a Cable TV partner? monthly revenue, bandwidth and content. First the money part. How does Apple make money off of the iPhone? It is only partly from the $200 they charge you for the device. The real money is in the $450 subsidy from the carrier and an ongoing piece of your monthly bill. That is what the partner is going to provide - a way to make the cost of the box to the end consumer really low.

Go out to Rogers.com and they will show you a box that they will give you for free called Nextbox made by Cisco that gives you an HD cable tuner and Tivo/DVR/PVR.

Go out to Dishnetwork.com and they will show you all kinds of technology that they will give you for cheap, if only you will sign up for a two year commitment to programming. That sounds a lot like the deal that the cell phone carriers are pushing, doesn't it?

All the cable providers are doing this now. Except their technology execution is mediocre. The only company that was able to deliver a box that you didn't mind using was Tivo. They failed because they didn't deliver content too. Apple will fix that. For the first companies that partner with Apple, this will be a fantastic way to get more subscribers relative to their competitors (example AT&T). Later it will be really bad for you if you don't have Apple as a partner (example T-mobile).

2. Delivery: Also from the same article, “They’re looking for a partner. They’re looking for someone with wireless and broadband capabilities.” I think Apple wants to not get in trouble with the people that own the "pipes" like NetFlix has. If you buddy up with them, deliver value to them so they think they are getting a piece of the pie, then they will not only be happy with you about how much of their pipes you are using, but they will be happy with you as you take their money. So part of this is that the delivery of the content can be over wireless or the high speed internet that the partner provides.

3. Content. Apple has seen the problems that Netflix and redbox have had with the content owners and they want none of it. The content owners seem to want to abuse the customers. Netflix and redbox are trying to fix this by going around the current providers of content: the cable TV and satellite operators. The content owners just abuse the crap out of Netflix and redbox for simply trying to make the customers happy.

Apple is going to fix this by partnering with the content providers. You will sign up for your cable service and get the content from the cable provider. But Apple will implement a level of redirection so that you don't have to use the classic "what's on TV" paradigm.

4. Packaging of the content.

My kids don't understand commercials very well. The younger ones yell when a commercial comes on because they think mom/dad has changed the channel on them. They also don't understand that a show "isn't on right now." Tivo has taught them that you can sit down any time you want and call up an episode of your favorite show.

What if you used iCloud as your storage? Take one part live TV streaming (the Oscars, the Superbowl, etc) and add an iCloud cache of everything broadcast on your cable provider in the last three months. Add a Quicktime playback interface, which shouldn't be confused with time shifting. This is just playing back content, just like playing a DVD. Importantly this works around Tivo's intellectual property. Add decent search, suggestions, etc. Use Siri for voice activated searching. Have you ever tried to type in the name of a show/search term using a TV remote? It sucks. Add some Apple interface magic, and you're golden.

Imagine asking Siri: watch the news from CNN, play Sesame Street, play the Super Bowl, watch House from two weeks ago, etc. Using the natural language processing, it just figures out the episode you want to watch, even though you didn't really describe it that well.

Because you are going to use iCloud for storage, there will be almost unlimited access to old content. You don't really need to worry about the size of the hard drive in the box that Apple is delivering. It just isn't important.

5. How Apple might screw this up: requiring everyone to buy a new TV to get the service.

I just replaced my TV this last fall. The last time I bought a TV before that was maybe 6 years ago. The reason I replaced my TV was not to do an upgrade, it was because the old TV died. I don't replace my TV every two years.

If they do this right they will release an upgraded Apple TV box that does most of everything that the flat panel Apple TV does too.


Would I dump DishNetwork, who I have used for over 12 years because I like their DVR, and sign up with Comcast to get this new product from Apple? Absolutely. Without hesitation.

Saturday, April 23, 2011

When was the last time you paid for something digital through a webpage?

I was reading some comments by an analyst talking about iPhones, iPads, the "Post-PC" era, etc. You can read it here if you are interested. One topic was talking about the idea of apps vs HTML5.

Anyway, I had a thought while reading the analyst's discussion. When was the last time I personally paid for something digital through a website?

There are lot of websites where I pay for physical goods. Amazon.com, eBay, etc.

NetFlix: that's a good one. You pay and get access to streaming movies.

World of Warcraft: another good example. I don't do play online, but a lot of people do.

How about paying for online access to news? Not many people do it. The dot com folks taught us that we didn't need to pay. Their "get marketshare first, make money later" model made sure of that.

Do you pay for your personal email service? Gmail, hotmail, ? Nope.

Pandora? Nope. What happened when they tried to get everyone to pay? We all left and found another service.

Hmm....

Here's the thing. As consumers, we pay for value. How do we decide what price to pay for that value? We do it relative to something else. We feel that our personal email has to be free because there are so many good options that are. We are usually willing to pay a bit more for a book that has more pages, or at least looks thicker.

Back to Pandora. They want to charge $36. It happens to be for a whole year's worth of listening, but that is a big mental jump in price. Why not charge $3/month? Give me the first month for $1 and get me hooked. If it is really that good, I'll buy right? Have you not heard of Cocaine marketing?

But I'm getting distracted.

Apps. Why do so many people pay a couple of dollars at a time for apps?
1. It is a different delivery mechanism. What do we compare it to? (remember price/value comparisons) Other apps. Yeah, yeah - you're smart enough to know that it isn't much different from a website. But because it packaged differently I'm not expecting it for free.
2. Yes, there are free apps with advertising. But often times I'm willing to pay just a bit more for quality and no nagging. They are cheap. If the apps were $30 (cheap boxed software at a store) then I would have to analyze, comparison shop, question if I need it, etc.
3. Visibility. I can find all this value easily at one location. The app store.
4. I don't give my credit card and person info to some random app developer that may or may not be trustworthy, I give it to Apple. I already trust them. I bought my phone from them. Android/Google is a bit more complicated, but similar. On a site note, note the difference in the trust model and that Android users don't pay for apps as much. Interesting!

A website trying to sell something usually isn't any of the above.

Will HTML webapps make a comeback and destroy the app store model? Nope.

Yes, it costs more money to develop apps for each app platform. Trust me, I know all about that. But I can make enough money to make up for that.

If I made my app as a webapp, would people pay me for the value? Nope.
1. They would expect it to be free. Remember your dot com training!
2. Without the high volume of purchases through an app store, I would have to charge more, which would keep potential sales away.
3. My value would have to compete with many other websites that are delivering other types of value. How many people do you know are in the internet marketing business? I know a lot.
4. Would you trust me with your credit card for a $5 purchase? Not unless I was a big enough company to have a reputable brand.

The HTML side of the argument seems to usually land on the idea that HTML, being a standard, will win because it is ubiquitous. They say that it is to expensive to develop nonstandard apps for each app store.

Other than maybe Apple talking about their app store, you don't hear anyone arguing back on the side of the apps. Maybe they are to busy writing apps? If apps don't make money for them, they will come back to other kinds of software development in a couple of years.

Wednesday, December 8, 2010

Moving from NSLog to better logging

I've wanted to improve the logging in my apps for quite a while. I've searched and found a number of websites that talk through different options. I found these to be quite helpful:
http://stackoverflow.com/questions/969130/nslog-tips-and-tricks
http://cocoaheads.byu.edu/wiki/different-nslog

But I didn't see a "finished" solution that was polished like I wanted it to be. Here is what I wanted:
- Easily turned off; don't run in a distribution build
- Short to use; NSLog short. I don't want anything longer
- Show the method name and line number

The solution I came up with looks pretty good. To use my logger, all I have to do is use a GPLog() statement, just like NSLog(). The cool thing about that it is that it made for an easy find and replace to use it through mode code. Statements like GPLog(@"%d", numberVar); will work just like NSLog does. The statement GPLog(@""); will produce something like this in the log.

2010-12-08 16:19:07.537 GW Mail[8016:207] -[AppDelegate_Phone application:didFinishLaunchingWithOptions:] (33) ::


I put the following in my .pch file so that it would be globally available.

#define kDevMode

#ifdef kDevMode
#define GPLog( s, ... ) { \
NSLog( @"%s (%d) :: %@ \t", __PRETTY_FUNCTION__, __LINE__,\
[NSString stringWithFormat:(s), ##__VA_ARGS__] ); \
}
#warning kDevMode ON!
#endif
#ifndef kDevMode
#define GPLog( s, ... ) { }
#endif

A few things to notice. To turn logging off, all you have to do is put an x or something in front of the #define kDevMode statement.

When the logger is turned on, it throws a warning. This helps you to remember to turn it off before you do your distribution builds.

It's pretty straight forward code. Hopefully this is helpful to someone!