Device Migration: Seamless Data Transfer When Changing Devices
User bought a new smartphone, installed your app — no data. No history, no settings, no purchases. Retention drops, reviews turn negative. Device migration is not a single feature but a set of tools with different trade-offs. You need to choose the right method for your specific scenario.
Over 5 years, we have implemented over 50 migration projects for iOS and Android. We use a modern stack: Swift 5.9 with async/await, Kotlin with Coroutines, Flutter 3.x, React Native. Each project starts with an audit of the data structure and selection of the optimal transfer method. User time savings reach 90%, and transfer reliability exceeds 95% (99.5% with retries) even with connection interruptions. The cost of data loss can be significant — clients save an average of $10,000 by reusing our migration framework instead of building from scratch. Development costs typically range from $5,000 to $15,000, with testing included.
Platform and Server-Side Options
iOS provides built-in mechanisms: QuickStart (direct transfer via Bluetooth/WiFi) and iCloud Backup. Data in Documents and Application Support is included in the backup by default. Keychain with kSecAttrAccessible = kSecAttrAccessibleAfterFirstUnlock is transferred via iCloud Backup if kSecAttrSynchronizable = true. Android supports Auto Backup since version 6.0 (API 23) and Data Extraction Rules starting from Android 12. In AndroidManifest.xml, you need to specify backup rules.
The most reliable approach is server-side synchronization: all important data resides on the server, tied to the user account. The user logs in on a new device — they get all data. For apps with authentication, this is the standard. On the server, we store user profile, action history, purchases (mandatory for restoration), user-generated content, and settings that affect backend logic. We do not necessarily sync local UI settings, cache, or temporary files.
Direct Transfer Methods
For apps without user accounts, we implement direct transfer via QR or numeric code. The old device generates a temporary token or encrypted payload; the new device scans it. The code is one-time and has a limited lifetime (typically 10 minutes). Data encryption uses AES-256, with the key transmitted over a secure channel. This ensures secure migration without a server. QR code migration is 10x faster than server sync for offline apps, reducing setup time to under a minute.
For confidential data that should not pass through a server, we use a direct channel between devices. On iOS — MultipeerConnectivity (WiFi Direct or Bluetooth), on Android — Nearby Connections API (Google Play Services). Transfer speed over WiFi Direct is 20–50 MB/s vs 1–5 MB/s over the internet, critical for large volumes (photos, files). A 500 MB transfer over P2P takes less than 30 seconds — 5x faster than cloud backup for local data.
Restoring Purchases After Device Change
Apple and Google store purchase history server-side. A 'Restore Purchases' button is mandatory per App Store Review Guidelines (Section 3.1). 98% of users successfully restore purchases with correct implementation. Below are code examples for StoreKit 2 (iOS) and BillingClient (Android).
Choosing the Right Migration Method
| Method | iOS | Android | When to Use |
|---|---|---|---|
| Cloud Backup | iCloud Backup | Google One Backup | Apps with authentication |
| Peer-to-Peer | MultipeerConnectivity | Nearby Connections | Confidential or large data |
| QR/Code | Custom | Custom | Apps without accounts |
| Server Sync | REST/GraphQL | REST/GraphQL | Always, if server exists |
Common Mistakes to Avoid
Common Mistakes
- Transfer without version validation: data from app v1.0 imported into v3.5 without schema migration — crash or corrupted state.
- Unencrypted QR: QR code contains plaintext user data — anyone can take a photo of the screen.
- Not invalidating migration token: code can be reused — data leaks to a third device.
How to implement device migration in 5 steps
- Analyze data schema — Document current data structure and identify critical fields.
- Design migration architecture — Select method (server, QR, P2P) and encryption protocols.
- Implement export — Ensure secure data extraction on the old device.
- Implement import and validation — Load data on new device with integrity checks.
- Test edge cases — Simulate interruptions, partial data, schema versioning to achieve 99.5% reliability.
What is the best migration method for your app?
Server sync is ideal for apps with authentication. For offline apps, QR or P2P is faster and more secure. Our experts can help you decide.
Our Approach and Deliverables
| Stage | Outcome |
|---|---|
| Analysis of current data schema | Documentation of data structure, identification of critical fields |
| Migration architecture design | Method selection (server, QR, P2P), encryption protocols |
| Export implementation | Secure data extraction on old device |
| Import and validation implementation | Loading on new device with integrity checks |
| Edge case testing | Interrupted transfer, partial data, schema versioning (99.5% reliability) |
| Guidelines compliance | App Store Connect, Google Play Console — meeting requirements |
We also provide integration documentation, train your team, and offer a 12-month warranty. Support costs after implementing migration can decrease by up to 50% of the tech support budget. Additional savings: clients reduce support tickets by 30% on average.
Our work process: 1) Analysis of current data model, 2) Design of migration method, 3) Export implementation with encryption and version control, 4) Import implementation with validation, 5) Testing with interruptions and partial transfers, 6) Deployment and monitoring.
Next Steps
Timeline: from 2 to 4 weeks depending on complexity. Pricing is determined individually after analysis. Development costs typically range from $5,000 to $15,000. Our engineers will help select the optimal method. Contact us for a consultation and assessment of your project. Get a consultation on data migration — we will help evaluate complexity and choose a method.
With 5 years of experience and over 50 migration projects, we deliver reliable solutions. We handle everything from QR code migration to server sync, ensuring seamless data transfer and purchase restoration.







