Apricity: launching a health app—and evolving it beyond the MVP
3.5 months
to pilot~70%
faster app start12–18%
less developer time required3.5 months
to pilot~70%
faster app start12–18%
less developer time requirediOS, Android, Web
React, Ruby on Rails, Capacitor
Have a similar product challenge?
DISCUSS YOUR PROJECTThe Apricity team came to SmithySoft® with the concept for a health app they wanted to launch across iOS and Android.
We built the product from the ground up, brought the first pilot to users in 3.5 months, and continued evolving it as new requirements emerged after launch.
About the product
The app helps people track health data over time, bring different health signals into one place, and make patterns easier to understand.
It is particularly useful for people managing ongoing or chronic health concerns, where symptoms, vital signs, medications, activity, sleep, and other factors become more meaningful when viewed over time rather than as isolated entries.
Users can explore trends and relationships across their health data, synchronize supported data through HealthKit and Health Connect, receive reminders, and generate reports from their history.
A web-based administrative environment gives the client team direct control over selected product and support operations.
The challenge
The MVP already needed to bring together health tracking, user histories, analytics, notifications, reporting, subscriptions, and external integrations across both iOS and Android.
The first pilot was ready in 3.5 months.
As the product expanded, the engineering constraints changed.
New tracking capabilities were added, the number of supported data types increased, and the analytics layer became more complex. Some views needed to work across months of historical information and multiple health parameters.
As the product expanded, more data had to be prepared when users opened the app—from account and app settings to tracker, calendar, and chart data. The first screen was waiting for multiple data requests to complete before users could start.
As those datasets grew, initial loading reached 7–20 seconds.
The client team also needed more direct control over recurring product changes and checks, so they could make small adjustments, review account information, and respond to day-to-day needs without routing each request through the development team.
The next phase was about making the product faster for users and easier for the client team to operate as its scope grew.
The solution
One application across iOS and Android
We built the mobile app in React for iOS and Android, supported by a Ruby on Rails backend.
A shared codebase allowed core functionality to evolve across both platforms while still supporting their mobile-specific requirements.
Keeping performance ahead of product growth
As new tracking capabilities and analytics were added, more data requests became part of the initial app load.
We changed the loading model so only the data needed for the first screen has to complete before it appears. The remaining product data continues loading in the background.
We changed the loading model so the app retrieves only the data needed to show the first screen. The remaining data loads separately in the background.
Initial load time fell from 7–20 seconds to 2–6 seconds—about a 70% reduction.
Settings, tracker history, charts, calendar data, and content continue loading separately in the background.
This means users can reach the first screen much sooner while the rest of the product data continues loading behind it.
Giving the client team more direct control
We also built a web-based admin environment that gives the client team direct control over routine product and support operations.
The team can review user and account activity, manage subscription-related issues, and make selected product configuration changes directly.
Small changes that previously required coordination with the development team can now be handled by the client team in minutes. Subscription status and other account information can also be checked directly without waiting for developer support.
This reduced developer time spent on routine client requests by 12–18%, while allowing the client team to handle more day-to-day product changes and support tasks directly.
Connecting the product to the wider ecosystem
The product integrates with HealthKit and Health Connect for supported health-data synchronization, alongside the services needed for subscriptions, notifications, reporting, and content delivery.
Published content and user guidance are also available directly inside the app through API integrations.
Planning the path toward HIPAA compliance
We reviewed the platform against HIPAA-related technical and operational requirements and prepared a roadmap for the client's next compliance steps.
The roadmap identified the areas to address as the product moved toward HIPAA compliance and gave the team a clear sequence for that work.
The results
The pilot gave the client a working product to test with users—and a foundation for deciding what to build next. Based on what the team learned, existing functionality was refined and the product expanded with new tracking capabilities, richer analytics, reporting, and additional integrations.
As the product expanded, users could reach the app much faster even as more tracking, analytics, and historical data were added.
The client team could also handle more routine product changes and customer support requests directly, resolving many issues faster without involving developers.
What began as an MVP build became an ongoing product-engineering engagement: testing assumptions, learning from real use, expanding the product, and adapting the underlying system as its requirements changed.
Working through a similar product or platform constraint?
We help launch new products and evolve existing ones without defaulting to a rebuild.
