Vai al contenuto principale
JobCannon
Tutte le competenze

Mobile Development (iOS / Android / React Native)

Build mobile apps, publish to app stores, optimize UX

⬢ LIVELLO 2Tecniche
+$30k-
Impatto sullo stipendio
10 mesi
Tempo di apprendimento
Difficile
Difficoltà
4
Carriere
In sintesi

Mobile development = building iOS/Android apps for users worldwide. Three paths: native (Swift/Kotlin, best performance, $120-200k), React Native/Flutter (cross-platform, 60-70% code reuse, $100-170k), or hybrid (web wrapper, cheapest but limited). Career: Junior (basic list views, $80-110k) → Mid (offline-first, push notifications, API integration, $120-160k) → Senior (architecture, performance optimization, 60FPS animations, $160-210k) over 8-12 months. App lifecycle: design UI, integrate APIs, implement monetization (IAP/subscriptions), handle app store submissions, monitor crashes with Sentry, track user behavior with AppsFlyer.

Cos'è Mobile Development (iOS / Android / React Native)

Mobile development = building iOS/Android apps. High demand, adds $30k-$55k. Boost: +$30k-$55k

🔧 STRUMENTI ED ECOSISTEMA
React NativeFlutterSwiftSwiftUIKotlinJetpack ComposeXcodeAndroid StudioFirebaseRevenueCatSentryAppsFlyerCrashlytics

💰 Stipendio per regione

RegioneLivello baseMidLivello esperto
USA$95k$145k$200k
UK£55k£85k£130k
EU€60k€95k€145k
CANADAC$105kC$155kC$205k

🎯 Carriere che usano Mobile Development (iOS / Android / React Native)

❓ Domande frequenti

Native (Swift/Kotlin) vs React Native vs Flutter, which should I learn?
Native: Best performance, access to all device APIs, required for complex animations/AR. Swift: 1M+ iOS jobs, strong community. Kotlin: 1M+ Android jobs, also used for servers. React Native: 60% code sharing between iOS/Android, faster iteration, $20-30k cheaper to maintain than two native teams. Skills transfer from web React. Flutter: Dart language (small community), 70% code reuse, beautiful animations out of box, growing demand. For careers: learn React Native if you know JavaScript, learn native if you want max salary/performance.
How do I handle app store rejections?
Apple App Store rejection rate ~25% (most common: missing privacy labels, unclear in-app purchases, inactive features). Avoid: crashing on launch, missing IDFA consent, unclear screenshots. Read the rejection reason carefully, it's specific (e.g. 'Guideline 4.3: Design spam'). Fix, resubmit within 24-48 hours. Google Play is more lenient (rejection rate ~5%) but enforces tighter data privacy. Both: no promise of 'faster loading' without proof, no fake ratings, no bait-and-switch paywalls.
How do I implement push notifications properly?
iOS: request user permission (UIUserNotificationSettings), use APNs (Apple Push Notification service) with certificates/keys, handle token refresh. Android: Firebase Cloud Messaging (FCM) is standard, token rotates automatically. Server: send payload (title, body, custom data) to token. Client: handle tap (open deep link) and background receive. Common mistakes: not requesting permission upfront (iOS), not handling app-in-foreground case (Android), sending test notifications to inactive tokens (hits delivery rate). Use Firebase Cloud Messaging for both platforms (Apple supports it via APNs bridge).
What does 'offline-first' mean and how do I build it?
Offline-first = app works without internet, syncs when connection returns. Pattern: (1) local database (SQLite/Realm/Firebase Realtime), (2) queue outgoing changes, (3) background sync when online. Detect: `NetInfo.fetch()` on app resume. Sync: batch API calls, handle conflicts (last-write-wins, CRDT). For chat: use SQLite + observe connection state → resume sending. For forms: save drafts locally, retry submission on network return. Libraries: WatermelonDB, Realm, Firebase local caching. Trade-off: adds ~200-500KB to bundle.
How do I optimize app size and startup time?
Size: code splitting (lazy load screens), remove unused assets, compress images to WebP, strip debug symbols. Typical bloat: React Native adds ~40MB (debug), native Swift app ~20MB base. Startup: measure with Xcode Profiler / Android Studio, profile first (often blocking API call on init). Avoid: loading all data at launch, large images in Bundle. Target: < 5s launch on iPhone 12, < 7s on mid-range Android. Use Firebase Performance for production monitoring.
How do I monetize an app, in-app purchases, subscriptions, or ads?
IAP (in-app purchase): one-time, cosmetics/premium content. Apple takes 30% (15% for subscriptions year 2+). Subscriptions: recurring, common for apps (Netflix, Spotify model). Setup: RevenueCat handles iOS/Android subscription logic + analytics. Ads: low-value unless 10M+ DAU. Best for most apps: free tier + $9.99/mo premium (like Spotify). PaymentKit / StoreKit2 on Apple, Google Play Billing Library on Android. Never implement payments yourself, use RevenueCat or Stripe.
What are deep links and why do they matter?
Deep link: URL that opens a specific screen in your app (e.g. `myapp://profile/123` or `https://myapp.com/profile/123`). Used for: marketing (track source), push notifications (tap = open offer), URL sharing. Setup: iOS scheme + Universal Links (https), Android App Links (https). Common mistake: not handling deep link in cold start (app not running). Pattern: save deep link on app launch, route after auth completes. Use Firebase Dynamic Links for short, trackable links that convert from web to app.

Non sei sicuro che questa competenza faccia per te?

Fai il Career Match — ti suggeriremo i percorsi giusti.

Trova le competenze adatte a te →

Trova il tuo percorso di carriera ideale

Abbinamento basato sulle competenze per 2521 carriere. Gratis, ~3 minuti.

Fai il Career Match — gratis →