İçeriğe atla
supastack
Dokümanlara göz atın
MobilExpo

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /tr/docs/mobile/tech-stack.md (or send Accept: text/markdown).

Mobile teknoloji yığını

Expo uygulamasının içindeki teknolojiler ve her birinin oynadığı rol.

Başlamadan önce

Mobile uygulaması küçük bir yerel yüzeydir: aşağıdaki her kitaplık zaten apps/mobile/package.json'da sabitlenmiştir, bu nedenle bu sayfadaki hiçbir şey ayrı kurulum gerektirmez. Bu sayfa, sonraki kılavuzların anlamlı olması için her parçanın ne yaptığını açıklar.

Arka uç, Web deposunda kendi yığınını — Next.js, Postgres ve sağlayıcı bağdaştırıcılarını — tutar. Uygulama, onu EXPO_PUBLIC_API_URL aracılığıyla ulaşır ve hiçbir parçasını gömmeyerek yalnızca Mobile checkout'un küçük kalmasını sağlar.

Expo + React Native

Expo, uygulamayı çalıştıran, paketleyen ve derleyen araç zinciridir; React Native, bir webview yerine gerçek yerel arabirim öğeleri oluşturur. Expo Router, dosya tabanlı gezinme sağlar: apps/mobile/app/ altındaki her dosya bir ekrana dönüşür ve oturum açmış yığın app/(app)/ altında gruplandırılır.

Expo Go, telefonunuzda paylaşılan geliştirme önizlemesini açarken, bir development build kendi kurulabilir uygulamanızdır — satın almalar veya biyometrik kilit gibi bir yerel modülün çalışması gerektiğinde zorunludur.

TypeScript

Tüm uygulama kodu TypeScript'tir ve paket sıkı bir tür denetimiyle birlikte gelir. Bir cihaz veya çalışan bir arka uç olmadan her dosyayı kontrol edebilirsiniz.

Better Auth Expo + güvenli depolama

Oturum açma, sistem tarayıcısı aracılığıyla Better Auth Expo istemcisiyle gerçekleşir: uygulama arka ucun kimlik doğrulama sayfasını açar, arka uç uygulamanın derin bağlantı şemasına döner ve oturum belirteci expo-secure-store'da tutulur — iOS'ta Keychain ve Android'de Keystore — asla düz depolamada veya paketlenmiş yapılandırmada değil.

Aynı modüller, passkey'leri, expo-local-authentication aracılığıyla isteğe bağlı bir biyometrik uygulama kilidini ve workspace kapsamlı çevrimdışı önbelleği temizleyen bir oturum kapatmayı kapsar.

RevenueCat satın alımları

react-native-purchases, StoreKit ve Play Billing'i kitin yetki senkronizasyonuna bağlar: uygulama mağaza satın alımını başlatır, arka uç RevenueCat webhook'u aracılığıyla doğrular ve sunucu workspace'in ne kullanabileceğine karar verir.

İlk önizlemede satın alımlar kapalı kalır (EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=off). Gerçek satın alma ve geri yükleme testleri bir EAS geliştirme derlemesi gerektirir çünkü Expo Go yerel satın alma modülünü çalıştıramaz.

EAS Build + Submit

eas.json üç profil içerir: development, iOS simülatörü için bir dev client derler, preview, testçiler için dahili bir Android APK'sı derler ve production, otomatik artan sürümler ve bir Play dahili kanal gönderim adımıyla mağaza ikililerini derler.

Derlemeler Expo'nun bulutunda çalışır, bu nedenle ikililer üretmek için yerel bir Xcode veya Android Studio'ya ihtiyacınız yoktur — yalnızca kendi bilgisayarınızda simülatörleri çalıştırmak için.

Paylaşılan paketler

@supastack/ui-native, platformlar arası görünüm modellerini taşır — createEntitlementCard, sunucu yetki durumunu tek bir kart sözleşmesine dönüştürür — ve @supastack/design-tokens tema değerlerini taşır. Yalnızca bu iki paylaşılan paket Mobile checkout'unda bulunur; sunucu paketleri Web arka ucuyla birlikte yaşar.

Doğrulama araçları

Deterministik Vitest paketleri, oturum depolamayı, derin bağlantıları, sohbet akışını ve iptalini, yetkileri, satın alımları, çevrimdışı önbelleği ve bildirim yönlendirmesini kapsar — cihaz olmadan bilgisayarınızda çalışırlar. Uygulama kilidi, push teslimatı ve mağaza satın alımları gibi yalnızca yerel davranışlar bunun yerine bir EAS geliştirme derlemesinde doğrulanır.

corepack pnpm --filter @supastack/mobile test
corepack pnpm --filter @supastack/mobile typecheck