All work

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.

Type
Self-initiated concept
Platform
iPhone, iOS 17
Our part
Design and development
Year
2026
Zazhigalka

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.

The drum face with the code of the current 30-second windowDrum, ratchet and escape wheel: one face every 30 sLeaves and key are Face ID; scanner and turnstile are the doorThe guest card in the Zazhigalka app (club cards L, XL and XXL): a one-time entrance QR code changes every 30 seconds and is shown only after Face ID. Here it is a drum of codes in a sealed case: the escape wheel counts the seconds and turns the drum one face every 30 seconds, the key (Face ID) parts the leaves, the scanner at the turnstile reads the exposed face, and when the code matches the current window the turnstile turns. The secret lives in the Keychain and the code is derived from it and the number of the 30-second window, so a screenshot of an old code will not open the gate.

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

Shall we talk about your project?

Discuss your project