跳到主要內容
JobCannon
全部技能

Mobile Development (iOS / Android / React Native)

Build mobile apps, publish to app stores, optimize UX

⬢ 層級 2技術
+$30k-
薪資影響
10 個月
學習時長
困難
難度
4
職業
一覽

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). App lifecycle: design UI, integrate APIs, implement monetization (IAP/subscriptions), handle app store submissions, monitor crashes with Sentry, track user behavior with AppsFlyer.

什麼是 Mobile Development (iOS / Android / React Native)

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

🔧 工具與生態
React NativeFlutterSwiftSwiftUIKotlinJetpack ComposeXcodeAndroid StudioFirebaseRevenueCatSentryAppsFlyerCrashlytics

💰 各地區薪資

地區初級中級高級
USA$95,000$145,000$200,000
UK£55,000£85,000£130,000
EU€60,000€95,000€145,000
CANADACA$105,000CA$155,000CA$205,000

🎯 使用 Mobile Development (iOS / Android / React Native) 的職業

❓ 常見問題

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.

不確定這項技能適不適合你?

做一下職業匹配,我們會推薦合適的方向。

找到最適合我的技能 →

找到理想的職業方向

在 2,521 個職業中進行技能匹配。免費。

免費做職業匹配 →