perfectdesign.

Activity and habits

Fitness and wellness app development

Recording what someone did, delivering a programme and showing progress are ordinary software problems. The wording around them is what decides whether you are still building ordinary software.

In short

Decide first what the product is. A record of what someone did and a programme they follow are software problems we can scope. A claim about a health outcome is a different regime with evidence, review and regulatory obligations attached, and we do not build medical, clinical or diagnostic software. After that the work is mostly data discipline: where each record came from, what permission it needed, who inside your business may see it, and what happens when a member withdraws consent or deletes their account.

Written for a business owner or product lead deciding whether a fitness or wellness app should record activity, deliver coaching or handle sensitive personal data · 7 min read

Is it a record, a programme, or a claim?

Three things get bundled together in most briefs and are not the same product. An activity or habit record is an observation: a session, a count, a check against something the member said they would do, typed in or read from a device with permission. Coaching content is material you publish, authored by someone you can name. Progress is a presentation of what was recorded over a period the member chose. Keeping them apart is most of the scoping work, since each carries different data, permissions and responsibility.

The boundary that matters is between describing what the software does and describing what happens to a person. Verbs such as record, display, remind and review stay on the software side. Verbs such as diagnose, treat, prevent, cure or improve do not. That is a drafting habit that keeps the boundary visible, not legal, regulatory or clinical assurance, and the final wording belongs to your own advisers.

The platforms draw a similar line. Apple treats health, fitness and medical data as especially sensitive and attaches extra conditions to it. Google Play requires health apps to complete a health apps declaration and publish a privacy policy in the Console and inside the app, expects an app that is not a medical device to carry a clear disclaimer in its listing saying it does not diagnose, treat, cure or prevent any medical condition, and requires an app presenting itself as a medical device to produce approval, clearance or certification on request. Those rules are a quick way to see which product you are proposing.

Six decisions, seen from three positions
DecisionNon-clinical trackingCoaching programmeClinical claim boundary
Activity recordsEntered or imported with permission, stored with its sourceThe same records, read against a published programmeBecomes evidence about a person once a health conclusion is attached
ContentOptional and generic, clearly authoredStructured programmes with a named author and review dateAdvice for a condition needs a qualified author and a review process we do not provide
ProgressWhat was recorded, over a period the member choseCompletion against the programme they joinedSaying progress means a health improvement crosses the line
Device permissionsOptional, with the manual path kept usableOptional, since completion can be recorded by handPlatform health data carries extra restrictions on its use
Sensitive dataCollect only what the feature needsCoach access is a permission decision, never a defaultClinical records are outside what we take on
WordingThe app records and displaysThe app delivers a programme someone else authoredDiagnosis, treatment or outcome claims, which we do not build
Three things people call a fitness app. The first two are software. The third is a regulated product and we do not build it. A full text version follows.

Three things people call a fitness app

Primary-source guidance. The first two are software. The third is a regulated product and we do not build it.

Source: Apple: App Review Guidelines. Reviewed .

Read the graphic as text
  • A record. The user logs what they did
  • A programme. Structured plans a coach designed
  • A claim. Asserting a health outcome or diagnosis
Download this infographic (SVG)

Habits, streaks and what happens on a bad day

Reminders, member-set targets, streaks, badges and weekly summaries are ordinary features with a lot riding on their details. The question worth arguing about is what the app does on the day somebody misses. A streak that resets to zero after one missed day gives that person the least reason to open the app tomorrow, which is the opposite of what the feature is for. Forgiveness rules are cheap: a rest day, a freeze that can be spent, a weekly target instead of a daily one, or counting the total rather than the run. That is a design judgement rather than a research finding, and it is your call rather than a default we pick.

Reminders need the same care. Timing, frequency, quiet hours and switching off one category without losing the rest are the difference between a useful nudge and an uninstall. Shared challenges and leaderboards deserve a separate decision, because they turn a private record into something other members see, which is a consent question before it is a feature.

Half of Malaysia is online nine hours a day. The share online more than nine hours a day went from 38.5% in 2022 to 49.7% in 2024. Another notification is not a neutral addition to somebody’s day. A full text version follows.

