Back to Work
Movie Ticketing App

Tixly

A Flutter app for browsing what is showing, opening a movie, and booking a seat — with the tickets saved on the device and collected on a “My Tickets” screen.

Screenshot of Tixly
RoleMobile — the screens, bottom navigation, the booking form, and the local ticket storage.
TimelineNov 2023
Tech Stack
FlutterDartSharedPreferences

Background

A cinema ticket carries a lot of small details: the movie, the seat, the date and time, the location, and who booked it. Spread across chat messages and screenshots, those details are easy to lose. Tixly keeps the whole flow in one app — choose a film, fill in the booking, and have the ticket waiting in a dedicated tab.

Process

1

Screens and navigation

Built a dark-themed shell with an animated bottom bar and three destinations: a home page with a movie carousel and a catalog, a booking page for saved tickets, and a credits page. Each movie opens its own detail screen with a poster, genre, rating, and synopsis.

2

Booking flow

Added a form that captures the customer name and phone number along with the movie, seat number, ticket count, date, time, and location, then hands the completed record to the ticket list.

3

Local ticket storage

Serialized each booking to JSON and stored the list in SharedPreferences, so My Tickets survives closing the app. On launch, the page decodes the stored strings back into ticket objects and renders them as ticket-shaped cards.

4

Visual system

Set a single dark background across screens, bundled the Inter Tight family for custom typography, and used ticket widgets, cached network images, and a carousel to make a small app feel finished.

Gallery

Key Features

Movie carousel and catalog

The home screen leads with a sliding carousel of featured films and lists the rest underneath, each card opening the movie detail page.

Movie detail page

Shows a full-width poster, the title, genre and rating, and a synopsis, with the navigation kept transparent so the artwork stays the focus.

Complete booking form

Captures the customer, phone number, movie, seat number, number of tickets, date, time, and location in one pass before the ticket is saved.

Tickets that persist

Bookings are JSON-encoded into SharedPreferences and decoded on launch, so the ticket list is still there after the app is closed.

Ticket-styled list

Saved bookings are presented as perforated ticket cards instead of plain rows, with the movie, seat, schedule, and location grouped on each card.

Custom dark theme

One background color across all screens, bundled Inter Tight typography, Font Awesome icons, and an animated bottom navigation bar.

Outcome

Tixly runs the booking flow end to end on the device: browse the catalog, open a film, submit the booking details, and find the ticket in My Tickets after restarting the app. Movie data is bundled with the app and tickets live in local storage, so the project needs no backend while still keeping a complete record of each booking.