App Development

Introducing LEDBorg Express by James Moore


One of the most common questions related to my Raspberry Pi projects is whether or not there is planned availability for Android devices. I'm now looking at doing this from now on for any Pi projects using a more flexible Python-driven web-application base. Starting off with the original LEDBorg app, I have now pushed a web version to the repo. This application lives on the Pi and can be accessed from any device on the same network. This includes any desktop or laptop, smartphone or tablet and as long as it has internet connectivity and a decent browser it will work.

In the coming weeks I'll be doing the same for BerryCam combining its functionality with the Timelapse Camera ensuring that it continues to develop as the various operating systems evolve and extending the app's reach to our friends using Android, Blackberry and Windows Mobile.

You can get the full build of LEDBorg Express on the Repo at

App Development - Creating a concept and developing ideas by James Moore

Early sketches of the UI for Geló

Over the next few weeks and months I'll be posting a number of articles about my own approach to app development. I'll also try to dish up a bit of insight into the App Store itself and what it's like to be a one-man dev band making apps. Most of it, while related to my app development stuff could actually be seen as part of a creative process that I go through, and not necessarily specific to apps themselves. First off, Fotosyn is not big. You'll have guessed that if we've spoken online, or simply by reading my opening line. It has one employee. Me.

There's no art department, no bank of developers or a marketing team. Again that's me. Any experiences posted here, as well as processes, usually done on a shoestring will be just that, my own personal account and nobody else's. Hopefully this will still maybe prove to be of interest to some of you.

The App Store itself is sort of built on this basis, a burgeoning network of indie app devs making software, not (really) for the money but for the enjoyment that comes with publishing software and getting it out there. From the outset, the making the money part is only a nice aside; and just as well because contrary to the popular belief that we app developers are all millionaires, it's definitely not the case. Well not in mine anyway.

Allowing the millions of iOS users worldwide to buy, download and use your app, and getting feedback and input into the app is what it's all about for many. We'll talk about that later but for now let's enjoy this idea of software publishing democracy in action.

At this time of writing (Feb 2013) I have published photo apps on the App Store. These include Geló, Bleach Bypass and I have just taken on the reigns of another app, Simply B&W.

Developing photo apps has it's own unique set of rewards built in that you maybe wouldn't get with creating a game. Seeing the creative results on Facebook and Flickr and 500px and Instagram from the users who choose to download or buy your apps. It really can't get better than that.

In saying that, a game, with a photography element to it. Now there's an idea...


Starting with an idea (and knowing your subject).

In recent years I've heard the saying 'I have a great idea for an app' on many occasions. Looking back maybe 10 to 15 years ago, a similar phrase, 'I have a great idea for a website' was coined. Today, apps are very current; seemingly a currency of progress to many in the digital/creative field. A place that you need to be in. It's very now. Very cutting edge.

And this is where we start. The idea. Many who have an idea, generally derive it from something they are in to. And they're usually pretty good, feasible ideas. An app for Photography. Wine. Running. Dogs. Finding collectible stationery. They've identified that they'd like an app for something they enjoy in their life, and that maybe yet there's nothing out there that quite addresses their specific needs to help them enjoy it more.

And herein lies probably one of the best parts of the process. That heady, early stage of realising you're onto something, maybe that hasn't been done before, or not in the way you have envisaged it. Simple and in a pure, unreworked un-mashed-up form.

It would be right in saying that many things start this way. A business deal. A creative concept for a design project. A short story, plans for an event. Maybe even this series of blog posts. Having this idea is one thing. Writing it down is altogether more useful.


Identify a niche.

Like anything, it makes good sense to have a unique selling point. What niche will your app occupy. Is it (another) camera replacement app, and if so what advantages or differences does it have over other apps. Is it a filter app, and again what style is it aimed at. If you have a good understanding of your subject or area, then this maybe isn't as difficult from first thought. being a developer of photo apps, I think in terms of what would I expect this app to have as default. Are all the sharing tools a must have? Maybe. Do I want full resolution? Definitely. Do I want to retain EXIF data, and maybe have geolocation support? Absolutely. It's important that you apply your own values into the app as a starting point. This is important before the shift in thinking moves from 'what do I want it to achieve' into 'what would other people want it to do' 

It's always better where possible to aim to include features you would value as useful features at this stage, and include them in the initial scope which I'll cover in a bit.


Write it down. Store your ideas. Keep whatever you find.

Take notes. Make a list of ideas. Make lists of ideas. No matter how trivial; those out-of-the-blue, three a.m. notes. Write them down. If you don't they'll be gone, and maybe later that's when you need them. Of course the way you take notes will be differ from person to person.

