Calc-U-Later

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
📱 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
- Build a production-quality iOS calculator suitable for App Store publication, complete with standard arithmetic and scientific functions.
- Introduce hidden prank features -- configurable sound effects that trigger on button presses, turning a mundane utility into a comedic surprise for unsuspecting users.
- Create a deep theming system with 30+ built-in skins, LED-style digit fonts, and support for user-supplied background photos.
- 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. - Integrate Firebase analytics to understand user engagement, popular themes, and feature adoption.
- Deliver a marketing website that showcases the app, demonstrates themes, and links to the App Store listing.
- 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
.clfiles via AirDrop, iMessage, email, or Files app -- tapping a.clfile 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
.climport, 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 definitionsViews/-- SwiftUI views for calculator face, settings, theme browser, prank controlsThemes/-- Built-in.cltheme files and preview thumbnailsAudio/-- Sound effect packs organised by categoryFonts/-- Custom LED/digital display typefacesUtils/-- Colour parsing, image processing, file import/export helpersFirebase/-- 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
- Design themes using a colour palette tool, export as
.clJSON files. - Record or source sound effects, process with FFmpeg for consistent levels and format.
- Build and test on physical iPhone and iPad devices via Xcode.
- Run Firebase debug view to validate analytics events fire correctly.
- Archive and submit to App Store Connect for review.
- 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
.cltheme 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.