Half of Malaysia is online nine hours a day

Published statistic. The share online more than nine hours a day went from 38.5% in 2022 to 49.7% in 2024. Another notification is not a neutral addition to somebody’s day.

Source: MCMC: Internet Users Survey 2024, internet user behaviour. Reviewed .

Read the graphic as text
  • Under 1h: 3.1%.
  • 1 to 4h: 21.5%.
  • 5 to 8h: 25.6%.
  • 9 to 12h: 20.5%.
  • 13 to 18h: 17.1%.
  • Over 18h: 12.1%.

Chart scale: Daily internet use among Malaysian internet users, 2024.

Download this infographic (SVG)

Where each record came from

There are three provenances and they behave differently: typed in by the member, imported from a platform they connected, or read from a wearable. Store the source and timestamp on every record, because the first support message will be why the app says 6,000 steps when the watch says 7,400.

Then decide the conflicts in advance. A phone and a watch both counting the same walk. An import backfilling a day already entered by hand. Set precedence per data type, show the source in the interface, let people correct an entry rather than overwriting it silently, and leave an incomplete record visibly incomplete. Day boundaries need a decision too: what counts as today for someone who flew overnight, and whose time zone decides.

Platform data is borrowed rather than owned. On Android, Health Connect stores and structures health and fitness data for apps the member has granted access to, per data type, and that permission can be withdrawn at any time. Apple asks that HealthKit be used for health and fitness purposes, and its privacy rules ask for an alternative where possible when someone declines access. Both point the same way: the manual path stays usable and nothing breaks when permission is turned off. Progress views should name their source, period and gaps, since a chart that quietly drops three missing days looks like a signal when it is an absence.

Apple's review guidelines require consent before collecting user or usage data, an accessible way to withdraw it, purpose strings describing the actual use, and collection limited to what the feature needs. The privacy policy has to identify what is collected and how it is used, and explain retention, deletion and how consent is revoked. For health specifically, Apple prohibits using or disclosing health and fitness data for advertising, marketing or other use-based data mining, requires the specific health data collected to be disclosed, and does not permit personal health information in iCloud.

Internal access is the part most briefs forget. Which staff role can open a member's log. Whether a coach sees every member or only their own. Whether that access is recorded. What happens when a coach leaves. Who may export. Our position is that defaults should be closed, staff access logged, and an export a deliberate act by a named person rather than a button everyone has.

Who can see a health record. Decide each of these before collecting the first measurement, not after. A full text version follows.

Who can see a health record

Primary-source guidance. Decide each of these before collecting the first measurement, not after.

Source: Apple: App privacy details. Reviewed .

Read the graphic as text

A health record

  • The person. Always, and can export or delete it
  • Their coach. Only what they explicitly shared
  • Support staff. Only with a reason, and it is logged
  • Advertising. Never, and both stores prohibit it
Download this infographic (SVG)

A worked non-medical example

Take a fictional activity journal with an optional, permitted import. The roles and policies are teaching assumptions, and the last column lists observations to collect before sign-off, not results anyone has achieved.

A fictional activity journal, worked through three steps
Workflow stepAssumed actorProposed system responseExceptionAcceptance evidence to collect
Choose data permissionsMemberAccess is requested per data type, with manual entry offered as an equal pathPermission is declined, so the manual workflow stays fully usableConsent wording, permission prompt and denial-path observations on both platforms
Record activityMemberEntries show their source and time, and the summary states the period and any gapsA conflicting or incomplete entry is flagged rather than overwrittenProvenance, duplicate and correction tests, including an import over a hand-entered day
Withdraw access or delete dataMember, with a named support ownerRevocation stops new imports and deletion applies the agreed retention rulesCopies already exported, or records held for an unresolved billing question, need explainingRevocation and deletion observations, with no benefit or certification claimed
Twelve years, four surveys, one direction. Four national surveys, one line. An app cannot move this on its own, and any product that claims it will is selling something it cannot deliver. A full text version follows.

Twelve years, four surveys, one direction

Published statistic. Four national surveys, one line. An app cannot move this on its own, and any product that claims it will is selling something it cannot deliver.

