CodeBlanks Logo Icon CodeBlanks

getInstance

SharedPreferences.getInstance ile async erişim öğrenirsin.

getInstance nedir?

SharedPreferences sınıfına erişmek için getInstance() statik metodunu çağırırsın. Bu metod bir Future<SharedPreferences> döndürür çünkü verileri diskten okur. Bu yüzden await ile beklemen gerekir.

final prefs = await SharedPreferences.getInstance();
// artık prefs üzerinden set/get yapabilirsin

async main ve ensureInitialized

main fonksiyonunda shared_preferences kullanacaksan main'i async yap ve önce WidgetsFlutterBinding.ensureInitialized() çağır. Bu, Flutter bağlamının hazır olmasını sağlar; aksi halde async main'de hata alırsın.

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final prefs = await SharedPreferences.getInstance();
  runApp(MyApp());
}

Uygulama async main ile getInstance çağır

main'i async yap, WidgetsFlutterBinding.ensureInitialized() çağır, await ile getInstance()'ı al ve 'instance ready' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  // ensureInitialized ve getInstance çağır
  // 'instance ready' yazdır
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: Center(child: Text('getInstance')));
  }
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final prefs = await SharedPreferences.getInstance();
  print('instance ready');
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: Center(child: Text('getInstance')));
  }
}

Beklenen çıktı

instance ready

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 getInstance neden async'tir?

  • UI çizdiği için
  • Kod derlediği için
  • Diskten veri okuduğu için Doğru cevap
  • İnternetten veri indirdiği için

Açıklama: getInstance verileri diskten okuyarak SharedPreferences örneğini hazırlar; bu işlem zaman aldığı için Future döndürür.

2 await ile getInstance bekle

Soru
final prefs = ____ SharedPreferences.getInstance();
Cevap
final prefs = await SharedPreferences.getInstance();

Açıklama: getInstance bir Future döndürür; sonucu almak için await kullanırsın.

3 getInstance parçaları

Kavram Anlamı
getInstance SharedPreferences örneği döndürür
await Future sonucunu bekler
async Fonksiyonu async işaretler
Future Async işlemin sonucunu temsil eder

Orta seviye bölümündeki tüm dersler