Releasing mobile apps takes time. Lots of time. Getting the app
to work on the devices you are targetting is only the beginning.
Take for example the Limb Activator app that
I just released as a side project. It's a very simple app: if the
device doesn't sense movement for a specified period of time, it
buzzes or beeps. That's it. The prototype took less than 3
hours to create on iOS, on a train journey from London to
Glasgow. In the end it took just shy of 100 hours of my time to
complete, and that's not including some time from a designer friend
to do some image manipulation and icon design (which I paid for, of
So what did I spend the other 97 hours doing? Here's a list of
some of the things:
- The UI for the app. I used the excellent Grialkit Xamarin Forms UI kit
which basically gives you a set of layouts that you can use out of
the box. Just tweak the colours and away you go.
- Images. Lots and lots of images. Take an
image, and make hundreds of versions of it, to satisfy iOS,
Android, Google Play and the App Store. Oh, and don't forget the
- A responsive website. Go get yourself a cheap skin, then you
realise when you add extra text the layout is screwed.
Spend hours tweaking css. And don't forget to
include screenshots of the app on the site. I didn't create a
responsive website for the Bristol Stool Chart app, I
just updated the app images, screenshots, and logo for the old site
- and believe me, that was enough.
- Marketing. Set up a Twitter account. Create a Facebook page.
Find ways to get the word out. If you build it,
they will NOT come, at least not unless you
market it properly. I used the TweetLiker tool to find
twitter accounts to like and follow as a way of getting the word
out. It's a very nice tool, but I'm not sure how effective that
strategy is - yet. It is a definite improvement on having to Google
for relevant sites for the original Bristol Stool Scale app in 2011
that's for sure!
- Testing. This can take a lot of time. Thankfully you can use
simulators to test your layouts on different screen sizes, but
nothing beats testing on a real device (I haven't used Xamarin Test Cloud). Also the
technology moves very quickly, so if you get side-tracked (by paid
work, for example) when you come back to your project you may find
that there are software updates to be installed, and who knows what
effect they might have? Also, when using plugins you never know how
buggy they might be, or how quickly your pull requests will be
accepted into the project.
- The App Stores. Getting your app accepted can be
tricky, especially with Apple, and can be time-consuming.
In the past I've waited over a week for the Apple review process
for an app update to complete. Thankfully, that is more like a day
just now. Remember that just because you can build and run your app
in Release mode on your device, doesn't mean that your app will
satisfy all criteria for either of the app stores.
So I suppose what I'm saying here is, if you're going to build a
mobile app in your spare time or as a side project or even as a
business venture, make sure you believe in it.
Because when the exciting part (the working app) is over, you're
not even close to being finished yet.
But what about the technology?
My experience with Xamarin in the past was using the excellent
MVVMCross framework so getting to
use Xamarin.Forms was part of my motivation.
I wanted to see if it was any good. And it was great! I was
especially impressed with the number of plugins already available
to use with Xamarin.Forms:
I also used Grialkit, because my design skills
are non-existent. It really helped me a lot, reducing my design
costs substantially, and allowing me to quickly create good looking
UIs. Nothing will replace a top-notch designer,
but for my purposes Grialkit was excellent. Also, I can't praise
their support highly enough. The only thing to note here is that
you need to use their kit as a starting point, rather than
integrating it with your existing code - something to bear in
If you're going to build an app, be prepared for all of the
"other stuff" that needs to be done alongside getting your app to
work. Use Xamarin Forms, use Grialkit, use Tweetliker, they are all
great tools. Just don't forget to market your