Mobil Geliştirme · · 9 dk okuma

Native mi, Cross-Platform mı? 2025'te Doğru Mobil Strateji

React Native, Flutter veya Swift/Kotlin? Her seçeneğin gerçek güçlü ve zayıf yanları, karar kriterleri ve maliyet karşılaştırması.

Native mi, Cross-Platform mı? 2025'te Doğru Mobil Strateji

Mobil uygulama yapmak istiyorsunuz. İlk soru kaçınılmaz: iOS ve Android için ayrı ayrı mı geliştireceğiz, yoksa tek kod tabanıyla mı? Bu kararı doğru vermek, bütçenizi ve teslim sürenizi doğrudan etkiliyor.

Kısa Cevap

Çoğu iş uygulaması için: React Native veya Flutter. Grafik-yoğun oyunlar veya donanım erişimi kritikse: Native.

Ama tabii ki gerçek bu kadar basit değil. Detaylara girelim.

Cross-Platform Seçenekleri

React Native

Meta’nın JavaScript tabanlı framework’ü. 2015’ten bu yana olgunlaştı ve büyük şirketler (Facebook, Shopify, Discord) production’da kullanıyor.

Güçlü yanları:

  • Web geliştirici ekipleriniz hızla adapte olur
  • Dev kodu paylaşımı (web + mobil)
  • Büyük ekosistem ve topluluk

Zayıf yanları:

  • Performans kritik animasyonlarda native’e göri geri kalır
  • Metro bundler bazen acı verebilir
  • “Köprü mimarisi” bazı native özellikleri karmaşıklaştırır
// React Native örnek
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
import Animated, {
  useSharedValue,
  useAnimatedStyle,
  withSpring,
} from 'react-native-reanimated';

export function AnimatedButton({ onPress, label }) {
  const scale = useSharedValue(1);
  const animatedStyle = useAnimatedStyle(() => ({
    transform: [{ scale: scale.value }]
  }));

  return (
    <Animated.View style={animatedStyle}>
      <TouchableOpacity
        onPressIn={() => (scale.value = withSpring(0.95))}
        onPressOut={() => (scale.value = withSpring(1))}
        onPress={onPress}
      >
        <Text>{label}</Text>
      </TouchableOpacity>
    </Animated.View>
  );
}

Flutter

Google’ın Dart tabanlı framework’ü. Son 3 yılda ciddi ivme kazandı.

Güçlü yanları:

  • Pixel-perfect UI kontrolü (kendi render engine’i: Skia/Impeller)
  • Animasyon performansı mükemmel
  • Web ve masaüstü desteği de var

Zayıf yanları:

  • Dart öğrenme eğrisi (JavaScript ekipleri için)
  • Bazı native SDK entegrasyonları zor
  • APK boyutu React Native’e göre büyük
// Flutter örnek
class AnimatedButton extends StatefulWidget {
  final VoidCallback onPressed;
  final String label;

  const AnimatedButton({
    required this.onPressed,
    required this.label,
  });

  @override
  State<AnimatedButton> createState() => _AnimatedButtonState();
}

class _AnimatedButtonState extends State<AnimatedButton>
    with SingleTickerProviderStateMixin {
  late AnimationController _controller;
  late Animation<double> _scale;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      duration: const Duration(milliseconds: 150),
      vsync: this,
    );
    _scale = Tween(begin: 1.0, end: 0.95).animate(
      CurvedAnimation(parent: _controller, curve: Curves.easeInOut),
    );
  }

  @override
  Widget build(BuildContext context) {
    return ScaleTransition(
      scale: _scale,
      child: ElevatedButton(
        onPressed: widget.onPressed,
        child: Text(widget.label),
      ),
    );
  }
}

Native: Swift & Kotlin

Platform özelliklerine tam erişim, en yüksek performans. Ancak maliyet iki katı.

Ne zaman native?

  • ARKit / ARCore yoğun kullanımı
  • Bluetooth LE / health sensör entegrasyonu
  • Çok karmaşık custom animasyonlar (60+ FPS kritik)
  • App Store/Play Store öne çıkarma stratejisi (platform uyumu avantajı)

Karar Matrisi

KriterReact NativeFlutterNative
İlk geliştirme maliyetiDüşükDüşükYüksek
UI özelleştirmeOrtaYüksekTam
PerformansİyiÇok iyiMükemmel
Ekip büyüklüğü1-2 dev1-2 dev2-4 dev
Web kodu paylaşımıEvetKısmenHayır
Bakım maliyetiDüşükDüşükYüksek

Peki Expo?

React Native geliştirmeyi hızlandıran meta-framework. Başlangıç için neredeyse her zaman öneriyoruz:

  • OTA (over-the-air) güncellemeler — App Store onayı beklemeden hata düzeltme
  • EAS Build — CI/CD altyapısı dahil
  • SDK’lar kolayca entegre edilir

Expo ile başlayın, platform özelliğine ihtiyaç duyduğunuzda “bare workflow”a geçin.

Gerçek Proje Karşılaştırması

Aynı özellikleri farklı teknolojilerle geliştirdiğimizde gördüğümüz süre farkı:

ÖzellikNative (iOS+Android)React NativeFlutter
Auth sistemi3 hafta1 hafta1 hafta
Liste ekranları2 hafta3 gün3 gün
Kamera entegrasyonu1 hafta2 gün3 gün
Custom animasyonlar1 hafta1 hafta3 gün
Toplam MVP~12 hafta~6 hafta~6 hafta

Maliyet farkı gerçek: Native için iki ayrı geliştirici gereksinimi, proje bütçesini %60-80 artırabilir.

Tavsiyemiz

MVP için React Native + Expo ile başlayın. Ekibiniz büyürse ve platform özgü animasyon/donanım gereksinimi ortaya çıkarsa Flutter veya Native’e geçişi değerlendirin.

Uygulamanız için en doğru teknolojiyi seçmek için ücretsiz bir görüşme yapabilirsiniz. İletişime geçin →