App Inventor’da TinyDB ile veri kaydetmek için StoreValue bloğunda bir etiket ve değer belirlersin; daha sonra aynı etiketi GetValue bloğunda kullanarak bilgiyi okursun. TinyDB kaydı uygulama kapatılıp yeniden açıldığında da telefonda saklar. Bileşeni Designer’da ekledikten sonra bloklarını kullanabilirsin.
TinyDB uygulama kapandıktan sonra veriyi nasıl saklar?
TinyDB, bilgiyi telefonda bir etiket ve o etikete bağlı bir değer olarak saklar. Etiket, çekmecenin üzerindeki isim; değer ise çekmecenin içindeki eşya gibidir. Örneğin kullanici_adi etiketi altında Ayşe değerini tutabilirsin. Buradaki Ayşe, yalnızca temsili bir addır.
Uygulama çalışırken kullandığın bir değişkeni geçici not gibi düşünebilirsin. Uygulama yeniden başladığında değişken başlangıçta verdiğin değere dönebilir. TinyDB’ye kaydettiğin bilgi ise etiketli çekmecede durur; uygulamayı tekrar açtığında aynı etiketle bu değeri okuyabilirsin. MIT App Inventor’ın TinyDB bileşeni açıklaması da verilerin etiket ve değer çiftleriyle saklandığını belirtir.
Örneğin TinyDB1 bileşeninin StoreValue bloğunda etiket olarak tema, değer olarak koyu seçersen, kayıt tema → koyu biçiminde tutulur. Daha sonra bu etiketi GetValue bloğunda kullandığında kaydedilen değeri alırsın. Etiketi farklı yazarsan başka bir çekmeceyi aramış olursun.
TinyDB örneklerinde gerçek ad, parola veya başka kişisel bilgileri kullanma. Deneme yaparken Ayşe gibi temsili bir ad ya da tema gibi kişisel olmayan bir değer seç.
TinyDB bileşeni ekrana nasıl eklenir?

TinyDB’yi Designer’daki Palette bölümünün Storage kategorisinde bulup ekrana sürükleyerek eklersin. Bileşen, uygulamadaki veriyi saklama ve geri okuma işini üstlenir; ekranda kullanıcıya görünen bir nesne oluşturmaz. Eklediğinde bileşenler listesinde görünür ve bloklarını Blocks bölümünde kullanabilirsin.
TinyDB özelliklerinde Namespace adlı alan bulunur. Bu alan, bileşenin verilerini hangi ad alanında sakladığını belirler. Tek ekrandaki bu basit örnekte alanı değiştirmene gerek yoktur. Birden fazla TinyDB bileşeni kullanırken ad alanını değiştirirsen kayıtları okurken de doğru ad alanını kullanman gerekir; aksi hâlde beklediğin değeri bulamayabilirsin.
StoreValue ile kullanıcı adı nasıl kaydedilir?

