Category: Business

App Store Confidential

Tom Sadowski was responsible for the App Store in Germany, Austria, and Switzerland from 2014 to 2019, and in his book “App Store Confidential” he provides a look behind the scenes. According to this Verge article, he’s had a falling-out with Apple, and Apple is trying to block publication of the book. The book is still available on Amazon, but only in German.

As the workings of the App Store are of crucial interest to developers, I read through it from a developer’s perspective and noted what I learned – interesting, but nothing that I think Apple should be blocking the book for. I grew up in the German-speaking part of Switzerland; for those who don’t know German, I’ve provided approximate Kindle locations below, so you can use e.g. Google Translate for more detail.

App Store Teams

For each country there are business managers and editors who are dealing with the customers as well as the developers in their region [loc 596]. The editors curate the App Store, and don’t just suggest apps, but also intend to shape the app culture.

The Discovery tab is refreshed at least twice weekly, presenting users with the most relevant, popular, and best monetizing apps [loc 609].

While the editors are working more in the background, the business managers talk with and advise developers in key accounts [loc 623]. The key accounts are based on top grossing (if you’re in the top 20, you can be sure you’re on Apple’s radar), strategic (accounts that have regional significance) [loc 638], and startups (where they’re looking at long-term monetizing potential) [loc 658].

Project Berghain

In 2016 he set up a program to help startups in Germany; in 2018 they launched Project Berghain [loc 941], where they evaluated over 300 apps, asked more questions of 20 apps, invited 10 apps to pitch-meetings in Berlin, and then decided on 5 apps that they were going to support [loc 954]. The apps were all based on subscriptions, had an innovative product, and a strong team.

Success Factors

Products, people, and passion: The **product** needs to be so good that it enriches the user’s life, and the user is willing to pay for it [loc 1034]. The **people** need to include a UI expert, a programmer, and a sales person [loc 1045], and need to have **passion** for their product.

Advertising comes last: the product needs to be convincing, otherwise marketing is not going to help [loc 1072].

For subscriptions to be successful, they need to enrich people’s lives, and convert users into paying customers [loc 1133].

How to Get Featured

Different factors help an app get featured [loc 1184]: quality, UI design, user experience, innovation, localization (the more languages, the better, as editors can then suggest the app worldwide), video and cool artwork.

To get in touch with App Store team, he suggests having somebody who is already in touch with the App Store team recommend you [loc 1240]. Keep emails short, add a short video that introduces the app, don’t mention money or other apps [loc 1256]. Possibly ask for a personal meeting. And if Apple contacts you, provide the asked for material quickly and without questions [loc 1261].

More

The book also includes anecdotes about Tim Cook visits, personal and app stories, and more on where he thinks the App Store is going. If you’re dealing with the App Store, you should find a way to read it, as you’ll come at it from a different perspective and notice details that were not important to me.

A Month with Mac Pro

I’ve now enjoyed my Mac Pro for over a month. Why did I decide on that computer, and how is it working out?

iMac

My late-2014 5K iMac was five years old: it still worked, but was increasingly limiting. The internal 500 GB SSD was too small, and even with the external 1 TB SSD I kept bumping into limits, wasting time cleaning out cruft. Ports were another issue: no USB-C ports, not enough ports in general, and I have yet to find a 100% reliable USB hub. The retina screen is still perfect, and my wife will likely get many more years out of this computer, but as a daily developer workhorse, it was getting long in the tooth.

I was sorely tempted to upgrade to an iMac Pro two years ago. However, while the current iMac Pro might be a great choice for many developers, for me it had a few drawbacks:

  • GPU not upgradable: I’d have to decide up front how much to invest in this rapidly evolving technology.
  • No way to drive the non-XDR 6K monitor that Apple is surely going to release any year now.
  • Ports not future proof: Thunderbolt 3 / USB-C will remain relevant for many years to come, but new standards will surely emerge in the next decade.

My apps

I’m a developer, not a video professional, so the case for a Mac Pro is not as clear-cut. My main work right now is on the all-new version of SmartGo, about 70k lines of Swift and growing. The shipping version of SmartGo for Windows is 166k lines of C++; SmartGo Kifu is a mix of C++, Objective-C, and Swift. So while there are other tasks that benefit from a multi-core CPU (e.g. running Go or Othello simulations overnight, or converting 140 Go books to ePub), speeding up Xcode builds is the main benefit.

Modern Go programs are based on neural nets, which benefit a lot from a powerful GPU. However, my current development focus is on user interface, not on stronger play, so with GPUs still improving rapidly, I want to delay investment in a powerful GPU until I really need it.

