← Back to all projects

Calc-U-Later

Calc-U-Later project screenshot

A skinnable iOS calculator app with hidden prank features, 30+ built-in themes, custom .cl theme file format for import/export, LED-style display, Firebase analytics, and full App Store submission readiness including marketing website, privacy policy, and localised store descriptions.

Technology

frontendswiftswiftui
databasecore-data
devopsxcodefirebase
toolscustom-uti

📱 Calc-U-Later -- iOS Calculator with Hidden Prank Features

Long-Form Project Summary for KNWS Showcase

Calc-U-Later is a fully featured iOS calculator application that looks and works like a premium everyday calculator but hides a layer of prank-ready sound effects, customisable LED-style displays, and a deep theming engine beneath its polished surface. With over 30 built-in themes, a custom .cl file format for importing and exporting skins, support for personal background photos, and Firebase-powered analytics, the app is designed both as a genuine utility and a showpiece of Swift/SwiftUI engineering.

The project also includes a dedicated marketing website at calculater.knws.co.uk, providing landing pages, feature highlights, and download links -- making this a complete product package from code to storefront.


🚀 Project Goals

  1. Build a production-quality iOS calculator suitable for App Store publication, complete with standard arithmetic and scientific functions.
  2. Introduce hidden prank features -- configurable sound effects that trigger on button presses, turning a mundane utility into a comedic surprise for unsuspecting users.
  3. Create a deep theming system with 30+ built-in skins, LED-style digit fonts, and support for user-supplied background photos.
  4. Design a custom file format (.cl) with a registered UTI so that themes can be shared, imported, and exported between devices via AirDrop, Messages, or email.
  5. Integrate Firebase analytics to understand user engagement, popular themes, and feature adoption.
  6. Deliver a marketing website that showcases the app, demonstrates themes, and links to the App Store listing.
  7. Support both iPhone and iPad with appropriate layout strategies -- portrait-only on iPhone, both orientations on iPad.

🧠 Core Features

1. Full-Featured Calculator Engine

The calculator provides all expected arithmetic operations plus extended functions:

  • Addition, subtraction, multiplication, division
  • Percentage calculations
  • Sign toggle (positive/negative)
  • Decimal precision handling
  • Memory functions
  • Clear and all-clear behaviour
  • Responsive button feedback with haptic cues

The engine is built natively in Swift with careful attention to floating-point edge cases, division-by-zero handling, and display overflow.


2. Prank Sound Effects

The signature feature -- hidden audio pranks that can be toggled on or off:

  • Sound effects mapped to individual button presses
  • Multiple sound packs (comedy, retro, animal, sci-fi, and more)
  • Volume control independent of system volume
  • Effects trigger naturally during calculation, so the prank is seamless
  • Users can hand the phone to a friend and watch confusion unfold

Sound playback is handled through AVFoundation with pre-loaded buffers for zero-latency triggering.


3. Skinning Engine with 30+ Built-In Themes

Calc-U-Later ships with a rich library of visual themes:

  • Dark and light base themes
  • Colour palettes (neon, pastel, monochrome, metallic)
  • Retro calculator styles (Casio, Texas Instruments inspired)
  • Seasonal and novelty themes
  • Each theme defines: button colours, text colours, background gradients, display font, border styles, and animation curves

Themes are rendered entirely through SwiftUI view modifiers and environment values, making switching instantaneous with no reload.


4. Custom .cl Theme File Format

A proprietary theme file format was designed specifically for this app:

  • Extension: .cl
  • Registered UTI: Custom Uniform Type Identifier declared in the app's Info.plist
  • Structure: JSON-based payload containing colour definitions, font references, layout hints, and optional embedded background image data (base64)
  • Import/Export: Users can share .cl files via AirDrop, iMessage, email, or Files app -- tapping a .cl file automatically opens Calc-U-Later and previews the theme
  • Validation: The import pipeline validates schema version, colour format, and image dimensions before applying

