Client

Dishcover iOS App

Client

Dishcover iOS App

Industry

Restaurant Discovery App

Industry

Restaurant Discovery App

Dishcover iOS App

Dishcover iOS App

A restaurant discovery app for Australian food lovers. From first screen to App Store approval — built fast, built right, built to last

A restaurant discovery app for Australian food lovers. From first screen to App Store approval — built fast, built right, built to last.

Location

Australia

Location

Australia

A restaurant discovery app for Australian food lovers. From first screen to App Store approval — built fast, built right, built to last.

Dishcover iOS App

A restaurant discovery app for Australian food lovers. From first screen to App Store approval — built fast, built right, built to last.

Dishcover iOS App

  • Firebase Authentication

  • Apple Sign In

  • Google OAuth

  • Session Persistence

01

Authentication & Sign In

  • Firebase Authentication

  • Apple Sign In

  • Google OAuth

  • Session Persistence

01

Authentication & Sign In

02

User Journey

The home feed serves smart collections based on time of day: Morning Coffee on a weekday, Date Night by evening, Rooftop in summer. Tapping into any collection shows restaurants in list or map view with cuisine and price filters. A heart saves directly to a personal collection.

  • Home Feed

  • Collections

  • Restaurant Detail

  • Map

  • View

  • Saved Places

The home feed serves smart collections based on time of day: Morning Coffee on a weekday, Date Night by evening, Rooftop in summer. Tapping into any collection shows restaurants in list or map view with cuisine and price filters. A heart saves directly to a personal collection.

  • Home Feed


  • Collections


  • Restaurant Detail


  • Map


  • View


  • Saved Places

02

User Journey

  • Google Places API


  • Bayesian Ranking


  • Firestore


  • Two-layer Cache


  • Native Share

  • Google Places API

  • Bayesian Ranking

  • Firestore

  • Two-layer Cache

  • Native Share

Built on Google Places API, Firebase Firestore, and a Bayesian ranking engine. Two-layer caching cuts API cost by 90%. Geofenced to Sydney, Melbourne and Brisbane. Native iOS sharing built in.

Built on Google Places API, Firebase Firestore, and a Bayesian ranking engine. Two-layer caching cuts API cost by 90%. Geofenced to Sydney, Melbourne and Brisbane. Native iOS sharing built in.

03

Tech Aspects

03

Tech Aspects

Every collection can be viewed in list or map mode. Pins show the restaurant name and live rating. Tapping a pin surfaces a card — photo, price, distance, and open status, matching exactly what the app shows.


50+ restaurants pinned per search

03.1

Map View

03.1
Map View

Every collection can be viewed in list or map mode. Pins show the restaurant name and live rating. Tapping a pin surfaces a card — photo, price, distance, and open status, matching exactly what the app shows.


50+ restaurants pinned per search

Most apps surface paid placements first. Dishcover doesn't. A Bayesian ranking algorithm orders every result purely on merit — review volume weighted against score. A new spot with 5★ from 3 friends never outranks a trusted venue with 4.7★ from 2,000 genuine reviews. You always see what's actually best, not who paid most.


0 paid placements ever

Most apps surface paid placements first. Dishcover doesn't. A Bayesian ranking algorithm orders every result purely on merit — review volume weighted against score. A new spot with 5★ from 3 friends never outranks a trusted venue with 4.7★ from 2,000 genuine reviews. You always see what's actually best, not who paid most.


0 paid placements ever

03.2

No Ads.
Pure Algorithm.

03.2

No Ads.
Pure Algorithm.

The share button on any restaurant page triggers the iOS native share sheet, exactly as shown. Users can send a restaurant directly to friends via Messages, WhatsApp, Instagram, or any installed app. No custom share flow needed it uses the OS.


1 tap to share any restaurant

The share button on any restaurant page triggers the iOS native share sheet, exactly as shown. Users can send a restaurant directly to friends via Messages, WhatsApp, Instagram, or any installed app. No custom share flow needed it uses the OS.


1 tap to share any restaurant

03.3

Native Sharing

03.3

Native Sharing

Every restaurant card is powered by Google Places: real photos, live ratings, opening hours, price range, and phone numbers. Data is layered: Firestore syncs user profiles and saved places in real time, while AsyncStorage caches feeds for 6 hours and restaurant details for 7 days. The result: 90% fewer API calls on return visits and an app that loads instantly even on slow networks.

90%fewer API calls via two-layer cache

Every restaurant card is powered by Google Places: real photos, live ratings, opening hours, price range, and phone numbers. Data is layered: Firestore syncs user profiles and saved places in real time, while AsyncStorage caches feeds for 6 hours and restaurant details for 7 days. The result: 90% fewer API calls on return visits and an app that loads instantly even on slow networks.


