There's a new update to Tweet Library out today. Major additions include CSV file export to Dropbox and new URL schemes for starting a search, export, or publish. The URL schemes look like this:
There are a few other important bug fixes too, especially to importing the Tweets.zip archive from Twitter.
When I gave up on Twitter as a user, many people asked if I would abandon Tweet Library. I wasn't sure at first, but the answer now is a clear "no". In fact, since my last personal tweet in 2012, I've released new features and even redesigned the app for iOS 7.
But I do need to start consolidating my work on Tweet Library and Watermark, because the apps share so many concepts around archiving and search. To that end, this week I'm retiring tweetlibrary.com as a way to browse and publish collections. The site will now redirect to a special landing page on Watermark. Published collections from Tweet Library also go to a public page on Watermark.
It was a tough decision to change the tweetlibrary.com URLs, but maintaining separate web apps that are so similar made everything more complicated, holding back what I could build. Having a single web codebase (Watermark) will ultimately let me improve both Tweet Library and Watermark more quickly.
You may have heard by now that Photos+ has a new home at SilverPine software. My friend Jonathan Hays — now co-founder of SilverPine — is of course also half of Sunlit, so it was a great fit for him to take on another photo app as well. He writes:
“In addition to consulting, we intend to slowly grow a portfolio of software. To that end, we are announcing today that we have purchased Photos+ from Second Gear Software. We have quite a bit of expertise with photo Apps (see Sunlit, among others) and when Justin Williams approached me about purchasing it from him, it felt like a great fit. We have big plans for Photos+ and have already put into motion the first phase of those plans: native Dropbox integration!”
I tested the Dropbox support during the 1.1 beta and think it’s a great direction to take the app. Dropbox the company is going all in on photos: just in the last week shipping Carousel and now acquiring Loom. The more people start using Dropbox to store all their photos, the more useful companion photo apps like Photos+ and Sunlit will be.
And now Justin Williams is free to focus all his time on Glassboard. While I’ve been building web services and subscription apps for a while now, the truth is I’m still figuring out how to do this as a business too. I’ve learned a lot from Justin’s recent blog posts on the subject.
It has been nearly a year since the first iOS 7 beta, and something about tint color still bugs me. In fact it bothered me enough at the time of the early betas that a filed a bug on it with Apple, something I very rarely do. The problem isn’t so much in the concept of tint color, which I like; having a consistent color for buttons and links, especially now that buttons are so understated, makes a lot of sense. The problem is the implementation in apps that use tint color anytime they want to highlight something, whether it is tappable or not.
Here’s an example in Apple’s calendar app. It uses a red tint color for buttons, but it also highlights the current day with a round circle using the tint color. It looks tappable, but it’s not.
And here’s an even worse example, from the App Store app. “Categories” in this screenshot is a button, but “Paid” directly underneath it — same blue, same font and style — is just highlighted to show that you are viewing paid apps. It’s actually “Top Grossing” that is the button.
These kind of usability mistakes turn the great potential of tint color into a disadvantage. It’s like underlined text on the web that can’t be clicked. Apps should use tint color to improve usability, not to become even more difficult to use than if everyone rolled their own button styles.
Here’s what Apple’s iOS 7 UI Transition Guide says:
“In iOS 7, tint color is a property of UIView. iOS 7 apps often use a tint to define a key color that indicates interactivity and selection state for UI elements throughout the app.”
But that’s not specific enough. The app screenshots above are following this rule, and it still looks wrong. Bold text or a gray background for highlights are much more effective to show selection state than tint color. I would completely avoid tint color for selection state except for controls that have 3 or more segments, such as a tab bar, and even then sparingly. Highlighting a 1- or 2-segment control with tint color is always going to be confusing, because the selected segment looks like it can be tapped.
With this in mind, fixing the App Store app is a simple change:
(You could make the “Top Grossing” button blue or not. I don’t think it’s necessary in this case.)
The best iOS 7 apps I’ve seen follow the spirit of Apple’s guidelines, but they know when to push beyond Apple’s built-in apps and when to pull back and do less. Tint color seems like an obvious case of where we should be more consistent and strict than Apple intended.
It’s SXSW this weekend, and while I’m again not attending this year, it’s a reminder that today is the 12th anniversary of starting this blog. I took some time today to fix the categories and tags on about a dozen older posts. One of those was fun to rediscover, linking to John Siracusa’s review of Mac OS X 10.2. Here’s the part from John that I quoted:
“And forget about any truly forward-looking features akin to Copland’s saved searches or BeOS’s metadata-powered custom views. Put simply, the Finder, once the crown jewel of the Mac user interface, no longer seems to be a priority at Apple.”
That was September 2002. It feels like it has really taken until 10.9 Mavericks (with tags and Finder tabs) for that to change.
This line in a blog post on Cartoon Brew made me laugh:
“It’s certainly possible to write a Looney Tunes script, just as it’s possible to eat a hamburger with your feet, but there are smarter, easier, and better ways to do it.”
Every industry that gets big probably has some of this. There’s the old school, the folks who know the right way to do things — for example, you start an animated film with sketches and storyboards, not words — and then there’s everyone who comes in afterwards, without the history and culture of what made it all work. Look at what the App Store has become, compared to how software development worked in the 1990s or early 2000s. If it wasn’t for all the money some of these new developers are making they’d be completely embarrassing themselves with technical naivety and depressing lack of vision.
On the other hand, great ideas often start with newcomers. But please respect the past before you break from it.
Stewart Butterfield, co-founder of Flickr and his latest company Tiny Speck, published an internal email from around the middle of development on their collaboration app Slack:
“There’s no point doing this to be small. We should go big, if only because there are a lot of people in the world who deserve Slack. Going big also means that it will have to be really, really good. But that’s convenient, since there’s also no point doing it if it is not really, really good.”
It’s long but there’s a lot of good stuff in it on marketing and building a product people need.
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.
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.
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.
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.
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.
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 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!
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.
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.
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.