Projects / Native iOS products

4DAT

Maintenance, inventories and personal records on iPhone.

Our work for FrankCastle spans native iOS applications for vessel and property maintenance, material inventories, personal diaries and Bluetooth discovery. We built task-specific interfaces and shared SwiftUI packages for use across the product family.

Boat 4DAT

Vessel maintenance, from recurring plans to recorded costs.

Boat 4DAT organises maintenance around vessels, onboard systems and equipment. Owners can review upcoming work, open the relevant task and return to completed service records. Fleet reporting separates maintenance costs by category and task status.

Boat 4DAT: Maintenance task details.

Maintenance task details

A task retains its status, priority, due date and source plan, with a reference to the vessel, system or equipment being serviced. This keeps the work tied to a specific asset.

Boat 4DAT: Recurring maintenance plans.

Recurring maintenance plans

Recurring plans define service intervals and the equipment they apply to. When work is due, the plan provides the basis for a maintenance task.

Boat 4DAT: Cost categories.

Cost categories

Parts, labour and external services appear as separate cost categories. The report also breaks costs down by task status, connecting the fleet total to the work recorded underneath it.

HW 4DAT

Properties, repairs and bills in one maintenance record.

HW 4DAT gives each property its own repair tasks, improvement projects, utility accounts and maintenance plans. Owners can review work across several homes, then open the costs, photos and scheduled payments for a specific property.

HW 4DAT: Property portfolio.

Property portfolio

The portfolio summarises properties, open tasks and overdue or high-priority work. Each property leads to its own records, so the overview does not replace the detail needed to organise repairs.

HW 4DAT: Project photos and tasks.

Project photos and tasks

Project photos sit alongside estimated and actual costs, task counts and milestones. The visual record remains part of the project being planned and tracked.

HW 4DAT: Bill details and recurrence.

Bill details and recurrence

A bill stores the amount, currency, due date, property and account reference. Recurrence settings and scheduled entries keep repeated payments attached to the original bill record.

RF 4DAT

Bluetooth discovery with saved scans and location history.

RF 4DAT combines live Bluetooth LE discovery with a record of previous scans. Device lists retain signal and connection information; saved sessions add time and location. Period charts summarise scanning activity and the number of devices detected.

RF 4DAT: Bluetooth signal radar.

Bluetooth signal radar

The live radar places detected Bluetooth LE devices around the current scan. Filters and device lists provide access to individual signal readings and connection information.

RF 4DAT: Saved scan context.

Saved scan context

A saved scan retains its timestamp, location source and detected devices. Automatically recorded coordinates can be associated with a named location for later reference.

RF 4DAT: Scanning activity by period.

Scanning activity by period

Period charts show scans per day or the average number of detected devices. Switching the measure and time range gives a summary of activity across saved sessions.

BP 4DAT

A blood-pressure diary with measurement history and PDF reports.

BP 4DAT stores readings entered by the user, together with their time and measurement context. Individual records feed period summaries and charts. A PDF export makes the selected history available outside the application.

BP 4DAT: Systolic and diastolic values.

Systolic and diastolic values

Systolic and diastolic pressure are entered in separate fields, with pulse available as an additional value. The entry flow also records when the measurement was taken.

BP 4DAT: Measurement details and context.

Measurement details and context

A saved reading includes device, measurement-site and method information, plus notes. These details preserve the circumstances of the entry when the user returns to it later.

BP 4DAT: Chart and PDF report export.

Chart and PDF report export

The chart supports inspection of individual readings within the selected period. PDF export creates a report that can be saved, shared or printed from the phone.

PVC 4DAT

PVC projects, material stock and shopping lists.

PVC 4DAT connects construction templates, pipe and fitting inventory, and individual projects. Each plan defines material and cutting requirements. The project tracks progress, while its shopping list identifies the quantities still missing from stock.

PVC 4DAT: Plan and bill of materials.

Plan and bill of materials

A template defines the construction and its bill of materials, including fitting types, pipe sizes and quantities. Consumables and cutting requirements extend the plan into a preparation list.

PVC 4DAT: Project status and photos.

Project status and photos

The project retains its source plan, moves through planned, in-progress and completed states, and stores photos at each stage. Material preparation and the record of the work stay linked.

PVC 4DAT: Shopping list from inventory gaps.

Shopping list from inventory gaps

The shopping list compares required and available quantities. Fittings are counted in pieces, pipes by length, and consumables remain a separate list drawn from the plan.

Cat 4DAT Health

Dated observations and separate histories for each cat.

Cat 4DAT Health is a litter observation diary for people caring for one or several cats. Photos, tags and notes form a timeline for each animal. Weekly summaries, profile groups and veterinary contacts organise the recorded information.