90%fewer API calls via two-layer cache

03.4

Google Places API & Data Storage

03.4

Google Places API & Data Storage

Google Places API powers every restaurant card: photos, live ratings, opening hours, phone numbers, and review excerpts. EAS compiled the native binary in the cloud. Privacy policy deployed to Vercel. Approved on App Store.

  • Google Places API

  • EAS Build

  • TestFlight

  • App Store Connect

  • Vercel

04

Key Details

Google Places API powers every restaurant card: photos, live ratings, opening hours, phone numbers, and review excerpts. EAS compiled the native binary in the cloud. Privacy policy deployed to Vercel. Approved on App Store.

04

Key Details

  • Google Places API


  • EAS Build


  • TestFlight


  • App Store Connect


  • Vercel

Expo Application Services compiles a native iOS binary entirely in the cloud — no Xcode, no Mac build server required. The project is pushed to Expo's infrastructure, dependencies are installed, and a signed .ipa is produced ready for TestFlight distribution. Every build is reproducible from the same commit.

04.1

EAS Cloud Build

  • Configure eas.json defines the build profile (simulator, internal, production). Bundle ID and Apple Team ID are set once.


  • Push eas build --platform ios uploads the project archive to Expo's build queue.


  • Compile Expo installs CocoaPods, compiles Swift/ObjC, signs with the provisioning profile, and produces a .ipa.


  • Download A signed build artefact is available to download or submit directly to TestFlight.


0 local Xcode builds required

04.1

EAS Cloud Build

Expo Application Services compiles a native iOS binary entirely in the cloud — no Xcode, no Mac build server required. The project is pushed to Expo's infrastructure, dependencies are installed, and a signed .ipa is produced ready for TestFlight distribution. Every build is reproducible from the same commit.

  • Configure eas.json defines the build profile (simulator, internal, production). Bundle ID and Apple Team ID are set once.


  • Push eas build --platform ios uploads the project archive to Expo's build queue.


  • Compile Expo installs CocoaPods, compiles Swift/ObjC, signs with the provisioning profile, and produces a .ipa.


  • Download A signed build artefact is available to download or submit directly to TestFlight.


0 local Xcode builds required

Apple's review process requires a complete submission package before any build goes public. Screenshots, metadata, a privacy policy URL, entitlement declarations, and correct capability configuration all need to be in order.

04.2

App Store Submission

  • Privacy Policy: Deployed to Vercel (dishcover.app/privacy). Required for any app that uses Sign In with Apple or collects location data.


  • Screenshots: 6.7" screenshots at 1320×2868px capturing every key screen. Required in App Store Connect before submission.


  • Entitlements: Sign In with Apple, location services (NSLocationWhenInUseUsageDescription), and photo library access declared in app.json.


  • Review: Submitted via App Store Connect. Apple review completed within 24 hours. Approved on the first submission — no rejections.


1st submission: approved immediately

Production release followed a staged rollout: internal TestFlight testing, then a phased App Store release. The app is live on the Australian App Store, geofenced to Sydney, Melbourne and Brisbane, with real-time Firestore sync and a CDN-cached backend that handles load without additional infrastructure.

04.3

Shipped to Production

  • TestFlight internal: Build distributed to internal testers. UI, auth flow, and data accuracy verified across devices.


  • Production EAS build: autoIncrement: true in eas.json bumps the build number automatically. Signed with distribution certificate.


  • App Store release: Promoted from TestFlight to public release via App Store Connect. Phased rollout enabled.


  • Live: Available on the Australian App Store. Firestore, Google Places, and Vercel-hosted privacy policy all running in production.


Live on App Store

40%
Product stages
90%
API savings
100%
10k+ Ranked restaurants
0%
0 Rejections
40%
Product stages
90%
API savings
100%
10k+ Ranked restaurants
0%
0 Rejections

4


Stages from concept to App Store: Auth, Journey, Tech, Launch

90%


Reduction in Places API calls through two-layer caching

10k+


Restaurants ranked using Bayesian scoring across 3 cities

0


App Store rejections

A restaurant discovery app for Australian food lovers: smart collections, map view, and App Store-ready infrastructure, built from scratch in a single sprint. Your idea deserves the same. What started as a concept is now live on the App Store, designed, built, and shipped by Ruvo.

If you have a product you want brought

to life, let's talk.

From first screen to App Store
in one sprint.

From first screen to App Store in one sprint.

A restaurant discovery app for Australian food lovers: smart collections, map view, and App Store-ready infrastructure, built from scratch in a single sprint. Your idea deserves the same. What started as a concept is now live on the App Store, designed, built, and shipped by Ruvo. If you have a product you want brought to life, let's talk.

Explore more works

Explore more works