How to create a mobile app?
Frontend + backend = the end?
Okay, of course, it’s much more complicated. We can say that mobile app development has two parts. Through the frontend, users interact on their phone or tablet: for example, the buttons they click on and the slider they move. But to make buttons and sliders work, there must be a server side underneath them. By clicking on the button, you send a request to the server, where it is processed and returned to you with the result that you expected from the click. This should take seconds to avoid losing a precious user waiting for a new screen to load.
Why do you need mobile app hosting?
In mobile app development, writing code is not enough. Of course, if you made an app like a calculator with very simple functions, the entire backend part will be on the user’s device. But if the app has a backend with more difficult functions — the app must be somewhere, and something must provide that the requests will be executed in it. App hosting allows you to run the backend on servers or in the cloud hosted by a service provider such as Amazon Web Services (AWS) or Google Cloud Platform (GCP). They provide a foundation for hosting your app. Avoid confusion with the distribution of the app, this is done by the AppStore and GooglePlay, which we will talk about later.
Mobile apps hosting isn’t much different from hosting web apps. The user also takes an action or sends a request, and the computer responsible for mobile app hosting processes this request.
What is Code Push?
In cases where something falls off on the frontend, you need to quickly fix bugs. To make updates in the app, AppStore and GooglePlay require a review stage each time. In the case of Android, this can take 30 minutes, while iOS can hold the app for a whole day. To automate this process and pass the review, you can use CodePush to upload updates. It is a cloud-based App Center service that allows React Native developers to update mobile apps directly on users’ devices. It acts as a central repository where developers publish updates and apps request them using the provided client SDK. By applying automated updates, we save time on fixing errors, and, accordingly, money.
What are the types of hosting services?
Let’s stop on cloud hosting. First, because we use it. Secondly, because most companies use it. Why is that? In the case of cloud hosting, the app does not run on a single server, unlike conventional hosting. Instead, the app or site is hosted on a network of associated virtual and physical cloud servers.
What are the benefits of cloud mobile app hosting?
If your product exists on one server, and something happens to it, your product will be gone. It’s another case when your product exists on many interconnected machines. If some data disappears from one server, they will still remain on the network.
In cloud hosting, the amount of system resources can increase, while a regular server is limited in its capabilities. A sudden increase in the number of users will require an increase in capacity. With a dedicated server, this process can be delayed. Cloud hosting allows you to increase the computing power for your mobile app with one button.
You can choose a solution adapted to the specific needs of the client and the product. No need to choose from a list of standard packages, you can choose the space, architecture, processing power, OS, and security you want with cloud customization.
- requests and solutions are deployed on the cloud network rather than on a separate local server
- resources are scaled based on user request
- solutions are automated and managed through APIs, web portals, and mobile apps
Popular cloud hosting offerings include Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud, and Microsoft Azure. AWS is the dominant player in the market, offering an extensive list of services and more regions and zones than other cloud providers.
In Purrweb for our projects, we use AWS hosting server for foreign projects and Yandex.Cloud for Russian projects. AWS — it is a lot of different services, including authorization and storage services, they provide good pricing and support from Amazon. Yandex is also far ahead of its competitors in Russia.
Sergey Ponomarev, CTO at Purrweb
You can ask a logical question — when the app is in the AppStore or Google Play, is this also hosting? Yes, but not really. An app store is a distribution channel. It provides access to the app for all users. Let’s get down to the details now.
How do apps reach users?
Purrweb, a mobile app agency, specializes in MVP development, specifically cross-platform React Native apps. This is an ideal option if you have a startup idea but cannot invest a lot of resources, React Native allows you to develop two applications at the same time, for both iOS and Android.
Since we are dealing with two platforms for mobile applications, iOS and Android, there are also two ways to deliver applications to users.
Before the app is released to the real world, it needs to be tested. There are two stages — alpha testing at the development team level and beta testing when potential users can test the app. In the case of iOS, this is done through the Test Flight app, which is owned by Apple. To upload an application to Test Flight, you need an Apple developer account. During the beta testing stage, you can invite up to 10 thousand users to your application. After testing is over, you just need to go from Test Flight to release.
The AppStore does not host your app, Test Flight does.
What should be done before publishing an app in the App Store?
Give the user the ability to set rules. The user needs the ability to complain about any content that can be created or uploaded: photos, videos, text publications. This means that all inappropriate materials must be checked by administrators.
Be willing to take the time. If the app is related to sports betting, religion, or falls into the ‘For kids’ category, be prepared for long negotiations with the Apple team. This may require several additional iterations. Just because the niche demands it.
You can read more about how to release an application in the App Store here:
For this platform, there is Android Studio, where app code is written, certificates are configured, and alpha and beta testing is performed. Using the Google Play Console, you can add testers, manage users in the app, and upload the app to Google Play.
Is everything so cloudless with cloud hosting?
In mobile app development and the use of cloud services, entrepreneurs are often concerned about the security of their data and that of users. This is because the data is stored and processed by a third party and cannot be seen. This makes startups a bit skeptical about cloud hosting.
For different services, we use VPC (virtual private cloud) and security groups to control access to these services. They can be configured so that only specific locations can access various resources. For example, prohibit access from outside the subnet to one of the databases. The backend server can do this because it is on the same subnet with the base, and any other device cannot. Or, you can configure only SSH (secure shell) access, but prohibit any other type of service call.
Konstantin Romanov, team lead at Purrweb
Constant access to the network
Best cloud services work depends on a high speed internet connection. Thus, businesses that are relatively small and face connectivity issues should ideally invest in a good internet connection first to avoid downtime. The reason is that downtime on the Internet can lead to huge losses for your business.
The cloud service provider owns, operates, and controls the cloud infrastructure. As a client, you will have minimal control over this. You will be able to manage apps, data, and services running in the cloud, but usually, you will not have access to key administrative tasks such as updating and managing firmware or accessing the server shell.
Mobile apps are now one of the main channels for promoting a business, compared to a simple website. As well as all apps are created in different ways, so the hosting server is selected according to the requirements of the product.
The calculation of the cost depends on the amount of resources used: on the number of real-time calculations and requests on the backend. AWS has a Load Balancing feature. At the moment when the load on the server unexpectedly increases, the service deploys additional machines. They work until the load subsides. This also affects the cost of hosting. This service is not yet available on Yandex.Cloud.