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 straightforward functions, the entire backend part will be on the user’s device. But if the app contains a backend with complex functions — the app needs to be hosted somewhere, and there must be a mechanism in place to process the requests. 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 App Store and Google Play, which we will talk about later.
Mobile app 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 fix bugs quickly. To make updates in the app, the App Store and Google Play 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?
Reliability
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, it will still be on the network.
Scalability
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 of your mobile app with one button.
Versatility
You can choose a solution adapted to the specific needs of the client and the product. There’s no need to choose from a list of standard packages, you can opt for the space, architecture, processing power, OS, and security you want with cloud customization.
What else?
-
- 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.
One of our projects, where we used AWS service — Accelerist
At Purrweb for our projects, we use an AWS hosting server for foreign projects and Yandex.Cloud for Russian projects. AWS — it has 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.
You can ask a logical question — when the app is in the App Store or Google Play, is this also hosting? Yes, but not really. An app store is a distribution channel. The app is accessible to 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.
1) iOS
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 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 test your application. When the testing is over, you just need to go from Test Flight to release.
The App Store 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.
Make the application confidential. You will need the Terms of Service and Privacy Policy documents. Preparing texts for them will not be hard at all — it is enough to analyze similar pages of your competitors and adapt for yourself.
Be willing to take the time. When an app is related to sports betting, religion, or when it 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:
2) Android
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?
Security
In mobile app development and 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 as the base, and any other device cannot or you can configure only SSH (secure shell) access, but prohibit any other type of service call.
Constant access to the network
The 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.
Control
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.
About money
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 AWS service allows you to calculate the cost of the capacity you need. For example, 10 GB of memory per month will cost 2.30 USD
The cost depends on the quantity of resources used in the number of real-time calculations and requests on the backend. AWS has a Load Balancer 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.
[wpim]