As we peer at the detail of the latest World Cup stats from Google, for those not so keen on the beautiful game, it’s time to think about all of the many thousands of stewards running around behind the scenes keeping things together. Who does this for your app project? It’s time to peer into part six of our top ten tips for creating a mobile startup. Following up from our guide last time on how to find the perfect app developer / designer, we are now start to explore who is powering your app, who is behind it.
“Behind every great man, is a woman rolling her eyes…” Jim Carry, quote from ‘Bruce Almighty’
As Facebook suffers it’s worst downtime of only fifteen minutes, it looks like the original face-stretching actor Jim C has also suffered the agony of trying to make sure his Backend as a Service (BaaS) keeps up with his frontend delivery. In essence every mobile app that is out there is a thin client to a much larger backend system, where data flows from app to database and back again over (hopefully) secured web services. A few years ago this would have required custom development as existing CMS tools could not provide the features developers required for apps. Now there are a range of cloud providers in the market, with the successful Parse snapped up by Facebook in 2013. What should you ask your provider?
The power of the cloud for your app
- Features, features, features – data storage is a given, are you going to provide me with any other features, such as push-notifications that are mobile specific?
- Your train is on platform 2, iOS only - do you have lovely SDKs or integration kits for every-mobile-OS-under-the-sun? Without Badu support, we are OVER!
- Price as transparent as water – can you see start for free and see the price levels clear as you scale up and down?
- Service updates and availability, better than air - what guarantees of uptime do you get for the service, has it been reliable in the past?
- Scorched earth policy, leaving and joining- is the sign-on process easy and how hard is it to get your data back out of the platform is you want to leave?
- The power of Yo, upscaling ability - what happens if your app experiences a surge in traffic up or down, is that a quick and easy process to upscale?
- Shop around for solutions - which are the best options out there to pick and choose from for your particular app?
Features, features, features
What features does your cloud-powered app need to have for your app to work? As you start to develop your app, whether in M.V.P. form, prototype or full blown app, you will soon want to store information in a database for users to get to later on. This may include:
- Users creating an account, profile, logging in
- Users storing data based on their app activity
- Users making purchases, via in-app systems or externa
- Geolocation for your app, with local lookups
- Push notifications for status updates
- File storage and access globally, including CDN and video
The cloud providers realised that there were different systems for each mobile eco system e.g. APNS for iOS and GCM for Android requiring developers to create two or more sets of code to support both. The solution? A cloud-platform based cross-platform solution to make integration easier. Before you choose your provider, list the key features you want to use now and what might be on your ‘wish list’ for later on to ensure they can support your plans for the first and any subsequent release you have there.
Your train is on platform2, iOS only
The advantage of using a cloud provider is that they support all of the platforms that you can think of. There are always going to be new surprises in the world of mobile apps, with programming langauges like Swift appearing, but in the most part the following platforms are still in use around the world currently so check your provider supports the following:
- iOS for iPhone and iPad (as well as the new iWatch! Oh, spoiler alert there)
- Android for all lovely smartphones and tablets from Samsung et al
- Kindle SDK for the Fire-y phones and tablets from Jeff
- Windows OS for all those shiny Microsoft Surface 3s shipping soon
- JS support or native cross-platform OS platforms
- WebOS for older Palm and other tablet devices
- OSx for those two people still making Mac desktop apps
Price as transparent as water
The process of gradually increasing your userbase over time can also apply to your backend web servers, applications and databases. The theory behind cloud computing is that it is flexible and delivered to suit the needs of the customer, be that using teraflops of data to search for life on Mars – http://setiathome.ssl.berkeley.edu/ – or to register and login a few thousand users on your app. What you want to be able to do is probably try a few services out for free to start off then ask for information about service pricing. This can be set on usage rather like traditional hosting or set based on number of users. If the former, expect the usual file storage, bandwidth in / out and speed capabilities to increase with cost levels. Check that the breakpoints can work with you expect your expected traffic to rise over time and that they rise gently so you can gradually increase your resources at a cost you can can afford. One final aspect to check is the cost of any support issues that you might want to raise. Most services will cover a few quick technical questions with some answers for free but if you have a more in-depth question or problem with the service, can you still submit that for free? Is there a paid version where you can pre-buy business level support?
Service updates and availability, better than air
We don’t often wonder about how services like Google’s Gmail are constantly available, we just decry them when they go down for around an hour on one day. Your app users will expect a similar level of service when they start using your app, irrespective of whether it is a free or paid app, so making sure your backend service is always available is important. Ask your provider how they make sure their service is redundant and check what Service Level Agreement (S.L.A.) is provided by them, their guarantee of uptime. They may also provide analytics of how the service has performed in the past, although as with other services, past performance is no indication of future performance. Maintenance is always required to keep any service up to date so make sure you have subscribed to the right email list to check the alerts that providers will be issuing before they carry this out. Most will provide enough notice for you to alert your users, if they even notice, as many of the maintenance windows will be designed to be as small as possible hopefully and won’t affect your service to any major degree.
Scorched earth policy, leaving and joining
After the big event, there is often a lot to clear up, unless you opt for a Burning Man style “take everything with you” policy. For future planning, it is always worth checking how easy it is to close your account and export all of your data. Do you have to give months of notice before leaving or can you just end at the month when you are all paid up? Are you able to extract all of your data in one fowl swoop in a download that you can then use easily in another platform, is the data machine readable at all? If not, is there a programmable way you can get at an export of your data via an API to save elsewhere? The other major issue is how to migrate your users over to the new service that you might be moving to, if this a bespoke backend service or even another hosted service. You may have to issue an app update to change the URLs you are using to point to your web services, if you aren’t able to simply update the DNS and map this over to your new service. In that case, it is worth sending out messages to your users well before time so that they are aware of the upgrade and also investigating whether to include code in your apps to automatically check for an update when they launch.
The power of Yo, upscaling ability
Recent apps that have launched and either flapped their way to the top, or yo-yo’ed their way up the charts, have seen interstellar growth in a very short period of time. Check that your provider is able to scale and what sort of timescale they would be looking at to do that. Can you resize your existing service to make it larger or do you have to migrate from the simple to the more advanced service? Do you have to factor in time for a server re-build or a DNS upgrade so that you service is unavailable for an amount of time? The advantage of using scalable services is that they can flex both up and down as well. There will always be upwards and downwards movements in your visitor numbers as promotions and other activity affect your traffic levels. You may be affected by the seasons or peaks in e-commerce about Christmas for example. Whatever the nature of your app, if you can reduce your service need at your downtimes, you will be able to save money over the course of a year. If you can predict when these up and downtimes may well occur, then some services also provide the ability to automatically scale up and down for you which is a definite bonus.
Shop around for solutions
There are a large number of providers of this sort of technology. Hopefully we have provided you with some of the main questions to ask each of them and review before taking the plunge with one of the solutions. Let’s run through the key ones to consider:
- Parse - the original service that started back in 2012 now owned by Facebook.
- Kinvey - a flexible service with some great developer resources on-board.
- Bassbox - a new entrant into the field, removing vendor lock-ins throughout.
- Kumulos - a service which focusses on strong customer support.
- Backendless - the instant backend service for mobile apps.
- Applicasa - a backend service targetted at gaming apps.
- Appcelerator - with over 600,000 developers in over 162 countries.
- Kony - enterprise level service with multi-channel cloud support.
- FeedHenry - backend services and app building tools provider.
- AppEngine - a flexible backend service from Google.
Let us know how your search for a mobile backend as a service provider goes and send us your comments below. Next time? Come with us and learn how to, “Tell your audience about your app” once you have developed it. If you have any questions or want us to cover a particular area in a future post, leave a comment below and we can follow up. Thanks y’all and see you next time! [Image credits via Unsplash ].
Want to create your own app?
If you have a mobile app project in mind and would like to get in touch about it, please fill in the form below, email us at firstname.lastname@example.org or ring on 01737242329 – we look forward to hearing from you soon!