Örnek sorular
Fl Flutter Persistence StorageZorluk 1
SharedPreferences ne tür veriyi saklamak için tasarlanmıştır?
- aBasit key-value çiftleri olarak küçük primitive değerler✓
- bAnahtarla indekslenen, herhangi bir boyutta rastgele ikili (binary) bloklar.
- cAralarında foreign key kısıtlaması olan ilişkisel tablolar.
- dGörüntü ve video gibi büyük medya dosyaları.
Açıklama:SharedPreferences, ayar-benzeri küçük veriler için tasarlanmış platform-seviyesi bir key-value deposunu sarmalar — primitive'ler ve string listeleri; büyük ya da yapılandırılmış veri için düzgün bir veritabanı ya da dosya depolaması gerekir.
Fl Flutter Persistence StorageZorluk 1
SharedPreferences.getInstance() ile bir değer okumak neden await gerektirir?
- aÇünkü preferences instance'ının kendisini almak asenkrondur✓
- bÇünkü Dart senkron fonksiyon çağrılarını tamamen yasaklar.
- cÇünkü uzak bir config sunucusuna network isteği tetikler.
- dÇünkü değer şifrelidir ve her seferinde asenkron bir şifre çözme adımı gerekir.
Açıklama:SharedPreferences.getInstance(), ilk erişimde altta yatan preferences deposunu asenkron olarak yükler, bu yüzden bir Future döndürür; instance alındıktan sonra getString gibi tekil getter'lar senkrondur.
Fl Flutter Persistence StorageZorluk 2
Bir geliştirici özel bir User nesnesini dönüştürmeden doğrudan prefs.setString('user', user) ile saklamaya çalışıyor. Ne olur?
- aSorunsuz çalışır; SharedPreferences herhangi bir Dart nesnesini otomatik serialize eder.
- bSessizce boş bir string saklar.
- cNesnenin bellek adresini string olarak saklar.
- dHata fırlatır, çünkü
setString gerçek bir String bekler✓
Açıklama:SharedPreferences sadece desteklediği primitive tipleri kabul eder; özel bir nesne saklanmadan önce açıkça serialize edilmeli (genelde bir JSON string'ine) ve geri okunduğunda deserialize edilmelidir.
Fl Flutter Persistence StorageZorluk 1
sqflite bir Flutter uygulamasında öncelikli olarak ne için kullanılır?
- aYerel bir veritabanına karşı SQL sorguları çalıştırmak✓
- bBir REST API'ye kimlik doğrulamalı HTTP istekleri yapmak.
- cWidget-seviyesi state'i rebuild'ler arasında yönetmek.
- dPlatforma özgü native UI widget'ları render etmek.
Açıklama:sqflite, Dart koduna cihazdaki yerel bir SQLite veritabanına erişim sağlayan bir plugin'dir, uygulamanın doğrudan SQL sorguları çalıştırmasını sağlar.
Fl Flutter Persistence StorageZorluk 2
sqflite'da veritabanı sürümü arttığında ve openDatabase'e onUpgrade verildiğinde, onUpgrade neden sorumludur?
- aYeni şema sürümü için migration ifadelerini çalıştırmak✓
- bŞema değişikliklerini sıfır kodla otomatik algılayıp uygulamak.
- cVeritabanı dosyasını her seferinde silip sıfırdan yeniden oluşturmak.
- dSadece uygulamanın UI'ını yeni sürüm numarasını yansıtacak şekilde güncellemek.
Açıklama:onUpgrade, mevcut bir veritabanının daha yeni bir şema sürümüne geçmesi gerektiğinde eski ve yeni sürüm numaralarıyla çağrılır; gerçek migration SQL'ini (ya da mantığını) geliştirici içine yazar.
Fl Flutter Persistence StorageZorluk 1
Flutter ekosisteminde Hive nedir?
- aSaf Dart ile yazılmış hafif, key-value tabanlı bir NoSQL veritabanı✓
- bFlutter'ın kendisiyle birlikte gelen ilişkisel bir SQL veritabanı motoru.
- cSadece uygulama izinlerini yönetmek için bir araç.
- dİnternet bağlantısı gerektiren uzak bir bulut veritabanı servisi.
Açıklama:Hive, yerel kalıcılık için tasarlanmış, hızlı, saf-Dart bir NoSQL key-value deposudur, herhangi bir native SQL motoru içermez.