Personally I prefer to keep notes in a pocket-sized notebook, like the Moleskine. They're compact, pretty robust, have a handy pouch at the back and come in a variety of page types – blank, squared, ruled. I prefer squared as the gridded layout helps in sketching UI ideas. Of course, it's the quality and relevance of your notes so the best note is the one that's written down and kept. Moleskines are not de-rigeur for successful note-taking, other notebooks are available.

[one_third]Early sketches of the Bleach Bypass UI[/one_third]

[one_third]Schema and functionality for Geló[/one_third]

[one_third_last]Additional initial sketch for Geló[/one_third_last]

I almost always use a pencil to write notes. They generally always work, they don't bleed or smudge (too much), and you can save paper by rubbing out mistakes if you wish.

The limitation of course is that while you can scrapbook with these smaller books; it's not conducive to taking screengrabs or saving weblinks.To keep notes digitally I also make use of the excellent Evernote. Available for your desktop, notebook, tablet or mobile, you can easily store things you find, jot down notes when your paper notebook isn't handy, in simply when you feel that you prefer to make notes in a digital format.

I use Evernote to store links to images I like, image processing, film effects, pieces of design. There's no rhyme or reason which suits my sporadic style of taking notes. Of course you can index notes with tags and some might find that useful, but it's great to be able to grab something on the camera of my iPhone and it's on my Mac when I get home. I also use tools like Penultimate and Paper, both excellent note-taking and drawing apps on the iPad. In recent months, Penultimate has synced up with Evernote and you your notes or books can be transferred over. I use a Pogo stylus and more recently a Sensu brush to get things down in these apps quickly.


Building on the concept and developing your notes.

Making notes is one thing. Acting on them, (not compulsory for all your notes) is another thing. At the stage where I think I have an idea that I can develop further, I progress it to a simple paper based process of prototyping. These take the form of simple sketches, additional lists or diagrams.

I am a big believer any initial piece of development work needs to start on paper if it's at the point of origin. This is the case for either designing say a user interface (UI), some schemas for storing data in an app or mapping out the functionality within an app. Where you may have reusable elements such as design or code patterns and classes used in previous projects fine, keep them in mind and note them down.

When I see designers head straight for the Mac when working on a design project, it despairs me.  It's sometimes seen as a solutions machine. Sure it'll help you rapidly iterate a design concept, but it won't move you on unless you've thought through a lot of the ins and outs of the concept on paper. There's an element of investment when working on the computer. Work feels more tangible, more realised, which is a great thing in a later stage of design, but can leave the designer with too many options or 'precious' about certain thoughts. Same goes for writing code; a basic plan needs to be in place to develop elements of the functionality and how the UI will hang together.

Paper-based allows me to think, and not invest too much time. If an idea is flawed, it's found out relatively quickly, easily altered or shelved. Sometimes, notes from other design activities will merge into other projects - so it's not to say that any idea shelved is discarded and discounted. Finding previous ideas is as simple as flicking back through notes either in notebooks, or digitally.


Keeping the scope.

Remain clear on what you want to achieve with your app. Write these goals down, commit to them and try to keep within a scope for the development phase of the app. Be happy that your app isn't all things to all people; it never will be - trust me. There are apps out there that do other things but a key focus is to keep what you want the app to do, to remain defined. If you have this core set of requirements nailed before you begin prototyping and development, it will make these subsequent processes much easier to handle. Inevitably, there will be some changes either through proving something is unworkable in prototyping and testing, or maybe requiring further refinement. But this is a key part of the creative and development process. Mistakes can make you have that duh moment, or seem obvious in hindsight but mistakes and misjudgements should be embraced. This too is the point where you go back to sketching, drawing and taking notes to work through those tweaks.


Tools and Apps in this article

Moleskine pocket sized notebook with squared paper | Sensu brush | Pogo stylus | Evernote | Penultimate | Paper


Key points

- Find a niche. If you just try to replicate what others have done, without making it better you may face disappointment.

- Know the subject for your app. If you're creating an app for someone else, learn about it as much as you can.

- Aim to keep within a defined scope.

- Embrace mistakes in the initial creative and development stages. Learn from them and progress from them.

- Write everything down, no matter how trivial. Take notes on paper and/or digitally.

- Draw. Draw with pencil and paper. Use iPad sketching tools if you prefer.

- Don't try to be all things to all people. It'll never happen.

- Like any business pursuit, it greatly  helps if you enjoy your topic, and the challenge of developing apps.


Next up...

Prototyping from your ideas and notes.