Specs

Basically, I maxed out SSD and CPU (within halfway reasonable budget constraints), and plan to upgrade memory and GPU as needed.

  • 3.2 GHz 16-core Xeon W, turbo boost to 4.4 GHz: Slightly slower than the 12-core, but turbo-boost speed is the same.
  • 48 GB RAM DDR4 ECC at 2933 MHz: I figured this would be plenty for a while, and so far memory has not been an issue.
  • 4 TB SSD: I don’t want to keep bumping against that limit.
  • Base GPU: More than powerful enough for what I need now.

In addition, the expandability of the Mac Pro may lead me to:

  • Add more ports: If I need more USB ports, or some other port comes along that is helpful, I can just add a card for that.
  • Add internal SSD: I currently have a 2 TB SSD hanging off the internal USB port (for nightly backups); when I need more, I can add a PCI card with extra SSD storage.
  • If/when Apple switches to ARM, it’s conceivable that Apple would create a card with an ARM processor for the Mac Pro.
  • The unknown: Having PCI Express card slots available keeps options open for the future.

I expect the Mac Pro to be reliable for many years, and if something goes wrong, it will be easier to repair than a computer crammed behind a large screen.

Monitor

I’m used to dual monitors: a 4K monitor next to the 5K iMac (a Dell P2415Q 24-inch 4K monitor, which is surprisingly good). I’d love a 6K monitor, but the 6K Pro XDR is not for me. The iMac is overdue for an SSD-only update and visual refresh, and at that point it would make a lot of sense to also release standalone screens in the same form factor. However, Apple’s timing is famously unpredictable, so I decided to go with the LG 5K for now to avoid being dependent on Apple’s plans. If they do release a 6K monitor for mere mortals, I’d be happy to replace the 4K by a 6K screen.

Performance

For developers, staying in the zone is crucial, and being able to reduce the build-run-debug cycle has really helped. Compared to my old iMac, build and run speed has improved by a factor of 2 to 3, and build times have become much more predictable. For my 70k lines of Swift, launching on an iOS device (connected by USB) after a small change takes 6-7 seconds, and a full build takes less than 30 seconds, more than good enough. I feel like I’ve gotten a lot more done this last month than in prior months.

Price

Yes, it was a very expensive machine, but I do expect to get at least 7 to 8 years out of it. (I got 7 good years out of my 2006 Mac Pro.) The 6% cash back when buying with the Apple Card before December 31 helped; also, if you’re in the market for a Mac Pro, make sure you talk to the business rep at your local Apple Store to see if you can get a discount.

Summary

A month in, the Mac Pro has been everything it was supposed to be: fast, reliable, silent, unflappable. It looks gorgeous, but I hardly even notice it – it just sits quietly below my desk helping me focus on my work.

Go Books as ePub

Go Books has been a solid success: 134 books by a dozen publishers and over 40 authors, containing over 70,000 diagrams and 8,000 problems, all about the game of Go. However, so far the books have been limited to the Apple ecosystem: iPad, iPhone, and Mac. I’ve gotten requests from many of you on Android and Windows, and I’m sorry I didn’t have a solution for you. For a while, I explored the possibility of creating separate apps for those platforms, but that turned out to be too hard and expensive to create and maintain.

I finally have some good news: I’ve been working on converting Go books to ePub, the standard for digital books, supported on all popular platforms. I’ve been able to bring the main dynamic elements from the Go Books app to ePub format: interactive replay of diagrams as well as interactive solving of problems. ePub reading apps differ in how well they support this; reading apps not supporting JavaScript will simply display diagrams as static images.

While ePub can’t offer all the features of the Go Books app, it has other advantages:

  • Platform-agnostic: You can move to different platforms without losing your investment in books.
  • Future-proof: ePubs will continue to work even if the Go Books app and gobooks.com were to wither away at some point. Future devices are very likely to support ePub.
  • User-friendly: You can choose ePub readers that already support your favorite features, instead of begging me to add those to the app.

That said, to implement interactive books, I’m using parts of ePub that not all readers support, and even those that do support JavaScript and SVG are often buggy. Please let the authors of these ePub reading apps know about any issues you run into.

The following are the apps that have been working best for me; please let me know about other apps that can handle these ePubs.

Here are three Go book samples converted to ePub:

Epub covers

Questions? Some answers below; let me know what else you’re wondering about.

Will all books be available as ePub?

My goal is to get all the publishers onboard. Most books for sure; can’t promise every book at this point.

How will this work?

You’ll buy the book directly on the gobooks.com website (as you can already do now), and in addition to reading the book in the Go Books app, you’ll have the option of downloading an ePub file of the book. You can then read that in your ePub reader of choice.