Cat 4DAT Health: New litter observation.

New litter observation

An observation can combine a photo, structured tags and a written note. Tags record what the owner noticed and relevant context, such as a food change, within the same entry.

Cat 4DAT Health: Weekly summaries and recent observations.

Weekly summaries and recent observations

Weekly charts count logged observations, while recent entries retain their tags and notes. The summary is tied to one cat’s recorded history and can be traced back to individual observations.

Cat 4DAT Health: Cat groups.

Cat groups

Groups organise several cat profiles, for example by whether they live indoors or outdoors. Each group shows its animal count and opens the corresponding list of profiles.

BATT 4DAT

Battery stock, device demand and a power-system learning lab.

BATT 4DAT compares recorded battery stock with the needs of registered devices, including shortages and expiry information. Its separate Circuit Lab lets users explore battery-bank configurations and calculated results in guided learning scenarios.

BATT 4DAT: Purchase forecast and demand.

Purchase forecast and demand

The purchase forecast compares device demand with recorded stock, then shows the shortfall and estimated purchase cost. Users can trace a recommendation to the inventory and devices behind it.

BATT 4DAT: Stock and expiry statistics.

Stock and expiry statistics

Statistics distinguish usable stock, stable stock, items nearing expiry and expired batteries. The demand comparison uses these categories to show the remaining coverage gap.

BATT 4DAT: Circuit Lab calculation results.

Circuit Lab calculation results

Circuit Lab calculates voltage, capacity, usable energy and estimated runtime for the selected series and parallel arrangement. A scenario score and recharge estimate make the effect of the inputs visible.

Across the product family

Shared modules across separate applications.

Interface components, photo viewing and image preprocessing are maintained as separate packages. Applications reuse these modules while retaining their own data models, screens and device integrations.

4DATUI
A shared SwiftUI design package for the application family.
4DATPhotoViewer
Reusable photo viewing for image-based workflows.
VisionPipeline
Image preprocessing and recognition with native imaging frameworks and Python.
Additional development scope

Photo organisation, a book companion and display recognition.

PHOTO 4DAT

Photo import and organisation by category and tag, with text recognition and a File Provider extension for file access.

Spartan Code Red

A book companion for memories, reflection and chapter content. The native implementation includes speech tools, CryptoKit and Keychain.

VitalDisplayOCR

Model training in Python and an iOS Core ML test application for recognising values on a medical monitor display.

Technology stack

The technology across the 4DAT family.

Shared native components and application-specific integrations.

Native interface and shared packages

SwiftUI implements the interfaces, with shared UI and photo packages. HW and PVC use Swift 6; Cat 4DAT Health has a separate package for processing observation patterns.

  • Swift
  • Swift 6
  • SwiftUI
  • Observation (Swift)
  • Swift Testing
  • Swift Package
  • 4DATUI
  • 4DATPhotoViewer

Local records and cloud data

SwiftData stores local records in most of the applications. BATT uses SQLiteData from Point-Free with CloudKit for its data layer.

  • SwiftData
  • SQLiteData (Point-Free)
  • CloudKit

Signals, maps and charts

RF uses CoreBluetooth for discovery and CoreLocation with MapKit for scan locations. Swift Charts builds the reporting views in Boat, RF, BP and Cat 4DAT Health.

  • CoreBluetooth
  • CoreLocation
  • MapKit
  • Combine
  • Swift Charts

Photos and recognition

PhotosUI supports photo workflows. PVC uses Vision and AVFoundation; PHOTO includes OCR and a File Provider extension. Spartan Code Red integrates Speech, CryptoKit and Keychain.

  • PhotosUI
  • Vision
  • AVFoundation
  • File Provider extension
  • Speech
  • CryptoKit
  • Keychain

Accounts, purchases and notifications

BATT and PHOTO integrate Sign in with Apple, with Google Sign-In also in PHOTO. StoreKit supports purchase flows in BATT and BP. BP uses local notifications; Cat Health, BATT and PHOTO include mobile advertising integrations.

  • Sign in with Apple
  • Google Sign-In
  • StoreKit
  • StoreKit 2
  • UserNotifications
  • Google Mobile Ads
  • AdMob
  • UMP

Model training and image processing

VitalDisplayOCR combines Python model training with an iOS Core ML tester. VisionPipeline handles image preprocessing through Core Image, Core Graphics and ImageIO.

  • Python
  • PyTorch
  • OpenCV
  • NumPy
  • Core ML
  • Core Image
  • Core Graphics
  • ImageIO
Your native application

Plan the first version of your iOS application.

We help define the user workflow, data storage and device integrations, then agree the implementation scope. For several related products, we identify which components can be shared and which need their own design.

Discuss your iOS product