Mobile App for a Restaurant or Delivery Service: Key Features
Basics4 minInnovialabs editorial team
In short
At launch you need a menu, cart, checkout with address and payment, order status and a POS integration; loyalty and courier tracking come later, and with low order volume an aggregator or Telegram bot is cheaper.
What you really need at launch
A delivery app is more than a menu screen. The minimum working system has four parts:
- the customer app (iOS and Android);
- an operator panel — where orders are received, confirmed and cancelled;
- a backend — menu, prices, delivery zones, orders;
- a POS integration, so an order reaches the kitchen right away.
If any part is missing, orders get copied by hand, which means mistakes and delays.
Must-have MVP features
| Feature | What matters |
|---|---|
| Menu | Categories, photos, ingredients, modifiers ("no onions", size, add-ons), stop list |
| Cart | Total recalculation, minimum order, promo code |
| Address and zone | Pick on a map, check the delivery zone, zone-based delivery fee |
| Timing | "As soon as possible" or a set time, plus pickup |
| Payment | Online payment via local payment systems and cash to the courier |
| Order status | Accepted, cooking, on the way, delivered — with push notifications |
| History and reorder | Repeat a previous order in one tap |
| Phone number login | SMS code, no passwords |
Reorder and phone login are often underrated, yet they save customers the most time.
What can come later
- Courier tracking on a map. It requires a separate courier app that shares location. Useful once your own courier service is running smoothly.
- A loyalty program — points, cashback, tiers. Decide early where the balance lives: in the app or in the POS, so points also work in the restaurant itself.
- Personal offers based on order history.
- Reviews and order ratings.
- Multiple branches with different menus and nearest-location selection.
- Table reservations — if the restaurant format calls for it.
Integrating with iiko and other POS systems
A POS integration (iiko, r_keeper and others) usually does three things:
- Imports the menu and prices from the POS, so you don't maintain them in two places.
- Sends orders to the kitchen automatically.
- Syncs the stop list and statuses — a dish is sold out, an order is ready.
Before you start, check which POS version and modules you have, whether API access is available and who on the restaurant side owns the settings. This is where projects lose the most time.
When you don't need an app
Your own app pays off when you have regular customers who order often and you are ready to invest in promoting installs. Otherwise, simpler options exist.
| Option | Fits when | Limitations |
|---|---|---|
| Aggregator (Yandex Eats and similar) | You need new customers without your own logistics | Commission per order, the customer base belongs to the aggregator |
| Telegram bot | Your audience is already in Telegram, you need it fast and affordable | Fewer interface options, loyalty is harder |
| Website with online ordering | Many orders come from search and maps | No push notifications out of the box |
| Your own app | Lots of repeat orders, own delivery, loyalty matters | More expensive to build and support, installs need promotion |
Many businesses start with an aggregator and a Telegram bot, then launch an app once they see a stable base of repeat customers. Channels can be combined: one backend and one POS integration can serve the bot, the website and the app.
Common mistakes
- The menu is maintained by hand in two systems, so prices drift apart.
- There is no operator panel: orders arrive by email or in a chat.
- Delivery zones aren't validated, and couriers end up where nobody planned.
- Everything is built at once, including tracking and complex loyalty, and the launch drags on.