How to Build an Achievement System in Your Mobile App

A new app launches, but retention drops after the second week — an empty progress bar kills motivation. [Gamification](https://ru.wikipedia.org/wiki/Gamification) via an achievement system solves this: every unearned badge compels users to return due to the Zeigarnik effect. Based on our data, a pro

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
How to Build an Achievement System in Your Mobile App
Medium
~2-3 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

A new app launches, but retention drops after the second week — an empty progress bar kills motivation. Gamification via an achievement system solves this: every unearned badge compels users to return due to the Zeigarnik effect. Based on our data, a properly designed system boosts retention by 25–40%, and up to 60% in fitness apps. We draw on implementation experience from 15+ projects, from edtech to fintech. We design the data model on PostgreSQL with atomic transactions — ensuring speed and reliability. An event-driven architecture processes events in milliseconds. Lottie animations keep memory footprint low. As a result, retention grows and users stick around. For example, for a fitness app we implemented achievements and saw completed workouts increase by 60%. Below is the engineering approach we've refined. Apple Human Interface Guidelines recommend progress bars for motivation. Contact us for a project evaluation.

How We Design the Data Model?

Three core entities: Achievement — template with JSON criteria, UserAchievement — progress and unlock date, AchievementEvent — idempotent log. Criteria are stored as JSON: {"event":"workout_completed","count":10} or {"event":"streak_days","count":7}. For storage I prefer PostgreSQL: atomic transactions, ACID, complex queries. Redis works only for caching — lacks persistence. Firebase Firestore is convenient for MVP but expensive at scale. In production we choose PostgreSQL with indexes on (user_id, achievement_id) — delivering performance up to 10k RPS with latency under 100 ms, lookup in 0.1 ms for 1 million records.

Why Event-Driven Validation Is Faster Than Batch?

Characteristic Event-driven Batch recalculation
Reaction time < 1 ms Hours for 100k users
Throughput up to 5000 events/sec Linear on data size
Duplicate protection Atomic UPDATE Requires complex locking
Applicability Real-time gamification End-of-day analytics

Event-driven validation: on each client event, backend increments progress and checks the threshold. Critical — an atomic UPDATE with WHERE unlocked_at IS NULL RETURNING * in one transaction. This prevents double unlocking. Additionally, a unique index on (user_id, achievement_id). Push notification via APNs/FCM is sent immediately after unlock.

How to Implement Unlock Animation Without Lag?

Three states: locked (progress bar), unlocked (full color), newly unlocked (animation). We use Lottie animations — they take 3x less space than GIF and support transparency. For iOS — UIViewPropertyAnimator + Lottie, for Flutter — AnimationController + Lottie widget. In-app badges appear in a common achievement overlay for 2–3 seconds, rare ones (gold/platinum) have a full-screen celebration with confetti (Confetti package on Flutter, CAEmitterLayer on iOS). Average time-to-unlock is 2.5 seconds.

Progress and Showcase: What Not to Hide

The "My Achievements" screen must display locked badges with a progress bar — this motivates. Unlocked ones show the date and share option. We use UIActivityViewController on iOS with custom preview. An unlocked achievement counter in the profile and total XP spur competition. In an A/B test, day-7 retention increased by 28%.

Ready Solution Components

We provide backend (CRUD, logic, analytics), client SDK for iOS/Android/Flutter/React Native, Lottie animations for all 4 levels, push notification setup (APNs/FCM), and Grafana monitoring. For iOS, we integrate StoreKit 2 for in-app purchases; for Android, ProGuard/R8 obfuscation protects our SDK. Support guarantee is 3 months after deployment. Documentation includes API reference and integration guide. Access: deployment on client AWS/GCP or our infrastructure. Training: 2-hour session for your team.

Component Description
Backend CRUD, event-driven validation, analytics
Client SDK For iOS/Android/Flutter/React Native
Animations Lottie for 4 achievement levels
Push APNs/FCM integration
Monitoring Grafana dashboards

Expected Results

In one project, retention rose from 20% to 35% over 30 days; in another, average session length increased by 40%. 90% of achievements are unlocked in the first week. Support cost savings up to 40% due to automation. Typical investment for basic system starts at $4,900, extended up to $12,000. Get a consultation on gamification implementation — contact us.

Timeline

Basic system with 20–30 achievements, event-driven backend, and animation — 2–3 days for client side, 1–2 weeks full cycle. Extended system with custom Lottie animations, categories, sharing, and analytics — 3–4 weeks. Cost is calculated individually.

More details on the implementation process
  1. Audit of current app and gamification goals.
  2. Data model design on PostgreSQL.
  3. Development of event-driven backend with atomic transactions.
  4. Integration of client SDK and Lottie animations.
  5. Testing and deployment with Grafana monitoring.
  6. Post-release support and optimization.

Common Implementation Mistakes

  • Too easy achievements: user loses interest after first 5 minutes. Optimal threshold is 3–5 repetitions for bronze.
  • No progress bar: locked badges without progress indication do not motivate. Always show % or numeric counter.
  • Forgot push notifications: unlock without notification loses viral effect. Set up APNs/FCM immediately after transaction.
  • Non-atomic updates in concurrent environments: under peak loads (e.g., offline sync), duplicates may occur. Always use UPDATE ... WHERE unlocked_at IS NULL and a unique index.

Order an audit of your gamification — we'll find weak points and offer a solution.