Monthly Archives: February 2014

Prompt for push notifications

David Smith says to not bother the user with alerts on first launch:

“I have just sorted through the App Store and settled on trying out your app. I open it up and you immediately ask if you can send me Push Notifications? I have no context about what these are going to be used for or why they might be useful to me.”

I agree. For Sunlit, we only prompt to enable push notifications after you’ve chosen to enable sharing for a story. While it might be useful to have push notifications for everyone, by waiting until we really need it, most users are never bothered with the alert. And it forced us to focus on specific and valuable uses of notifications, such as sending a push notification when someone subscribes to your shared story.

Higher standard for Apple

Guy English writes about why Apple was questioned on the fingerprint sensor in the iPhone 5S but Samsung wasn’t for their new phone. I like this part about holding Apple to a higher standard:

“Apple is held to a higher standard of conduct. They’ve spent years, countless hours of hard work, and untold advertising dollars, to earn that expectation. They have it.”

Expecting the best from a company isn’t unfair; it’s a form of respect. We want Apple to be amazing, and when they fall a little short, we’re disappointed. If they disappoint too many times in a row, we’ll no longer expect greatness. That that hasn’t happened yet says everything about quality at Apple.

Getting good at making money

Justin Williams on the challenge of making Glassboard profitable:

“Making money is harder than it seems. Most people assume you put a product out and people instantly find and support it. The reality is that for most products, they first struggle to find an audience, and secondly struggle to find an audience that’s willing to pay.”

Justin’s blog post reminds me of something that Jason Fried of Basecamp wrote about. Getting good at making money is the same as getting good at anything: you have to practice.

Podcast appearances and slides

I forgot to mention a few weeks back that I was a guest on the iPhreaks Show podcast. The format is a panel of regulars and usually one guest, making it feel more like a roundtable discussion. They had me on to talk about subscription pricing: charging every month for your app or service.

Some of what we talked about was covered in 2 talks I gave last year about subscriptions, at NSConference and CocoaConf Dallas. I’ve finally pulled together the slides from these talks and put the latest version from CocoaConf here as a PDF (17 MB). It’s different than the NSConference one, but I think works better standalone. You can still purchase the videos from NSConference 2013 to get my talk and many other great ones.

This week I was also on the Release Notes podcast with Joe Cieplinski and Charles Perry. They do a great job each episode focusing on something from the business side of running an indie software company, and they’ve had some excellent guests as well. From the show notes for episode 41:

“We talk about creating products vs. services, changing products from free to paid, and the advantages and challenges of subscription pricing. Manton also shares his experience in creating apps like Sunlit that build on top of other services like Twitter and App.net, his recent foray into freemium pricing, and the launch of the new Core Intuition Jobs Board.”

If you enjoy Core Intuition, I think you’ll really like Release Notes. Let me know if you have any feedback on the show.

Core Intuition Jobs

This week we launched the Core Intuition Jobs site on episode 125 of the podcast. The idea was to create a job board focused only around Mac and iOS developers. The 24 jobs already listed there all talk about Objective-C, Cocoa, ARC, or Xcode, so you don’t need to weed through a giant list of thousands of irrelevant jobs. There are some really great companies in the list.

We’ve also added an RSS feed, so you can see when new jobs are posted, and we’ll be rolling out @coreintjobs on Twitter and App.net soon. Even if you’re not actively looking for a new position, subscribing to the feed or following @coreintjobs is a great way to see some of the amazing work being done in the Cocoa community.

Sunlit 1.1

Today we shipped version 1.1 of Sunlit, our app for collecting photos and text together to make and publish stories. Some of the bigger changes include:

  • Instagram and Flickr import. You can now add any of your own Instagram or Flickr photos into a story. With Flickr, you can even browse from your Flickr sets.

  • Improved Dropbox support. The first version of Sunlit assumed most of your photos on Dropbox were in the Camera Uploads or Photos folder. For 1.1, we’ve added a full Dropbox browser so you can pick any folder you want.

  • Multi-user text syncing. Now anyone subscribed to a story can add both photos and text descriptions, and the text will sync to all users. This is a really powerful feature for collaborating on stories. We think it puts Sunlit in a class above any other app like this.

  • Confirm deleted photos. What happens if you let other people add photos to your story, but they accidentally delete one of your photos? Sunlit now tracks this and shows a special confirmation alert so that you can either allow the photo to be deleted or keep it.

