Mobil

Flutter 3.x: Cross-Platform Geliştirmenin Geleceği

18 Nov 2025
5 dakika okuma
İninia Teknoloji

Flutter, Google'ın açık kaynaklı UI framework'ü olarak mobil, web, masaüstü ve embedded platformlar için tek kod tabanından uygulama geliştirmeyi mümkün kılıyor. Flutter 3.x serisi, performans iyileştirmeleri, yeni widgetlar ve platform desteği genişlemeleriyle framework'ü yeni bir seviyeye taşıdı.

Flutter 3.x Yenilikleri

Impeller Render Engine

Skia'nın yerini alan yeni render engine:

  • iOS'ta varsayılan, Android'de preview
  • Daha tutarlı frame rate
  • Shader compilation jank çözümü
  • Metal ve Vulkan optimizasyonu

Material 3 Tam Destek

  • Dynamic Color (Android 12+ renk uyumu)
  • Yeni widget varyantları
  • Güncel tasarım dili

DevTools İyileştirmeleri

  • Performans profiling
  • Memory debugging
  • Network inspector
  • Widget inspector

Desteklenen Platformlar

  • Mobile: iOS, Android (stable)
  • Web: Chrome, Firefox, Safari, Edge (stable)
  • Desktop: Windows, macOS, Linux (stable)
  • Embedded: Raspberry Pi, automotive (experimental)

Flutter Mimarisi

┌─────────────────────────────────────┐
│           Your Application          │
├─────────────────────────────────────┤
│              Widgets                │
├─────────────────────────────────────┤
│           Rendering Layer           │
├─────────────────────────────────────┤
│        Dart Framework (Material,    │
│              Cupertino)             │
├─────────────────────────────────────┤
│         Flutter Engine (C++)        │
├─────────────────────────────────────┤
│    Platform Specific (iOS/Android)  │
└─────────────────────────────────────┘

State Management Seçenekleri

1. Provider (Basit)

class Counter extends ChangeNotifier {
  int _count = 0;
  int get count => _count;
  
  void increment() {
    _count++;
    notifyListeners();
  }
}

// Kullanım
ChangeNotifierProvider(
  create: (_) => Counter(),
  child: Consumer<Counter>(
    builder: (_, counter, __) => Text('${counter.count}'),
  ),
)

2. Riverpod (Modern)

final counterProvider = StateNotifierProvider<CounterNotifier, int>((ref) {
  return CounterNotifier();
});

class CounterNotifier extends StateNotifier<int> {
  CounterNotifier() : super(0);
  void increment() => state++;
}

// Kullanım
Consumer(builder: (_, ref, __) {
  final count = ref.watch(counterProvider);
  return Text('$count');
})

3. BLoC (Enterprise)

class CounterBloc extends Bloc<CounterEvent, int> {
  CounterBloc() : super(0) {
    on<Increment>((event, emit) => emit(state + 1));
  }
}

// Kullanım
BlocBuilder<CounterBloc, int>(
  builder: (context, count) => Text('$count'),
)

Performans Best Practices

  1. const constructors kullanın: Widget rebuild'ı önler
  2. ListView.builder tercih edin: Lazy loading
  3. RepaintBoundary: İzole repaint alanları
  4. Image caching: cached_network_image paketi
  5. Isolates: Ağır işlemler için ayrı thread

Popüler Paketler

  • dio: HTTP client
  • go_router: Declarative routing
  • freezed: Immutable data classes
  • hive: Lightweight NoSQL database
  • flutter_hooks: React hooks benzeri
  • get_it: Service locator

Test Yazımı

// Unit test
test('Counter increment', () {
  final counter = Counter();
  counter.increment();
  expect(counter.count, 1);
});

// Widget test
testWidgets('Counter widget', (tester) async {
  await tester.pumpWidget(MyApp());
  expect(find.text('0'), findsOneWidget);
  await tester.tap(find.byIcon(Icons.add));
  await tester.pump();
  expect(find.text('1'), findsOneWidget);
});

// Integration test
testWidgets('Full flow', (tester) async {
  app.main();
  await tester.pumpAndSettle();
  // Test user flows
});

CI/CD Entegrasyonu

# GitHub Actions
name: Flutter CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
      - run: flutter pub get
      - run: flutter test
      - run: flutter build apk

Flutter, cross-platform geliştirmede lider konumunu güçlendirmeye devam ediyor. Tek kod tabanından 6 platformda çalışan uygulamalar geliştirmek hiç bu kadar kolay olmamıştı.

İninia Teknoloji

İstanbul Teknik Üniversitesi ARI Teknokent'te kurulu Ininia Teknoloji, 12+ yıllık deneyimle AR/VR, yapay zeka ve mobil uygulama alanlarında yenilikçi çözümler sunmaktadır.

Projeniz için profesyonel destek mi arıyorsunuz?

12+ yıllık deneyimimizle dijital dönüşümünüzü hızlandıralım.

Ücretsiz Görüşme Talep Et