Zazhigalka
A clickable SwiftUI prototype we built to pitch an app to the Zazhigalka bar chain. Addresses, the menu and the house rules come from the chain’s official site; bookings and the club card are demo data.

The brief
The chain runs bars in dozens of cities, and guests find it through a website and a Telegram bot. We wanted to show the owners what an app of their own could be: what a guest does in it, how it looks in the brand’s style and how it gets through App Store review with a 17+ rating.
What we built
More than twenty screens in SwiftUI with no third-party libraries. An age check and sign-in by phone number, a home screen with tonight’s invitation, all 62 bars of the chain on a map, a bar menu of 158 items with estimated calories, step-by-step table booking and a club card with L, XL and XXL levels.
The chain’s palette, the Raleway typeface and our own icon set instead of system symbols. The maps of Russia and its cities are drawn from OpenStreetMap data bundled with the app, so they work offline and need no API keys.
The entry code
The QR code works once. It carries the guest number, the number of the current 30-second window and an HMAC-SHA256 signature made with a secret kept in the Keychain. A screenshot of the code stops working after 30 seconds, and without the secret the code cannot be forged. It is shown only after Face ID.
How the entry code works
A clock turns the code drum once every 30 seconds. Only the key, Face ID, opens the shutter. The turnstile lets a guest through when the scanner reads the code of the current window.
Screens
Under the hood
- All 62 bars of the chain with addresses, hours and status, taken from the official site.
- The nearest bar by location, directions in Yandex Maps, 2GIS or Apple Maps, and a taxi to the bar.
- Booking: the bar, a date up to 14 days ahead, time, guests, a zone by the stage, on the sofas or VIP, and a confirmation code.
- Built for App Store rules: an age check, and full photo sets open only on the chain’s website.
- Our own icon set and the brand palette in one place in the code, so the concept can be recoloured for another brand quickly.
Swift · SwiftUI · MapKit · Keychain · Face ID · OpenStreetMap