There are other fixes and improvements too, which you can see in the release notes. Here are a few screenshots of the new Dropbox and Flickr screens:

Sunlit v1.1

Sunlit is available in the App store as a free download. If you like it, pay just $4.99 to unlock the full app, and leave a review in the App Store to help others discover the app. Thanks!

Flappy Bird on steroids

On this week’s Core Intuition, we talked a lot about Flappy Bird (and also Threes, and a few other things). One of the points I tried to make is that some of the negativity pointed toward the developer was totally uncalled for. Marco Arment says it well in his post on this topic:

“Flappy Bird’s success was hilarious, but it also appears to be completely earned. I’ve read the posts suggesting he cheated at the ranks or reviews, but I haven’t seen any that supported those claims enough.”

As I read Marco’s full post, and re-listened to what Daniel and I said on the podcast, I do wonder if developer Dong Nguyen had been so overwhelmed by the success that the line blurred for him between the death threats and the joke “this ruined my life” app reviews. You’d have to have a pretty thick skin to not let it get to you, even if I hope that most users had a good sense of humor about the whole thing. It’s true that the game is crazy addicting, but unlike some games — the worst of which are driven by consumable in-app purchases, gimmickly rigged to get users to feed money into the game — Flappy Bird is addicting in kind of the best way, because it’s something we’re all playing and can laugh about together.

And Nguyen cares about more than just money. He’s demonstrated an empathy for customers that seems to be lacking in many corners of the App Store. Where some developers said he was leaving money on the table by not having more ads, and other developers were quick to rush in with rip-offs of his app, Ngugen wasn’t afraid to admit it was out of control and pull the app from the store. Do you think any of the other developers who renamed their app to include the word “flappy” would have pulled their app? Not a chance.

I hope Nguyen can bounce back from this and ship more games. With so much attention now, it’ll be fascinating to see what they look like. Or if he’s stashed away some of that $50k/day and wants to just chill out for a while, that’s fine too.

5 years until automation

For over 5 years and 122 episodes, every time we released a new episode of Core Intuition, I manually added the episode to the RSS feed using BBEdit. There was enough tedious XML copy-and-pasting that it was silly not to automate this process, but we kept putting it off. Finally last week, we switched over to an RSS feed generated by WordPress.

What surprised me is that until it was automated, I didn’t realize how much time I had been wasting editing and uploading the file manually. It was a small but very noticeable win last week when I could just upload the MP3 and click Publish, and that was it.

I’m not sure what the lesson is here. I never automate a task too soon, but 5 years was a long time. Maybe it’s just this: it’s never too late to get a better workflow.

37signals rebrands to Basecamp

I first blogged about 37signals a couple times back in 2002, and I’ve been a fan ever since. They had a huge influence on the way I approach design and the way I like to build products, not to mention a big impact on a whole new class of “software as a service” web apps.

The decision last week to go all-in on Basecamp left me puzzled. Daniel and I discussed this at length on Core Intuition. It’s one thing to focus all your efforts on a single product, but seems quite another to rename the whole company around it. I still feel that once you make that choice, your hands are tied from ever thinking big again, from ever wanting to grow beyond the scope of a single product. It’s like saying “our best product ideas are behind us”, and I know that’s not true for 37signals.

On the other hand, I’m sure 37signals understands their business better than I do. And maybe even big decisions are temporary anyway. I’m excited to see how it plays out in another year or two.

You can listen to Core Intuition episode 123 and let us know if we’re off base or not. Last week’s show also has more about choosing a product lineup, managing time, and thoughts on App.net’s Backer. Thanks to Smile’s PDFpen for sponsoring the podcast.

Requiring the latest OS

Brent Simmons has a pair of posts on dropping support for older OS releases and how the upgraded percentage goes up quickly:

“When making decisions like this, I don’t think about what conditions are were I to ship today — I think about what conditions will be like when I actually do ship, and I think about conditions six months out as we do support, testing, and maintenance releases.”

Good advice. And remember, very few developers actually ship on time. Even if you think your app is going to ship before the next major version of the OS does, your app will probably be late. More people will be able to run it than you first expected.

Ending the App Store top 200

I was chatting with some developers this week, complaining about this post on spamming the App Store and wondering if we’d ever have a better App Store, when I finally realized how we get there. The block for me had always been the top 200 lists. We all know that you can game them, buy your way in, and apps that make it in even on their own merits have a huge advantage over everything else, sometimes for months. But I couldn’t conceive of how you could actually get rid of them and if it would make the store better or worse.

The answer is in Beats Music. They have no overall top 200 list! Instead, they have a bunch of people — musicians and writers who deeply care about music — curating playlists. The top 25 playlists in a genre are so buried in the app that I had to search them out just to write this blog post, because they seem to carry no more weight than any other playlist. Much more common are playlists like “our top 20 of 2013”. That’s not a best-selling list; it’s based on real people’s favorites.

There are literally hundreds or maybe thousands of other playlists. Intro playlists for a band, related artists that were influential to a singer you like, playlists for a mood or activity, and more. This extra manual step makes it much easier for an algorithm to surface great music: just look for playlists that contain songs you already like, and chances are good that you’ll discover something new.

I wrote about Beats Music earlier, how it underscored to me that Apple needs to find the next product category to fall in love with, just like they used to feel about music. Of course we know that Apple already loves apps. Show that by doubling down on featured apps, staff picks, and app playlists.

How would this fix the junk problem in the App Store? Simple. No one in their right mind would ever feature one of these ad-filled, “re-skinned” cheap apps. Great recommendations mean less reliance on search, making scam apps more difficult to find by accident. (This focus is so complete in Beats Music, for the first couple days of using it I didn’t even realize you could search for a specific song or album.)

This idea isn’t new. Here’s Jared Sinclair on app playlists, with the twist that they’re based on apps you have installed and use:

“App playlists should be rigorously simple: just a list of apps. Not all the apps ever downloaded, but the apps that a given user currently has installed on their device. The assumption is that if somebody has an app on their device, they probably like it.”

That would be great. But seeing Beats Music ship with almost no traditional music charts at all — in an industry that has embraced the top 40 for decades — tells me that the Beats approach would also work for apps. I think you need both an “installed” playlist and many more fully curated playlists to actually replace the top 200 in the App Store.

Apple will need to ramp up their staff to do this, but if a new company like Beats can do it, surely a company as huge as Apple can also try. And they’ll have help from app fans everywhere. Writers are already doing this: see Federico Viticci’s must-have iPad apps of 2013 (could easily be an app playlist) or all the photo apps mentioned on The Sweet Setup (favorite photo apps playlist) or TechHive’s 5 apps for budgeting (my playlist would’ve added MoneyWell).

Apple shouldn’t wait until Thursday to feature a few great apps. Feature apps all the time. They’re on the right track with some of the “best of” sections in the store, and with the “Near Me” feature. Go a little further and it will make all the difference to bubble up great apps, and let the junk in the App Store fade away. For the first time I can imagine the store without a top 200 at all, and it looks amazing.

We love music

In my short post about why we chose Mapbox for Sunlit, I said I wanted to use it because the folks working at Mapbox clearly love maps. We are so used to mega-companies like Apple, Google, and Microsoft trying to provide every possible service, it’s nice sometimes to just buy directly from a specialist.

