ShoeTracker

ShoeTracker Help

28 entries

Activities

How do my running activities get into the app?

ShoeTracker automatically imports running and walking activities from Apple Health (HealthKit).

Automatic import:

  • On app launch, the last 30 days are imported
  • New workouts are detected in real-time via Background Delivery
  • Pull-to-refresh in the Activities view triggers a manual sync

Load older activities:

  • Tap Load older workouts in the Activities view
  • Choose: 3 more months, 1 year, or the entire history

Sources:

  • Apple Watch, iPhone (native workouts)
  • Strava, Nike Run Club, Garmin Connect (via HealthKit sync)
  • Any other app that writes workouts to Apple Health
How do I assign an activity to a shoe?

Single activity:

  1. Go to the Activities view
  2. Find the unassigned activity (“Unassigned” section)
  3. Tap Assign
  4. Choose the matching shoe — the app automatically suggests the most likely one

Multiple activities at once (bulk mode):

  1. Tap Select in the top left
  2. Select all desired activities via checkbox
  3. Tap Assign Shoe in the action bar at the bottom
  4. Choose a shoe — all selected activities are assigned

Tip: For older activities, retired shoes are also offered if they were active at the time of the activity.

What does 'Ignore' mean for an activity?

Some imported workouts don’t need a shoe assignment — e.g. treadmill workouts, test recordings, or duplicate entries.

To ignore an activity:

  • Swipe left → Tap Ignore
  • Or in bulk mode: Select activities → Ignore

Ignored activities:

  • Appear in the collapsed “Ignored” section at the bottom of the list
  • Do not count toward statistics or wear calculations
  • Can be restored at any time (swipe → Restore)
I see duplicate activities — what can I do?

Duplicates occur when multiple apps report the same run to Apple Health (e.g. Apple Watch + Strava).

Solution: Manage sources

  1. Go to Settings → HealthKit Sources
  2. You’ll see all detected sources with workout counts
  3. Disable the source you don’t want to use

Disabled sources are automatically marked as “Ignored” on the next import. Existing duplicates can be manually hidden via swipe → Ignore.

Catalog

What is the shoe catalog?

ShoeTracker includes a built-in catalog with over 2,300 running shoe models from 26 brands:

adidas, Altra, ASICS, Brooks, Columbia, Craft, HOKA, Karhu, KEEN, La Sportiva, Lowa, Lunge, Merrell, Mizuno, New Balance, Nike, On, Puma, Reebok, Rykä, Salomon, Saucony, SKECHERS, Topo Athletic, True Motion, Under Armour

What is the catalog for?

  • Automatic matching during photo recognition (brand + model → catalog match)
  • Default lifespan per model
  • Auto-complete when adding a shoe

The catalog can be browsed via the Catalog Browser (activatable in Developer Options).

Getting Started

What is ShoeTracker and why do I need the app?

ShoeTracker helps you manage the lifecycle of your running shoes. The app tracks how many kilometers each shoe has run, recommends the best shoe daily based on rotation and wear, and warns you when it’s time to replace a shoe.

Core features:

  • Automatic import of running activities from Apple Health
  • Daily shoe recommendation with smart rotation algorithm
  • Wear indicator with lifespan tracking
  • Photo recognition of shoe boxes for quick setup
  • iCloud sync between iPhone, iPad, and Mac
How do I add my first shoe?
  1. Tap + in the Shoes view
  2. Take a photo (optional): Photograph the shoe box — the app automatically recognizes brand, model, size, and article number
  3. Complete details: Name, brand, and model are pre-filled if recognition was successful
  4. Initial mileage: If the shoe has already been worn, enter the existing kilometers — this ensures the wear indicator is accurate from the start
  5. Add tags (optional): e.g. “Tempo”, “Long Run”, “Trail” — this improves recommendations
  6. Tap Save

Tip: Photograph the side label of the box — that’s where all the relevant information is.

What happens on first app launch?

On first launch, a three-step onboarding guides you through setup:

  1. Welcome — Brief introduction to the app
  2. How it works — Explanation of photo recognition
  3. Permissions — Access to HealthKit (for running activities), notifications, and iCloud

All permissions are optional — the app works without HealthKit, you’d just need to enter activities manually.

iCloud & Sync

How does iCloud sync work?

ShoeTracker syncs all data automatically via iCloud:

What’s synced:

  • All shoes (including photos, tags, notes)
  • All activities and assignments
  • Your profile and settings
  • Planned runs

Requirements:

  • iCloud account signed in on the device
  • iCloud Drive enabled
  • Internet connection (sync happens in the background)

Check sync status: Settings → iCloud shows the current status:

  • 🟢 Connected — everything synced
  • 🟠 Not signed in — local data only
  • ⚪ Checking… — establishing connection

