ABOVE Fly screen with Mount Fuji framed in a plane window

ABOVE

Flight booking app in Flutter

A flight booking app where every destination is a window. You pick the flight and the seat by the view.

Stack
Flutter 3.47, Riverpod, go_router
Runs on
iOS and Android
Screens
9, plus launch and splash
Tests
51 passing, 0 analyzer issues
Code
90 Dart files, no comments

Photos from Wikimedia Commons under CC0, Earth imagery by NASA

Watch it run

Filmed from the real app, beside its real code.

  • Shades lift in a ripple and the camera pushes through the O
  • Each tab opens through a window that grows from the centre
  • Airport codes flip on split flaps
  • The plane tilts with the fare curve as you drag
  • The plane rolls down the runway under your finger and takes off
  • The ticket unfolds with the sky moving behind its window

Every screen

  • ABOVE Fly screen
    Fly
  • ABOVE Globe screen
    Globe
  • ABOVE Tokyo screen
    Tokyo
  • ABOVE Flights screen
    Flights
  • ABOVE Seat screen
    Seat
  • ABOVE Cleared screen
    Cleared

Read the code

Real ABOVE code, straight from the app.

destination/presentation/fare_curve.dart

class FareCurve {  FareCurve(List<FareDay> fares)    : _prices = [for (final day in fares) day.fare.cents / 100],      _floor = fares[fares.cheapestIndex].fare.cents / 100 - 12;  static const base = 226.0;  static const _left = 28.0;  static const _width = 334.0;  static const _top = 206.0;  static const _rise = 96 / 150;  static const _samples = 10;  final List<double> _prices;  final double _floor;  int get last => _prices.length - 1;

ABOVE

$10.99