Will the ePubs include DRM?

No, the ePubs won’t be encumbered by DRM (Digital Rights Management). DRM would reduce your choice of ePub reader and add unnecessary complications. We trust you to respect that the ePub file is for your personal use only.

What about books I’ve already bought?

You’ll be able to download ePub files for the books you’ve previously bought (assuming you’ve associated them with your email), so you can enjoy those books again on a different device.

Will the Go Books app go away?

No, the Go Books app will still be able to deliver better layout, better features, and better integration than an ePub. The Go Books app will still remain the best way to read about Go, and the iPad is still the device I’d recommend for anyone who wants to study Go — not just for Go Books, but also for SmartGo Kifu.

Will the ePubs be updated over time?

Yes, as I find ways to support new features or improve existing features, or simply fix typos, the ePub files will be updated. I plan to provide an email notification when your books get a significant update, so you can download the newest version. For example, inline diagrams won’t be supported in the initial version, but I hope to add that in the future.

What about multi-lingual books?

In the Go Books app, you can switch the language of a multi-lingual book on the fly. I have not found a good way to support that in ePub; instead, you’ll download a separate ePub for each language.

When will this be available?

It will be available when it’s ready. (Sorry, I’ve been burned too often by giving even vague dates.) There are still corner-cases to work out, server code to write, websites to update, and agreements to ink, so definitely not 2018.

Meanwhile, please try out the ePubs above with different reading apps on your devices, and provide feedback to me and to the app authors.

More Privacy

Tired of all those privacy updates? I bet you are.

I’ve made it as simple as I could: https://smartgo.com/privacy.html. I was already collecting very little personal data, but I’ve been able to trim it some more:

  • I’ve removed third-party analytics (Fabric/Crashlytics) from all my apps. I was close to doing that when Fabric was bought by Google; the upcoming GDPR (General Data Protection Regulation) gave me the final push. There’s no reason for Google to have any information about how you’re using my apps.
  • I’ve also removed Google Analytics from my websites. The small benefit of knowing the number of visitors and where they came from was not worth the hassle of having to tell you about this and getting your permission to collect that information. Again, it’s data about you that I don’t want to share with Google. Feels good to be tracker-free.

Zero trackers

I have two favors to ask you:

  • When Apple asks you to share anonymous usage data and crash reports with developers, please agree. Those crash reports really help developers improve their apps.
  • For the mailing lists, I will need your affirmative consent to continue to send you email. No consent, no more Go Books Newsletter for you. So please agree to update your settings when that mail comes.

I know very little about you and how you’re using my apps, and that’s perfect. But that also means that I rely on you to tell me when the apps are less than perfect. And of course, if you’re happy with the apps, please tell your friends. Thank you in advance – I’ll never know that they heard it from you.

SmartOthello Postmortem

SmartOthello is not dead yet, but the app has not lived up to expectations. It’s time for an assessment of this project: why I started it, obstacles along the way, and where to go from here.

Motivation

I needed a project to learn Swift and to experiment with different business models. I settled on Othello for several reasons:

  • Expertise: Expert knowledge of the game, and contacts in the Othello community. (I was the 1992 US Othello champion and have played at six Othello world championships.)
  • Similar domain: A two-player board game close enough to Go that much of the foundation code could carry over.
  • Potential customers: A more popular game than Go (think of all the people playing it as Reversi on Windows).

In addition, a trademark dispute had recently been resolved, with Megahouse of Japan making more efforts to license use of the name “Othello” and the trademarked board design.

Expectations

My three Go apps (SmartGo Kifu – $20, SmartGo Player – $3, and Go Books – free with IAP) were all doing reasonably well, with roughly similar profits. I had hoped SmartOthello might add a fourth leg to that stool, and thought I had several things going for me:

  • Experience: I had years of experience with Go apps in the App Store.
  • Marketing: I had a good marketing angle (former US Othello champion).
  • Design: All the existing Othello/Reversi apps in the App Store sucked. I knew I could create an app that gave players a better experience. (And some of those apps were ranked similar to my Go apps on the top grossing charts.)
  • Social: Game Center online play and leaderboards should help spread the app socially, something I didn’t have in my Go apps.

Obstacles