Important: After initial setup on a new device, it may take a few minutes for all data and photos to sync.

I have duplicate shoes after sync — what to do?

Duplicate entries can occur during initial sync between devices. ShoeTracker runs an automatic dedup pass on every launch that merges identical entries.

If duplicates persist:

  1. Close the app on all devices
  2. Wait 1–2 minutes (let CloudKit sync complete)
  3. Open the app — the dedup pass runs automatically

Manual deletion: If automatic deduplication doesn’t work, you can delete the duplicate shoe in the detail view. Only the shoe and its photos are deleted — activities are kept and shown as “unassigned” again.

Photo Recognition

How does shoe box recognition work?

When you photograph a shoe box while adding a shoe, it goes through a multi-stage recognition pipeline:

Phase 1 — Text Recognition (Vision) Extracts all visible text and detects barcodes (EAN/UPC) on the box.

Phase 2 — AI Analysis (On-Device) A local language model interprets the recognized text and extracts: brand, model, size, color, article number, category.

Phase 3 — Cloud Fallback If the local AI couldn’t identify brand or model, an anonymous request is sent to a cloud service.

Phase 4 — Catalog Match The result is matched against the shoe catalog (2,300+ models) to add lifespan and other details.

Tip: Photograph the side label with all sizes and the article number for best results.

What do the confidence values mean?

After recognition, the app shows a confidence value:

ValueColorMeaning
High🟢 GreenBrand and model reliably recognized, found in catalog
Medium🟡 YellowPartially recognized, please verify
Low🔴 RedUncertain, manual correction recommended

Common reasons for low confidence:

  • Blurry photo
  • Covered or damaged box
  • Model not in catalog (very new or rare shoes)
  • Photo shows wrong side of the box

You can always manually correct the recognized values before saving.

Which photo gives the best recognition results?

Best:

  • 📦 Side label of the box — contains all sizes, article number, EAN barcode
  • 🏷️ Tongue label — often contains size, model name, and article number

Good:

  • 📦 Box lid with model name and brand logo
  • 📱 Screenshot of order confirmation

Less suitable:

  • 👟 Photo of the shoe itself (no text information)
  • 📦 Box bottom (usually only barcode, little text)

Tips:

  • Good lighting, no shadow on the label
  • Hold box straight, not at an angle
  • Multiple photos from different sides provide combined results

Planning

How does run planning work?

The Planning view shows recommendations for your next three runs:

  • Next Run — today or tomorrow
  • Run #2
  • Run #3

Important: The app simulates forward! When Shoe A is recommended for today, tomorrow’s recommendation accounts for Shoe A being “worn today”. This gives you a realistic rotation across multiple days.

For each day you can:

  • Use — accept the recommendation
  • Swap — choose a different shoe
  • Remove — delete the planned entry
What's the difference between 'Suggested' and 'Pinned'?

Suggested (lightbulb icon, yellow):

  • Automatic recommendation from the algorithm
  • Changes when you accept other days or your shoes change
  • Confirm with “Use”

Pinned (pin icon, orange):

  • You manually selected a shoe for this day
  • Stays fixed until you remove or swap it
  • Is considered when planning subsequent days (simulated as “worn”)

Recommendations

How does the shoe recommendation work?

The app scores every active shoe using three strategies and recommends the highest-scoring one:

1. Rotation (default: 30%) Prefers shoes you haven’t worn recently. A shoe unused for 2 weeks scores higher than one worn yesterday.

2. Workout Match (default: 40%) Matches shoe tags with the planned workout type. A shoe tagged “Tempo” scores higher when a tempo run is planned. Without tags or plan, all shoes score equally.

3. Wear Priority (default: 30%) Prefers shoes closer to their lifespan limit — so they get fully used before retirement. A shoe at 80% scores higher than one at 20%.

Additionally: The consecutive-days filter prevents the same shoe from being recommended too many days in a row (configurable in Settings).

You can adjust the strategy weights in Settings → Recommendations → Strategy Weights.

What do the strategy weights do and how do I adjust them?

Under Settings → Recommendations → Strategy Weights you’ll find three sliders:

StrategyDefaultIncrease when…
Rotation30%You want every shoe used evenly
Workout Match40%You have specialized shoes with tags
Wear Priority30%You want to “use up” shoes before replacement

Example scenarios:

  • Only 2 shoes, no tags: Set Rotation to 70%, Workout Match to 0%, Wear to 30%
  • Specialized collection: Set Workout Match to 60%
  • Use all equally fast: Set Wear to 60%

Percentages automatically normalize to 100%. You can reset to defaults at any time.

What does 'Max consecutive days' mean?

This setting determines how many consecutive days the same shoe can be recommended.

Default: 2 days

This means: If a shoe was worn on 2 consecutive days, it’s excluded on the third day — even if its score is highest.

Why is this important? Running shoes need recovery time. The cushioning regenerates when the shoe isn’t stressed for 24–48 hours. This extends the lifespan.

Change the setting: Settings → Recommendations → Max consecutive days (1–7)

Settings

How do I switch between kilometers and miles?

Settings → Profile → Unit System

  • Metric — Kilometers (km) and Kilograms (kg)
  • Imperial — Miles (mi) and Pounds (lbs)

The setting affects all displays: Dashboard, statistics, activities, wear indicator. Stored data remains unchanged — only the display changes.

On first launch, the unit system is automatically chosen based on your device’s regional settings.

Can I switch between Dark Mode and Light Mode?

Yes! Under Settings → Profile → Appearance you’ll find three options:

  • ☀️ Light — always light background
  • 🌙 Dark — always dark background
  • System — follows the iOS setting (default)

The setting applies immediately to the entire app.

Why does the app ask for my body weight?

Body weight factors into the lifespan calculation of your shoes. Heavier runners wear out the cushioning faster than lighter ones.

Impact:

  • Without weight: Default lifespan from the catalog (e.g. 800 km)
  • With weight: Adjusted lifespan based on load

The entry is completely optional. You can change or remove it at any time under Settings → Profile → Body Weight.

Your weight is stored locally and in your iCloud account — it never leaves your device.

Shoes

What does the colored ring next to my shoe mean?

The WearRing shows your shoe’s wear status as a progress ring:

ColorStatusMeaning
🟢 GreenNewUnder 20% of lifespan used
🔵 BlueGood20–60% used
🟠 OrangeWarning60–100% used — replace soon
🔴 RedReplaceLifespan exceeded

The fill level corresponds to the exact percentage (e.g. half filled = 50%). The lifespan is based on the default value from the shoe catalog (usually 800 km) or your manually set value.

How is a shoe's lifespan calculated?

The lifespan is measured in kilometers and based on:

  1. Catalog value: Each model in the shoe catalog has a default lifespan (usually 700–1000 km)
  2. Manual override: You can set a custom lifespan in the shoe details
  3. Body weight (optional): If you enter your weight in Settings, the lifespan is adjusted — heavier runners wear out shoes faster

Calculation:

  • Total km = imported activities + initial mileage
  • Wear ratio = total km ÷ lifespan
  • Over 100% = the shoe should be retired
How do I retire a shoe?
  1. Open the shoe’s detail view
  2. Tap Edit
  3. Scroll down to Retire
  4. Choose the retirement date

Retired shoes:

  • Appear under the “Retired” filter in the shoe overview
  • Are shown at 60% opacity
  • Are not part of daily recommendations
  • Can still be assigned to older activities if the activity date falls within the shoe’s active period

You can reactivate a shoe at any time.

Can I exclude certain shoes from recommendations?

Yes! In Shoe Details → Edit you’ll find the option Exclude from Rotation.

Excluded shoes are not considered for daily recommendations — unless their tag (e.g. “Trail”) matches the planned workout type.

Example: Your trail shoe is excluded from rotation. But when you plan a trail run, it’s still recommended because the “Trail” tag matches the workout type.

What are tags and how do I use them?

Tags help the app recommend the right shoe for the right workout type.

Useful tags:

  • Tempo — for tempo runs and intervals
  • Long Run — for long distances
  • Trail — for off-road runs
  • Race — for competitions
  • Recovery — for easy runs

How it works:

  1. Open a shoe → Tap Tags
  2. Select existing tags or create new ones
  3. The Workout Match strategy (40% weight) matches tags with the planned workout type

Without tags, all shoes get the same Workout Match score.

Statistics

What does the Dashboard show?

The Dashboard gives you a quick overview:

Today’s Pick The shoe recommendation for today with photo, name, and rationale (e.g. “least recently used”).

Lifespan Warnings Shoes at 80%+ wear. Orange = Warning, Red = Replace recommended.

Unassigned Workouts Recent unassigned activities — tap to quickly assign a shoe.

Statistics

  • Total kilometers across all shoes
  • Number of active shoes
  • Kilometers this week
  • Total number of runs

Recent Activities The 5 newest activities with shoe assignments.

Can I export my data?

Yes! Under Statistics you’ll find an export function:

  • Shoes as CSV — Name, brand, model, purchase date, price, km, wear%, category
  • Activities as CSV — Date, time, distance, shoe, duration, source app

CSV files can be shared via the system Share Sheet (AirDrop, Mail, Files, etc.).

Tip: Import the CSV into Numbers or Excel for custom analysis.