Source: Institute for Public Health: NHMS 2023 key findings. Reviewed .

Read the graphic as text
  • 2011: 44.5%.
  • 2015: 47.7%.
  • 2019: 50.1%.
  • 2023: 54.4%. Past half

Chart scale: Malaysian adults overweight or obese, body mass index 25.0 and above.

Download this infographic (SVG)

What we will not build

We do not build medical, clinical or diagnostic software, and we do not write claims about diagnosis, treatment, prevention or outcomes into anything we do build. We would also decline to read clinical values from phone sensors alone, which Apple names directly when it says apps claiming to measure blood pressure, blood glucose, blood oxygen or body temperature using only the device sensors are not permitted. We do not build products that use health or fitness data to target advertising, and we do not take on research involving human participants without the sponsor's own ethics and consent process.

If your product needs clinical evidence or regulatory clearance, the right partner is one who works inside that regime every day, and we would rather say so in the first conversation.

What the national survey actually found. These are clinical measurements from a national survey, and they are exactly why we will not let an app imply a diagnosis. Encouraging a habit is a product. Interpreting a reading is medicine. A full text version follows.

What the national survey actually found

Published statistic. These are clinical measurements from a national survey, and they are exactly why we will not let an app imply a diagnosis. Encouraging a habit is a product. Interpreting a reading is medicine.

Source: Institute for Public Health: NHMS 2023 fact sheet, non-communicable diseases. Reviewed .

Read the graphic as text
  • Overweight or obese: 54.4%.
  • High cholesterol: 33.3%.
  • Hypertension: 29.2%.
  • Diabetes: 15.6%. A third undiagnosed

Chart scale: Prevalence among Malaysian adults, National Health and Morbidity Survey 2023.

Download this infographic (SVG)

What to bring

Useful first conversations start with the member task, where the data comes from, whether device permissions are optional, the wording you intend to use and who signs it off, who may see member records, and your position on retention and deletion. Bring what you have to the contact page and we will tell you which parts are ready to scope and which need a decision first. Mobile app development covers the platform, backend and ownership decisions underneath it, and accounts and portals covers the membership side that usually comes with a tracking product.

What you get

What is actually delivered

01

A written product boundary

What the app records, what it displays and what it must never claim, agreed before design so the wording is a decision rather than a late edit.

02

Data model with provenance

Every record carries its source, its timestamp and its precedence rules, so manual, imported and device-derived entries can be told apart.

03

Permission and consent design

Per-type access requests, purpose strings that describe the actual use, an accessible withdrawal path and a manual route that stays fully usable.

04

Correction and conflict handling

Duplicates flagged rather than merged silently, incomplete records left visibly incomplete, and an edit path that keeps the original source visible.

05

Habit mechanics you chose

Targets, reminders, streaks and forgiveness rules set deliberately, including what happens on a missed day and what members can switch off.

06

Access control for your staff

Which role can open which member record, whether access is logged, what exports are allowed and what happens when a staff member leaves.

07

Retention and deletion behaviour

What deletion covers, what is retained and why, plus the in-app account deletion both stores expect where accounts exist.

08

A data-exit review before release

A pass over analytics, crash reporting and third-party tools to confirm what leaves the app, since that is where sensitive detail usually escapes.

How it runs

Set the boundary, then build to it

On this subject the expensive mistakes are made in the wording and the data model, months before anyone notices. We settle both first.

  1. 01

    Classify the product

    We work out whether you are building records, a programme or something that carries a health claim, and say plainly if it is the third, which we do not take on.

  2. 02

    Model the data and its sources

    Record types, provenance, precedence, correction paths and day boundaries are defined before any screen, because retrofitting a source label is painful.

  3. 03

    Design consent and access

    Per-type permissions, withdrawal, the manual alternative, staff access rules and logging are agreed with you and written into the scope.

  4. 04

    Build and review the wording

    The interface, notifications and store listing are built against the agreed boundary, with claim wording sent for your own sign-off rather than assumed.

  5. 05

    Test the awkward paths

    Declined permissions, withdrawn access, conflicting imports, incomplete records, a deletion request and what analytics actually sends.

  6. 06

    Launch and maintain

    Store submission on your behalf, then operating-system updates, dependency upgrades and platform policy changes tracked as continuing work.