TinyDB, veriyi telefondaki uygulama için etiket ve değer çifti olarak saklar. Etiketi çekmecenin üzerindeki ad, değeri ise çekmecenin içindeki içerik gibi düşünebilirsin. Kullanıcı adını kaydetmek için TinyDB belgelerinde açıklanan StoreValue bloğunu, Kaydet düğmesine basıldığında çalışacak şekilde yerleştirirsin.
- Blocks bölümünde Kaydet düğmesinin olay çekmecesini aç ve
when Button1.Clickbloğunu çalışma alanına ekle. Düğmenin adı sende farklıysa kendi bileşen adını kullan. - TinyDB bileşeninin çekmecesinden
call TinyDB1.StoreValuebloğunu alıp Click olayının içine yerleştir. - Metin çekmecesinden bir metin bloğu ekleyerek
tagalanınakullaniciAdiyaz. Bu etiket, kaydı daha sonra bulmak için kullanacağın addır. valueToStorealanına MetinKutusu1 bileşenininTextözelliğini bağla. Böylece kutuya yazılan ad, belirlediğin etiketin altında saklanır.
Blokların çalışma sırası şöyledir:
when Button1.Click
call TinyDB1.StoreValue
tag = "kullaniciAdi"
valueToStore = MetinKutusu1.Text
Kaydetme ve okuma sırasında aynı etiketi, yazımı ve büyük-küçük harfleriyle eşleştirmen gerekir. Örneğin kaydederken kullaniciAdi, okurken kullaniciAdim yazarsan uygulama başka bir çekmeceye bakar. Örnekteki Ayşe adı temsili olsun; gerçek kişilere ait tanımlayıcı bilgileri ve şifreleri TinyDB'ye kaydetme.
GetValue ile kayıtlı ad nasıl yüklenir?
Uygulama açıldığında kayıtlı adı göstermek için GetValue bloğunu Screen1.Initialize olayında çalıştır. Bu olay ekran başlatılırken devreye girer; MIT App Inventor örneğinde de kayıtlı değer bu olay içinde okunur.
- Blocks bölümünde
when Screen1.Initializeolay bloğunu çalışma alanına ekle. - TinyDB1 çekmecesinden
call TinyDB1.GetValuebloğunu bu olayın içine yerleştir. tagalanına kaydederken kullandığınkullaniciAdimetin bloğunu koy.valueIfTagNotTherealanına ise ilk açılışta gösterilecekziyaretçigibi anlaşılır bir varsayılan metin ekle.- GetValue bloğunun sonucunu, karşılama etiketinin metnine bağla. Metni birleştirme bloğuyla
Merhaba,yazısını ve GetValue sonucunu bir araya getir.
Örneğin Kaydet düğmesine basıldığında metin kutusunda temsili Ayşe varsa TinyDB bunu kullaniciAdi etiketiyle saklar. Uygulama yeniden açılınca Initialize olayı aynı etiketi okur ve ekranda Merhaba, Ayşe görünür. Etiketler uyuşmazsa varsayılan olarak ziyaretçi gösterilir. Yükleme işlemini yalnızca Kaydet düğmesinin Click olayına koyarsan ad, ekran açılırken yüklenmez; bu yüzden okuma bloğu Initialize olayında bulunmalıdır.
ClearTag kaydı nasıl siler ve hatalar nasıl bulunur?
Bir kaydı silmek için uygun bir düğmenin Click olayında TinyDB bileşeninin ClearTag bloğunu çalıştır. Bloğa, veriyi kaydederken kullandığın etiketin aynısını ver. Örneğin ad kullaniciAdi etiketiyle saklandıysa silme bloğunda da bu etiketi kullan; farklı yazılan bir etiket, kaydı bulamaz. MIT App Inventor başvurusunda blok ClearTag(tag) olarak açıklanır.
MIT App Inventor TinyDB başvuru sayfası
Etiket ve değerleri, bir eşya dolabındaki etiketli kutular gibi düşünebilirsin. Ayşe adı bu örnekte yalnızca temsili bir değerdir. Gerçek uygulamalarda TinyDB’ye şifre veya kişisel bilgi kaydetme.
Hata ayıklarken hangi adımları kontrol etmelisin?
- StoreValue: Kullanıcı adını doğru metin kutusundan alıyor mu, etiket yazımı doğru mu? Yanlış etiket kullanılırsa değer başka bir adla kaydedilir.
- Screen.Initialize içindeki GetValue: Etiket, StoreValue ile aynı mı? Etiket bulunamazsa GetValue varsayılan değeri döndürür; bu nedenle kayıtlı ad yerine başlangıçta belirlediğin metin görünebilir.
- ClearTag: Silme düğmesinin
Clickolayında doğru etiket kullanılıyor mu? Etiket eşleşmezse kayıt kalır. Kayıt silindikten sonra uygulama açıldığında GetValue varsayılan değeri gösterebilir.
GetValue bloğu yalnızca başka bir düğmenin Click olayındaysa, ad uygulama açılırken kendiliğinden yüklenmez. Ekran açıldığında yüklenmesi için bloğu Screen.Initialize olayına yerleştir.
Önce kaydetme ve yükleme etiketlerini karşılaştır, sonra varsayılan değeri ve blokların bağlı olduğu olayları incele. Böylece silme ve yükleme davranışını adım adım kontrol edebilirsin.