build apps for yourself, not for revenue (and you’ll make more money)

January 3, 2011

Follow me on Twitter, if you like. Or follow my latest project, TapType.


An iPhone App developer emailed me this week asking my opinion on a design for an app he was working on, it was a Twitter client. Considering the gross number of Twitter clients in the App Store, I couldn’t understand why this skilled developer was wasting his time creating yet another, and his response to the question surprised me: “Twitter clients are popular on mobile devices, they make more money apparently“.  Moving on, I then asked him for his Twitter username so I could send him my thoughts on the app easily, his response surprised me even more: “Oh, I don’t use Twitter,  I don’t want to know what my friends are doing 24 hours a day! Can you use email instead?”. I was shocked, I mean this developer was going to create a Twitter client for the app store, without ever using or even having an interest in the service, purely because he had heard the apps are popular. I composed a confused reply to his email, and was about to click send before I realized this problem isn’t just with this one developer, it is widespread throughout the industry. More and more startups and individual developers are creating products purely because they believe they will produce revenue, and that makes no sense to me. While, in my opinion, the reasons for not doing so are endless, I’ll outline the two main issues with that approach:

Motivation: For just about every developer, and probably every employee in any industry, a primary problem when working on any project is motivation. Developers talk about being ‘burnt out’ after a few solid weeks of coding, and lose motivation for what they’re doing. If you begin working on something without any motivation, your chances of seeing it all the way to the end are slim; and even if you do, the final product is, frankly, probably not going to be that great. Conversely, if you love what you’re working on, the result will be the opposite. I know developers who have worked 72 hours straight simply because they’ve thought of an idea, and are that excited about it they will work that hard, for that long to make it happen. Additionally, if you’re working at a startup which is building anything, whether it be an app, service or utility, the enthusiasm of any one developer is contagious amongst the whole team – which can be either positive, or if the developer has no interest in the project, very negative.


Quality: If you build an app for yourself, you know what features and functionality needs to be included. You know how the UI should look for the best usability. You know exactly where every pixel and every line of code should go. The developer I was talking to actually disliked the fundamental idea behind what he was creating, and many developers are the same. If you’re trying to create something that you will never use personally, it just won’t be right. Certain features or elements of the project will placed in wildly inappropriate positions for typical usage patterns, vital features will be left out or ignored, and if that is the case your chances of success are slim.


Building apps that you love will provide a much greater opportunity for success than those that don’t. If you love what you’re working on, putting time, effort and money into the project will be fun instead of a chore. Consequently, the final product will be of a much higher quality. Users can often sense if the developer is 100% behind the project, and that holds great influence over whether or not they purchase the product. If the users receive great support and assistance from an enthusiastic developer revenue will flow in. Create products for yourself, products that you love, and success is almost guaranteed.

Happy New Year!
Great! The latest version is improved! It is still slow, but it is workable, unlike the last version. It still needs tweaking to fix the sluggishness though (I’m on a dual core 3GHZ CPU with 4GB RAM, minimal CPU load).
-You won’t need a tablet PC to test the screen orientation behaviour, it works in all versions of Windows. This feature is vital. For instance in Windows 7, you can right click on the desktop, select ‘Screen Resolution’ and change the orientation there on any PC. In Windows XP, this is also possible, I just googled it (
-In regards to the keyboard size: The current implementation is fine. When you remove the window border, the vertical keyboard will be 768px high which is fine. This might need some tweaking when you figure out all of the taskbar docking stuff.
-The settings window needs some UI tweaks, but of course that isn’t really important at the moment.
-Ignore the ‘invisible tab control’ point.
-I’ll confirm the CAPS/Shift Behaviour (you were almost correct): The keyboard should have the shift key, not the caps key, visible on the keyboard initially (this isn’t the case now). Tapping the shift key once presses shift, when another key is pressed shift depresses. Double clicking the shift key activates CAPS. CAPS remains activated until the caps key is pressed again, at which point it returns to a shift key (but doesn’t press shift). If CAPS lock is activated and the user goes to the numbers keyboard, CAPS is deactivated and returns to shift key appearance.
-Due to the fact that the window border will be removed (as the keyboard ISN’T draggable) the settings and rotate keys should be moved to just above the backspace key (in the current empty black area).
-Don’t worry about the secondary keyboard slider, it will just make the keyboard too crowded I think.
-The window resize feature works well, but it should only resize the currently activated window, not all open windows.
-Can you send me all the image files you are using for the keyboard, after the white lines on either side bug is fixed. I’d like to start looking at how to update them to what the final keyboard will look like. How will I do that in-code? Is it a simple matter of replacing the image resource files?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: