Manageable Mobile Apps: Why an Admin Panel Matters

Hello,
In this article I will talk about something indispensable: what is an admin panel? How should it be built? What should it include?
Let us start with what it is. The admin panel is often a skipped topic, which is why I wanted to address it. Suppose you want to build a mobile app or a website, that is, an application that works online. Depending on what it does, every online application absolutely needs a management system. Even if it runs entirely on the client side, some settings and some content must be managed dynamically. Doing it this way is the practical and advantageous choice.
For example, when the app you build opens, it should send device information to the backend via an API so that notifications can be sent. Or it should fetch some information or pages inside the app via an API. Otherwise the app remains a static, unmanageable application. Even to send notifications to the users of your app, at the simplest level, you need an admin panel.
Some ready-made solutions have been developed to meet these basic needs and make your work easier. Platforms such as Firebase and OneSignal let you handle these operations easily. You can use such platforms to send bulk notifications. However, to fetch some settings dynamically, bring some content into the app dynamically or manage the features you have in mind, you will need a more comprehensive admin panel.
For instance, with Firebase, one of the platforms I mentioned, you can have an API that manages most content and talks to the app, plus a database running in the background. In that case you also have to write your app according to Firebase.
For some simple operations this can be preferred. Or you can choose OneSignal just to send push notifications. But when we think about it, what do we actually want?
If we are going to own an application, we want to be in full control. We do not want to depend on a platform, and if a system shuts down we do not want to be affected by it.
A good example from the past: you may have heard of it, and if not, let me explain. A few years ago everyone was building apps on the Parse platform. Yes, it provided a lot of convenience, and we even did some work on it on request. But I always had a doubt: these kinds of platforms are practical, but in the long run they are not ours and we become dependent on them. As it happened, while we were thinking about this, the platform owners announced they would shut the system down. To avoid harming people, they released the code as open source, that is, the platform code. But these kinds of infrastructures are complex, general-purpose systems, so understanding the code or running the system on your own servers is not that easy. When a problem appears, intervening is not that easy either. Many people either tried to install the platform on their own servers or modified their setups. Most of the people I know changed it, because the best system is the one you can manage and have control over.
Now, after these examples, let us talk about how the manageable system we need should be built.
For mobile or web applications we need two components. If we count the database, we can say three.
1 – Database: Where all your application-related data is stored. This database can be MSSQL, MySQL, Oracle, PostgreSQL and so on.
2 – Admin panel: A web-based interface that talks to the database and lets you manage the entire database, change settings and perform operations. It is not practical for this interface to be a mobile app. The reason it should be web-based is that you generally do not make these settings while on mobile. You sit down at your desk, make the settings and get up. Web-based interfaces are more practical to develop and update. You do not need to publish to an app store. To make a change, you edit the code on the hosting and the web admin panel takes the shape you want. You can also use it from your mobile device, of course, but for that the admin panel must also be mobile-friendly, that is, responsive.
3 – API: A service that talks to your clients, the apps, which you do not see but which we call a web service and which has its own response language (XML or JSON). This service can be built like the admin panel, but its interface is not web-based. Think of it as a layer where developers communicate with developers. To use the API, the mobile app developer asks the person who wrote it for the API docs, that is, the API usage guide. The mobile developer cannot — and should not — operate directly from the admin panel. Nor can they send data directly to the database. To do that, they call the API within a defined set of rules. They send data to the API, the API processes it, writes it to the database and notifies the client, that is, the mobile app. The app owner sees all of this from the admin panel, reviews and manages these operations. That is what the API is for: it connects the client apps to the backend.
Now let us also talk about what our admin panel should include.
You can shape it according to your work and needs. For example, if you have a content-heavy app, with categories and related articles, you should be able to add, delete and update those records. You should be able to search, sort and filter all these records easily, and display them as a paged list when there are many records. In short, let us call these operations record management. It should certainly include that.
But beyond managing the work you do, there are some things that should also be there.
1 – Security:
This is often a skipped feature. The admin panel is one of the places that most needs protection. Think about it: someone who leaks in there can change everything. You should not be able to enter this admin panel with an ordinary username and password. It needs a password policy and protection against multiple failed attempts — brute-force attacks, that is, repeated password guessing. That is why you should choose complex passwords. The admin panel itself should not allow simple passwords when they are set.
2 – Admin management and roles:
As the main administrator you should also be able to create different administrators and give them access to certain parts of the admin panel. Do not think you will be the only one using this panel. When your business grows later, if this simple feature is missing you will need it, and in a single-user system you will run into these problems: since everyone operates with the same user, when something goes wrong we cannot tell who did what.
3 – Logs:
To understand this, everyone should log in with different users and your admin panel infrastructure should keep management logs, what we call an audit log. That is, which user performed which operation and changed what should be easy for people with the super administrator role to see. So from the admin panel, super administrators should be able to define roles, permissions and new administrators. Each administrator type can do different work. That is why your admin panel needs to run with different menus and permissions for each person who logs in.
4 – Mobile compatibility: Although not critically important, it matters that your admin panel is mobile-friendly so that you can get work done comfortably when you are not at a computer and do not struggle when you urgently need to change a setting.
In this article I have tried to explain why the admin panel matters in the mobile app you have built or will build, and what it should include. If you have questions, please do not hesitate.