Proof

Work you can click through

PantryCue is our own React Native app, with live camera scanning, local notifications, an offline pantry and a Cook Mode that reads steps aloud. You can try the web build, and there is an installable Android build; it is not on the App Store or Google Play.

Concept prototypes are labelled as prototypes everywhere they appear. They demonstrate what we can build, not work delivered for that named client. More client work is going live and will be added as it does.

How we work

The parts people ask about before they commit

How we build

React first, other languages when a project needs them

We build in React by preference, on both web and mobile, and we work in other languages when a project genuinely calls for it.

App stores

The accounts stay in your name

Your business owns the Apple Developer and Google Play accounts. We set them up in your name, prepare certificates and signing, and submit builds for you.

  • Apple Developer and Google Play account setup in your name
  • Certificates, signing and provisioning
  • TestFlight and internal test tracks for review builds
  • Store listing preparation and submission on your behalf

Timeline

Project dependent, and often quicker than expected

Timelines are project dependent. A focused build can go live in about a week, while a larger platform takes longer once scope is agreed.

Ongoing care

Quoted with the project, not bolted on

For a more complex website or a system with a real backend, ongoing care starts from RM 250 a month, with the plan confirmed against what was actually launched. Care is quoted with the project, not bolted on afterwards.

Getting hold of us

Normally under one working day

We normally respond to a support request in under one working day, and we work to solve problems as fast as we can. That is how we normally work rather than a contractual guarantee, and responding is not the same as resolving. If your operation needs a formal response or resolution commitment, we can write one into your scope.

Ownership

Everything belongs to your business

You own everything we build for you: the code, the content, the domain, the hosting account and every third-party account opened for the project. There is no lock-in. If you move to another provider, everything goes with you and we help with the handover.

  • Source code, handed over in your own repository
  • Domain and DNS, registered to your business
  • Hosting and every service account, in your name
  • Analytics, search and ad accounts, with us as a manager you can remove
  • All content, media and data in the system

Questions

Asked about fitness and wellness apps

Straight answers to what people ask before they commit. Anything else, message us.

What experience do you bring to a fitness or wellness build?

We build these as custom projects. Our published work is websites, business systems and concept prototypes, which covers accounts, records, roles and admin tooling. That is the engineering a fitness app sits on, and it is the part that decides whether yours works.

Do you build medical or diagnostic apps?

No. We do not build medical, clinical or diagnostic software, and we do not write claims about diagnosis, treatment, prevention or outcomes into an app. If your product needs clinical evidence or regulatory clearance, you need a partner who works under that regime, and we will say so early rather than late.

Can the app connect to Apple Health or Health Connect?

It can read data the member chooses to share. On Android, Health Connect holds health and fitness data and the member grants or withdraws access per data type. Apple asks that HealthKit be used for health and fitness purposes. Either way the access is borrowed and revocable, so the manual path has to keep working.

Can we say the app helps members get fitter?

Not from us. We write what the software does: it records what a member enters or imports, shows it back over a period, and reminds them about a target they set. Outcome wording is a decision for your own advisers, and Google Play also expects an app that is not a medical device to state in its listing that it does not diagnose, treat, cure or prevent any medical condition.

Who can see member records?

Whoever you decide, and the honest default is nobody. Staff access should be granted by role, logged, and reviewed when someone leaves. Apple also prohibits using health and fitness data for advertising, marketing or use-based data mining, so that data should never be feeding a campaign, and we would not build it that way.

What does it cost and how long does it take?

It is quoted against scope rather than sold as a package, and our website packages on the pricing page are the wrong comparison. Timelines are project dependent. On this kind of product the schedule usually turns on how quickly consent wording, staff access rules and the data model are agreed, not on the build.

What happens to member data if we stop working with you?

It stays yours, along with the code, the hosting and every account opened for the project. Records are exportable, accounts are in your name, and we help with the handover. Whatever retention and deletion rules we agreed are documented so the next team can honour them.

Where to go next

Sources

Tell us what you need built

We will show you the closest thing we have already built, then scope the real version against your requirements.