I made good progress on the app in the fall of 2015, learning Swift along the way. Not everthing went smoothly:

  • Licensing: I wanted to use the official name Othello, so I had to negotiate with Megahouse. We reached a deal on a reasonable licensing fee (10% after Apple’s cut), but I was not able to get them to agree to any business model other than a fixed paid-up-front price for the app.
  • iAd: Apple announcing the end of iAd didn’t help. So I was stuck with a paid up-front app for the first year; I figured I could re-negotiate after that (which I did, more below). However, not being free means the installed base becomes much smaller, thus Game Center play would not work as well (there may not always be a player available when you’re looking for a match).
  • Game Center: Implementing Game Center support was a mixed bag. Achievements and leaderboards were easy, but turn-based game play took a lot longer than expected, due to poor documentation, bugs, and APIs that are not fully baked. I could have implemented my own server in the time I spent getting Game Center play to work.

Release

Those obstacles slowed me down, but didn’t stop me. (Maybe they should have.) I finally got SmartOthello released on August 15, 2016, localized into Japanese, German, and French. In my unbiased opinion, I think design, game play, and usability are the best of any Othello app on the App Store.

Sales were underwhelming. Some possible contributing factors:

  • Press: I had created a press kit and reached out to press, but didn’t manage to get much coverage. August may not have been the best time to launch.
  • Go Players: I expected to be able to get some of my Go customers interested in Othello, but turns out there’s little crossover interest between the two games.
  • Othello players: My contacts in the Othello community were not as relevant as I thought, for several reasons:
    (1) The community of serious Othello players is very small.
    (2) There are some strong Othello analysis apps on Android, and thus most strong players are using Android, not iOS.
    (3) The core Othello community doesn’t really connect much with the general game-playing public, which is my audience.
  • Megahouse: I had expected Megahouse to help promote the app in Japan, a major Othello-playing country. Nothing.
  • Unlicensed apps: Lots of apps in the App Store continue to use the name Othello without being properly licensed. Megahouse has had little success getting those apps removed.

So the launch was not perfect. But it got worse.

iOS 10

  • At WWDC 2016, Apple announced that the Game Center app was going away, and that Game Center match-making was going through iMessage. This was ominous, but at least during the beta period, things worked reasonably well.
  • When iOS 10 was released in September, the avatar pictures disappeared. As the design of SmartOthello was heavily based around the avatars, I had to create my own bandaid for that.
  • Together with the cumbersome match-making using iMessage, I think the loss of the avatars was the death-knell for Game Center. (It‘s still technically alive, but without any improvements in iOS 11, it‘s not the technology to bet on.)
  • I had heard people complain about App Store search for years, but my Go apps always ranked reasonably well in search. With SmartOthello, search was a clear problem. Adding a space to change the app name to Smart Othello actually helped a bit, which is ridiculous. (The licensing restriction of not being able to include Reversi in the name also hurt.)
  • Since SmartOthello was a $2.99 app, I could at least benefit from Search Ads, but not enough for the app to get real traction.

Advertising and sale

  • In November 2016, I got the chance to advertise at the Othello World Championship in Japan. The resulting bump in sales? Minuscule. Again, it shows a disconnect between the serious player community and the general public I’m trying to reach.
  • I got permission from Megahouse to run a $0.99 sale over the holidays. More sales, slightly less profit. Back to $2.99.

Free with IAP and ads

  • By April 2017, I got the agreement with Megahouse renegotiated, allowing me to experiment with different business models and prices. So I tried free with ads and in-app purchase.
  • That experiment failed miserably. Sales went from low to near zero. While usage of the app went way up, I was not able to get the number of downloads that would be needed for the ads to generate significant revenue, and too few users upgraded to the Pro version. (My ads may have been too nice, and I may have included too much in the free version, but without more downloads, experimenting with those parameters would be futile.)
  • It’s possible this business model might have worked better when I first released the app and it got its initial attention; it’s much harder to generate interest with a new business model than with a new app.

Conclusions

  • Swift worked out really well. I’m very happy with the Swift foundation I got from the Othello project, and the conversion of my Go apps to Swift is continuing.
  • I’m glad I figured out issues with Game Center before trying to integrate that into my Go apps. At least that disaster was averted.
  • From an App Store perspective, Othello is more different from Go than I expected. The audience seems to consist more of casual players rather than people interested in a specific game, and as such they are probably less willing to spend money on the game. Thus my experience with Go was not as valuable; also, any conclusions based on this Othello experience might not transfer back to Go.

Future

I still love how the SmartOthello app turned out, and I will leave it in the App Store, giving it a chance to get noticed and grow over time. There’s much more I could do with it, but I can’t afford to invest more development effort into it at this point. Major changes (such as replacing Game Center, for instance) will have to wait until I get the Go apps converted to Swift and updated for iOS 11, get Go Books available on other platforms, and more: it will be a while.

SmartOthello will go back to paid shortly. Grab it for free while you can.