I think that’s why Beats Music is going to be successful. Music is all they’re doing, they’ve hired a staff of specialists — curators who are passionate about not just music but specific genres — and even their sister company makes music products: headphones and speakers. For more background on Beats Music, I recommend this write-up from MacStories and this (http://www.theverge.com/2014/1/21/5325766/interview-with-beats-music-ceo-ian-rogers-video).

Remember when Steve Jobs introduced the iPod? He said: “We love music. And it’s always good to do something you love.” As he continued to play some of his favorite songs, we believed him. The driving force behind the iPod and iTunes was to make it significantly easier to listen to music. They hit it out of the park and changed the music industry.

Today, Apple is either spread too thin or content to do the bare minimum only. iTunes Radio looks like something they felt they had to build, not something they wanted to build. Beats Music is in a completely different league, with a deep set of features and content. It looks like an app that’s had years to mature, not a 1.0.

I’d like to see Apple get back to doing fewer things and doing them well. That means no TV or smartwatch. They need more product categories like photography, which they excel at. The iPhone camera is the best, the built-in Photos and Camera apps are great, and there’s a rich layer of third-party apps to fill in additional features. Apple’s photos ad perfectly captures this.

Apple, fall in love with the next product category and lead us there. We’re ready for the next thing you love, not the next thing that Wall Street assumes everyone wants.

New CEO and Windows Azure

While writing about Microsoft’s new CEO, Brent Simmons makes the case for Azure as important competition for Amazon:

“My worry about the future is an Amazon monopoly on cloud services. Amazon’s services are fantastic, and they’ve changed how people make web apps. But they should not be the only game in town.”

I agree. When AWS goes down now, it seems like half the internet doesn’t work. Except for a few lingering DNS entries, I moved everything from Amazon to Linode last year in a cost-cutting attempt. But even better, I’d like to run some of my services across multiple cloud providers. That’s difficult to manage today as a one-man shop.

(Brent’s post is also worth reading just for the WOES acronym.)

13 years

If you’ve been reading my blog for a very long time, or listening to my podcast, you probably know that in addition to my business Riverfold Software, I also have a “regular” job at VitalSource. As that company has grown, I feel less comfortable blogging about my work there, since I can’t speak for the company or even the smaller group I directly work with.

But this month is my 13th anniversary (!) with VitalSource, so I thought it would be interesting to look back on the times I’ve blogged about my work there, and highlight some of things I’ve helped build.

One of the earlier posts, back in 2005, was about our new store, where I linked to blog posts from James Duncan Davidson, Mike Clark, and Ryan Irelan about the project. But nearly a decade of migrating between blog systems has taken its toll; my post is still there, but the other links are all 404 not found.

Then from 2007, I wrote about syncing highlights and notes in e-books:

“The architecture is based on the Simple Sharing Extensions (SSE) for RSS and OPML. On top of that we have added a VitalSource namespace and a few extra XML elements and attributes to keep track of Bookshelf-specific data, such as highlighter color and selected text within a book. The goal is to keep it as open as possible, so that in the future we can both consume other sources of user notes, and allow third-parties to also hook into the data in interesting ways.”

We recently updated the API to use a new, faster sync architecture, but the web app is still in use today. I’ve been updating it for Rails 4, a tedious process because of the Rails community’s fascination with deprecation.

Again in 2007, I mentioned updates to two of my favorite apps, MarsEdit 1.2 and NetNewsWire 3.0, along with VitalSource Bookshelf 4.6:

“At VitalSource we also just released Bookshelf 4.6 today, which lays the foundation for media-rich textbooks and adds a highlighter rating UI for any subscribed highlighters you have. This data will bubble up in a few places in the future to allow you to discover people and books, although for now it’s one-way.”

It’s neat looking back on this post because it includes a short screencast of the app from 2007, presumably running on Mac OS X 10.4 Tiger. The promise of this highlighter ratings feature never really materialized, though.

In 2010, I thought about the iPad right before its release:

“I’m working on 2 apps for the iPad. The first is just a minor iPad refresh of an existing iPhone app at VitalSource called Bookshelf Noteview (iTunes link). It’s for reading notes and highlights synced from our e-book platform.”

Noteview was eventually removed from sale. The other app I hinted at would become Tweet Library.

Around the same time, I blogged about Mac OS X as a server platform:

“At VitalSource we now have a dozen Xserves running Ruby on Rails and a couple others running MySQL. While it’s mostly stable now, over the years there have been several mystery show-stopper problems that no one seems to have on other platforms.”

Obviously Apple no longer sells the Xserve. At VitalSource all our best new servers run Linux.

Also in 2010, I reflected on how a team grows:

“If you’re working by yourself and add another person to the project, a funny thing happens: you become a manager. Before, you could spend 100% of your time on the work. Now you can allocate 50-75%, because you’re getting the new programmer up to speed, answering questions, and setting priorities. If you’re lucky (and I usually am), the person you added is contributing so much that it easily makes up for your loss in productivity, and then some.”

Later in 2010, I described how we shipped Bookshelf for iPhone:

“At its core the app is 3 parts: a large C++ codebase, brand new Objective-C UI code, and a bunch of clever WebKit and JavaScript work. In many ways it’s a more difficult project than my other iPad app (still in development), but some great coders contributed to different parts of the architecture, before and after I joined the project.”

There are other posts, but I think these hit some of the more interesting milestones in the last 13 years. I also have an archive of earlier, company-internal blog posts, starting in 2001, that I hope to look into and publish pieces from one day.