This makes the theming system extensible beyond what ships with the app, enabling a community-driven theme ecosystem.


5. Custom Background Photos

Users can select personal photos from their camera roll to use as the calculator background:

  • PHPickerViewController integration for privacy-compliant image selection
  • Real-time blur and overlay adjustments so buttons remain readable
  • Crop and position controls
  • Background persists across launches via Core Data storage
  • Combines with theme colours for a layered visual effect

6. LED-Style Display Fonts

The calculator display uses custom digital/LED-style fonts reminiscent of real hardware calculators:

  • Multiple font options (seven-segment, dot-matrix, LCD pixel)
  • Dynamic sizing based on digit count
  • Smooth transitions when numbers change
  • Colour-matched to the active theme

Fonts are bundled as .otf or .ttf assets and registered at app launch.


7. Firebase Analytics Integration

The app integrates Firebase to track:

  • Theme selection frequency
  • Prank mode activation rates
  • Session duration and calculator usage patterns
  • Crash reporting via Crashlytics
  • Custom events for feature discovery (e.g., first .cl import, first photo background)

Analytics data informs development priorities and helps understand which features resonate with users.


8. Marketing Website

A dedicated landing page at calculater.knws.co.uk provides:

  • App screenshots and feature highlights
  • Theme gallery with visual previews
  • Download links to the App Store
  • Privacy policy and support contact
  • Responsive design for mobile and desktop visitors

The site is hosted on the KNWS web server infrastructure at 192.168.10.10.


🛠 Technical Architecture

App Architecture

  • Language: Swift 5.x
  • UI Framework: SwiftUI with UIKit bridging where needed (e.g., PHPickerViewController)
  • Data Persistence: Core Data for user preferences, selected themes, and background images
  • Audio: AVFoundation for low-latency sound effect playback
  • Analytics: Firebase SDK (Analytics + Crashlytics)
  • File Handling: Custom UTI registration, UIDocument-based import pipeline
  • Layout: Adaptive layouts -- portrait lock on iPhone, full rotation support on iPad
  • Minimum Target: iOS 16+

Project Structure

  • Models/ -- Calculator engine, theme model, sound pack definitions
  • Views/ -- SwiftUI views for calculator face, settings, theme browser, prank controls
  • Themes/ -- Built-in .cl theme files and preview thumbnails
  • Audio/ -- Sound effect packs organised by category
  • Fonts/ -- Custom LED/digital display typefaces
  • Utils/ -- Colour parsing, image processing, file import/export helpers
  • Firebase/ -- Analytics event definitions and configuration

Website Stack

  • Static HTML/CSS/JavaScript
  • Responsive layout with CSS Grid
  • Hosted on Apache at 192.168.10.10

🔧 Pipeline & Workflow

  1. Design themes using a colour palette tool, export as .cl JSON files.
  2. Record or source sound effects, process with FFmpeg for consistent levels and format.
  3. Build and test on physical iPhone and iPad devices via Xcode.
  4. Run Firebase debug view to validate analytics events fire correctly.
  5. Archive and submit to App Store Connect for review.
  6. Deploy marketing site to the KNWS web server.

📈 Outcome & Impact

Calc-U-Later demonstrates:

  • Production iOS development -- a complete App Store-ready product built with Swift and SwiftUI
  • Custom file format design -- a proprietary .cl theme format with UTI registration and system-level integration
  • Audio engineering -- low-latency sound effect playback with multiple sound packs
  • Design system thinking -- 30+ coherent visual themes with a shared component architecture
  • Firebase integration -- real-world analytics and crash reporting
  • Full product lifecycle -- from code to marketing website to App Store submission
  • Cross-device adaptation -- responsive layouts for iPhone and iPad with appropriate orientation handling

The project showcases the ability to deliver a polished consumer product that combines utility, entertainment, and deep customisation in a single app.