/ home  ›  apps  ›  liftcortex
LiftCortex app icon

LiftCortex

A focused iOS training companion for lifters, athletes, and gym-goers. Plan splits, log sessions, track macros, countdown to show day — and run it all from your wrist.

Built for execution, not subscription churn.

LiftCortex started as a family project: my son Jonathan signed up for his first bodybuilding competition and needed better tooling than what existed — something to plan split routines, log sessions, hit protein targets, and count down to show day. It grew into a full training companion for iPhone, Apple Watch, and the home screen.

Everything runs on-device. No account. No subscription. iCloud sync handles backup; AppGroup snapshots feed the watch and widgets; share links let you import a friend's split with one tap. The app ships in 11 languages and four product variants (LiftCortex, LiftCortex No Ads, CountdownCortex, and CountdownCortex No Ads — a focused spin-off for users who only want the countdown features).

What it does.

📋

Workout Splits

Build templated routines, log multi-set sessions with weight, reps, and notes. Rest timers, plate calculator, 1RM estimator, and celebration screens after a PR.

🥩

Macro Tracking

Daily intake against calorie/protein/carb/fat targets, streaks, meal-name history, and a calorie-ring widget. Built for cuts, bulks, and contest prep.

Countdown Events

Custom icons, colors, and photos with crop/pan editor (rect/square/circle). Progress bars and percent displays for show day, deadlines, or any milestone.

Apple Watch + Smart Stack

Native watchOS 10 companion with Workouts, Macros, and Countdowns. Smart Stack widget surfaces your next event automatically. Crown-driven macro entry.

☁️

iCloud Backup & Restore

Automatic sync with merge-or-replace import. No account creation, no server-side data. Your training history is yours.

🔗

Share Imports

One-tap import for splits sent by link. Session recap cards for messaging or social. Countdown event sharing.

🌍

11 Languages

Localized via Swift String Catalogs with auto-extraction. Tested across right-to-left, declension-heavy, and CJK scripts.

Customizable Everything

Reorder features. Toggle units (lbs/kg). Move the nav top or bottom. Swap accent colors and contrast modes. Bring-your-own logging style.

How it's built.

A multi-target Apple monorepo with the iPhone app as the SwiftData source of truth. The watch and widget extensions receive read-only snapshots through AppGroup files and WatchConnectivity — no server in the loop, no shared write surface to fight over. XcodeGen generates the project from a single project.yml so all four product variants stay in lockstep.

Targets

  • iPhone app — primary SwiftData container
  • Watch extension — companion via WatchConnectivity
  • Widget extension — Smart Stack + home-screen widgets
  • 4 schemes — Lift / LiftNoAds / Countdown / CountdownNoAds

Data Flow

  • SwiftData on-device persistence
  • AppGroup snapshots feed widgets
  • WatchConnectivity bidirectional sync
  • iCloud backup + restore
  • Share links import flow

Release Pipeline

  • XcodeGen project regeneration
  • Bash preflight + release scripts
  • Automated marketing screenshots (iPhone 5.5/6.5/6.9", iPad 12.9/13", Watch 40–49mm)
  • App Store update check at launch

Tech.

Language & UI

  • Swift 5 (toolchain bumping toward Swift 6 strict concurrency)
  • SwiftUI with custom design system
  • iOS 17+ / watchOS 10+ / iOS 18 native Tab()

Apple Frameworks

  • SwiftData
  • WidgetKit
  • WatchConnectivity
  • StoreKit 2 (IAP)
  • String Catalogs (.xcstrings)

Monetization

  • Google Mobile Ads SDK (AdMob + UMP)
  • StoreKit 2 in-app purchase
  • No-ads variants for paid users

Build & Ship

  • XcodeGen (project.yml as source of truth)
  • Bash release pipeline + preflight
  • Automated screenshot orchestration

Localized to

English Spanish French German Italian Portuguese (BR) Dutch Polish Japanese Korean Simplified Chinese

What's been shipping.

Internationalization to 11 languages

String Catalogs auto-extraction, RTL/CJK polish, pluralization rules, and translation auditing across the full feature set.

watchOS Smart Stack countdown widget

New extension surfaces the next countdown event in Apple's Smart Stack with AlwaysOn timeline throttling.

iOS 18 native Tab() adoption

Migrated the navigation chrome to the new Tab API. Tab bar polish and iPad-width optimizations.

App Store update check + review prompts

Polite, non-blocking version check at launch and a contextual review prompt on positive moments.

Settings refactor & release asset pipeline

Settings split into per-section subviews; marketing screenshot capture orchestrated end-to-end.