Unclouding the word “cloud”
Whether you are tech-savvy or not, clouds are most probably a part of your everyday life. Do you upload photos and videos to Google Photos? Had any family reunions on Zoom lately? Or maybe your company uses Slack for corporate messaging? All these examples have one thing in common: at least partly their functionality and data are stored online.
Think of Microsoft Office: remember how it was originally a one-time purchase, and users had to install a whole suite of desktop apps? Now there is also Microsoft 365, which you don’t need to download at all. Moreover, it’s subscription-based and can be renewed as needed — on a monthly or yearly basis.
The first one is what we would call a traditional app: you download the entire software package, so your device processes all data and logic. The second is a cloud application, where the remote server performs all those tasks. The data is also located there.
“The cloud” refers to those servers, databases they host and apps that run there. By the way, we already have an article on different kinds of clouds and the perks they bring. If you want more details: it’s worth having a look.
In a nutshell, clouds can be public or private. A public cloud is available to more than one customer. This is a sharing economy in action: businesses don’t need to arrange their own server rooms anymore and can share server space with others to minimize costs. Of course, if an app requires extra security measures, there are private clouds, where all the infrastructure is assigned to a single client. But that client would still rent it rather than invest in their own.
IaaS, PaaS and SaaS: what is that all about?
Infrastructure is not the only thing here that gets rented. Within the context of cloud application development, you are likely to come across the following three terms.
IaaS is basically an infrastructure rental. IaaS providers maintain the servers, network, and storage, while users are responsible for everything else. In addition to infrastructure, PaaS providers offer what is needed for cloud application development, including runtime environment, operating systems, and various tools to develop, test, and launch apps. And SaaS providers sell access to software that runs on cloud servers.
Many vendors today supply both IaaS and PaaS solutions, so it’s difficult to point out a “pure” example. For instance, we can consider Amazon Web Services to be one of the IaaS providers with their AWS Cloud. Although it’s true, the company also sells enough PaaS services, for example, AWS Elastic Beanstalk, AWS CodeDeploy, AWS Amplify. And even SaaS options — like a machine-learning platform SageMaker.
From the user’s point of view, the volume of services is the main difference. IaaS users only get the infrastructure, PaaS clients get infrastructure and tools for app development, and SaaS users get a fully operational application.
Unsurprisingly, the majority of cloud based apps are SaaS apps, so that’s what people usually associate with clouds. In this article, when we say “cloud based application” — we also mean SaaS rather than any other model. And, essentially, IaaS and PaaS are used to build those apps. What is so exceptional about them?
How cloud based apps steal all the thunder
Let’s have a closer look at cloud applications, using a familiar TV app as an example.
You most probably know this one, but still: Netflix is a streaming service with millions of subscribers worldwide. Like with many other cloud apps, its product is packaged as a classic SaaS, but the platform itself is developed with a combination of IaaS and PaaS. Netflix is one of the major AWS clients, and it uses their services for storage, video transcoding, and even its famous recommendation engine. They also have their own content distribution network called Open Connect, which is basically an example of IaaS.
Interestingly, even though SaaS apps originated as web apps, mobile cloud applications are becoming prevalent lately. It happens due to the way people prefer to access and consume information today. Certain things (like spreadsheets, for example) still work better on desktop, so it’s safe to say that SaaS providers won’t give up on it, and will likely continue to develop for at least those two platforms. But there can be more!
For instance, where Netflix is concerned, integration of platforms is nothing but a reality. It provides access to its content through the apps specifically designed for:
- Smart TV;
- gaming consoles;
- Blu-ray players.
That’s one of the reasons users love cloud based applications so much: they can offer this limitless and seamless user experience. Let’s have a look at the other characteristics.
|Cloud feature||Netflix example|
|1. Lower device requirements. Since application data is located in cloud infrastructure, there’s no need for the latest processor models.||There are some bottom-line device requirements for Netflix apps, but what matters most is Internet speed.|
|2. Rational spending. A popular subscription monetization model of these apps means the users don’t need to pay for software they do not use.||You can cancel your Netflix subscription if you got too busy to watch the shows or there are currently no titles that you like.|
|3. Online and offline synchronization. You can actually store data locally and an application will work offline. Once you are back online, the app will sync with the cloud.||Netflix also has offline viewing, but you have to download the show beforehand. Since all information is backed up in the cloud, you can then pick up where you left off on any device.|
Cloud based apps obviously deserve customers’ affection. This, among other things, makes cloud application development so appealing to startups.
What else is in there for a startup?
But apart from being in the mainstream and offering a convenient solution for your potential clients, what are other benefits of cloud application development?
|💰 Cost reduction||📈 Scalability||🌎 Larger potential market|
|Your initial investments will be lower since you don’t have to build any physical infrastructure. Most startups won’t need its whole capacity anyway, and with cloud services, you pay for what you actually use.||You can rent storage space and processing power in accordance with your app’s evolution or changing demand. Your app’s popularity is growing fast? Its capacity can be adjusted!||Cloud development ensures higher accessibility of the app due to lower device requirements and a pay-as-you-go approach.|
But it can’t be all rainbows and sunshine, right?
Nothing’s ever perfect, so you need to be aware of several potential risks and drawbacks:
- There’s a chance of a “customer lock-in” effect. Don’t pick a service provider randomly because it might be difficult to switch later on. Usually, it’s an expensive ordeal to move from one platform to the other.
- Some types of apps are not suitable for cloud development. For instance, the idea of cloud software for some government agencies might be simply ruled out by the safety regulations.
- It’s more difficult to assure data security. Inherent insecurity of cloud apps is a popular myth: it’s safe to say that all apps are susceptible to cyber threats. However, in cloud application development a lot of those threats are beyond the startup’s control: if a cloud platform itself is not secure, little can be done. So keep this in mind when choosing a service provider and go with a trustworthy vendor. Also, it won’t be amiss to consult your development partner on the latest methods of security, like cloud firewalls and data encryption.
- Cloud based application development demands some extra skills. At the very least, the developers should be able to design app architecture, choose an appropriate cloud provider, and harness the many new possibilities that cloud instruments offer.
As you can see, most of these points amount to choosing the best fitting tools, services, and — unsurprisingly — a great team. Your designated development partner should be able to tell what works best for your app. In the meantime, you can have a look at our guide to cloud application development for some general advice.
The key steps of cloud based application development
Let’s say, you want to develop a mobile app that brings tenants and landlords together. Tenants would search for available rooms, chat directly with landlords to clarify any details, and then meet offline to sign a lease. We have a project just like that in our portfolio.
Post-a-Room is an interesting case because its founders also had a secondary goal: to collect some user data for research purposes. For instance, the most popular districts and buildings, average prices that people are willing to pay, and demographics of these people. What better way to pipeline and store all that data than cloud services?
We’ll walk you through a cloud application development process step by step, paying attention to special requirements, and — where possible — to what was done on the Post-a-Room project.
1. Research your app’s target market
Every IT project should start with analytics and preliminary research. It usually combines the study of both competitors and potential users.
|✅ App ranking||✅ Demographics|
|✅ User reviews||✅ Occupation and income|
|✅ Number of active users||✅ Behavior and lifestyle|
|✅ Keywords||✅ Motivations and goals|
|✅ Unique value offering||✅ Pain points|
With regard to cloud application development, we recommend to pay extra attention to the following questions:
- Is it important to access this app from multiple devices and what devices that would be?
- What affects a user’s desire to download an app?
- Or would they prefer not to download anything at all?
- What are their security expectations?
- Do they have any concerns about storing their personal details online?
In the real estate business, mobile apps are praised for making information easily accessible to users, so it wasn’t even a question that Post-a-Room should be a mobile app. It was also highly important to develop an easy-to-use app. Do you remember the founders’ additional agenda? If no one liked Post-a-Room, where would the desired data come from? So Purrweb analytics team not only analyzed the competitors but also checked our previous real estate projects to see which UI elements did well and which didn’t.
To deepen your understanding of research’s role in mobile app development — check out our article.
2. Find a professional development team
There are several ways to approach app development. You can build your own in-house team, hire freelancers, or outsource it to a mobile app development company. We always advise startups to go with the latter, since the cost of in-house production is high and freelancers are unpredictable. If you’d like to explore this topic a bit further — here is our article on the pros and cons of outsourcing.
First and foremost, you need to be certain you found a cloud-experienced mobile app development company:
- Have a look at their portfolio. They should definitely have some relevant cases there.
- Check the client references. You can even ask for cloud application development clients specifically.
- Inquire about their developers. Just any engineer won’t do: cloud application development calls for a fundamental understanding of cloud infrastructure, core cloud solutions, and security algorithms.
You also need to confirm that they provide a full cycle of cloud application development to ensure all important stages will be covered — from UI design to testing.
Before proceeding to actual mobile app development, you and your team should establish the stack and pick a cloud service provider. Understandably, you might not feel like you are in your element where the tech side is concerned. So we’ll narrow it down to the most popular options.
3. Choose a cloud platform
The choice of a service provider is the cornerstone of cloud application development. Let’s have a look at the leading companies in this industry.
- Amazon Web Services (AWS) is an absolute leader in a public cloud space. They offer more than 200 products and tools for cloud based application development and score better than anyone in terms of global reach.
- Microsoft Azure is also a reliable option. It’s the best choice when you need to integrate your app with other Microsoft products. It is also known for superior data science and machine learning models. So if your cloud application development goals revolve around these technologies, you should definitely consider Azure.
- Google Cloud rivals AWS for the love of startup businesses because their solutions are also very adaptable and cost-effective. However, Google does not yet have as much computing power as its competitors. That makes it a go-to option for simpler kinds of applications.
Based on our experience, AWS is an excellent choice for startups: it’s reliable, affordable, and offers a vast variety of development tools. And since Purrweb engineers are huge AWS fans, Post-a-Room runs on AWS cloud hosting and was built using several of their services and tools. For instance, we combined AWS Cognito and AWS Amplify capabilities to set up custom authorization.
4. Decide on the tech stack
Remember how we mentioned that cloud application development gravitates towards integration of platforms? A good way to ensure a smooth transition is to choose React.js for a web app’s front end and develop a mobile app using React Native framework. There are enough similarities between React Native and React.js to accelerate the process. In Purrweb we’ve built a lot of cross-platform cloud apps on React Native, including Post-a-Room.
The choice of backend stack can be motivated by the app’s core functionality. We won’t analyze every possible scenario here, but here is an example. A lot of modern cloud apps would likely have some real-time functionalities like live chat, live streaming, or collaboration tools. Node.js is one of the best programming languages to handle real-time data, so we used one of its frameworks — NestJS — to develop Post-a-Room. The other framework to look up is ExpressJS.
Besides absolute giants like Amazon, Microsoft, and Google, there are a lot of other companies that deliver reliable cloud solutions. It is a common practice to rent the core infrastructure from one of the big three, but integrate other additional services as needed. For example, we used the following ones for Post-a-Room:
- Firebase — to implement push notifications.
- Pusher — to enable real-time communication in a live chat.
- Apollo GraphQL — to fetch and present the data.
Don’t hesitate to talk to your cloud application development partner and find out what would work best for you.
5. Design and build an MVP
Cloud based application development is a complex task. As always, we recommend launching a minimum viable product (MVP) first. This will allow you to see what users like and don’t like in your app. Then you’ll be able to analyze their feedback and improve your app. Since cloud apps are highly scalable by nature, it won’t be a problem to expand as you go.
Post-a-Room wasn’t an exception. We developed an MVP that featured only the most basic functionality:
- AirBnB-like room search with filters.
- Nearby search.
- Posting a room for rent.
- Live chat.
If you want to learn more about MVP and how it can benefit your cloud application development — we have another great article here ⬇️
6. Organize DevOps and testing
Cloud application development should include a testing stage to ensure security and optimal performance. It’s good if a mobile app development company that works on your app is not new to DevOps practices, including Continuous Integration and Continuous Delivery (CI/CD). It enables automation in the cloud based application development process and ensures that all the code changes are tested before deployment.
Cloud providers develop and supply a lot of popular DevOps services. At Purrweb we use AWS DevOps tools as well as other software like Docker, GitLab CI/CD, AppCenter, Vercel, and FastLine.
7. Launch your application
Once the testing stage is over, the last step is to release your app on the app markets. Best to leave this to your mobile app development partner — they would know the official guidelines and save you the trouble of the app being rejected.
However, this is not where you necessarily part ways with a cloud application development company forever. For instance, our clients from Post-a-Room are still looking for ways to evolve their project — let’s wait and see how it goes.
A short afterword
If done correctly, cloud based application development can bring a lot of value to your users. However, these days, the cloud is a part of almost everything that’s on our smartphones and computers. The lines between local and cloud processing are becoming fuzzy. So don’t fret: even if your project idea doesn’t fully fit the description of a SaaS, it can still benefit from cloud application development tools and services. Want to find out more? Fill out the form below, and we’ll be in touch!
- Anton Kiryukhin
- Polina Androsova