Aplikasi ini adalah aplikasi sederhana yang menggunakan
komponen CloudDB untuk menyimpan data pada cloud,
dan mengijinkan beberapa user dari aplikasi
berkomunikasi melalui beberapa perangkat.
Pergi ke ai2.appinventor.mit.edu dan mulai project baru.
Pada jendela Designer, tambahkan komponen berikut ini:
Ubah properti AlignHorizontal untuk Screen1 menjadi
“Center: 2”, dan Title menjadi “CloudDB Chat”
Jendela Viewer anda akan tampak seperti gambar di
bawah ini:
Inisialisasi variabel sebagai berikut:
userName: disimpan ketika user melakukan login
joined: data boolean yang bernilai true jika user login
chatList: menyimpan seluruh pesan chat dalam list
pesan
Berikut adalah tampilan blok yang digunakan:
Ketika user menekan tombol Submit, mereka akan
memasukkan nama untuk bergabung dalam chat, atau
mengetik pesan. Anda akan menge-cek terlebih dulu
apakah user tersebut sudah bergabung dalam chat atau
belum.
Drag out sebuah blok event SubmitButton.Click ,
kemudian tambahkan blok if-then-else padanya. Kaitkan
pada slot if, sebuah blok not dan blok get joined. Ini akan
memberitahu jika user belum tergabung pada chat...
Di dalam bagian then dari blok if, tambahkan blok if-
then untuk memastikan user telah mengetikkan suatu
username ke dalam TextBox. Jika TextBox tidak kosong
(not empty), maka set userName, set joined menjadi true,
dan tampilkan pesan yang sesuai dalam Label1.
Untuk bagian else dari blok if-then-else, anda akan
menambahkan kode untuk kondisi ketika user mengetik
dalam pesan chat. Dalam kasus ini, anda ingin
menambahkan pesan tersebut pada list pesan yang telah
disimpan.
Anda akan menyimpan pesan tersebut ke CloudDB, yang
merupakan "Cloud Database". Anda akan menambahkan
pesan baru ke list pesan yang telah disimpan
dalam CloudDB.
Untuk tag, cukup gunakan "chat", dan join userName,
tanda baca titik koma, dan pesan sehingga ia akan terlihat
sebagaimana ketika ia ditampilkan.
Terakhir, untuk kedua situasi, bersihkan isi TextBox.
Ketika aplikasi dijalankan pertama kali, anda harus
memeriksa apakah telah ada pesan chat yang mungkin
telah dikirim user lain, dan jika sudah, anda perlu
menampilkannya.
Tambahkan blok Screen1.Initialize , dan dari dalamnya,
panggil CloudDB1.GetValue untuk mendapatkan setiap
pesan chat dari CloudDB. Jika tidak ditemukan pesan
apapun, kembalikan list kosong, karena pesan chat anda
tersimpannya di list.
Ketika anda memanggil CloudDB1.GetValue, ia akan
meminta nilai tag terakhir pada CloudDB . Sehingga
terdapat event, CloudDB1.GotValue, yang akan dipicu
ketika CloudDB merespon blok GetValue.
Pertama periksa apakah tag anda adalah yang benar
("chat") menggunakan blok if-then. Jika benar, maka
simpan nilai, yang seharusnya merupakan list dari pesan,
menjadi variabel global chatList.. Kemudian set
ListView1.Elements to ke list pesan, sehingga seluruh
pesan tersebut akan ditampilkan ke ListView.
Even CloudDB1.DataChanged dipicu ketika siapa pun
yang menggunakan aplikasi meng-update CloudDB,
sehingga event ini dipicu setiap pesan baru dari setiap
orang dikirim. Blok ini secara esensial akan melakukan hal
yang sama dengan blok GotValue, sehingga anda dapat
meng-klik kanan dan men-duplikasi bagian dalam dari
blok GotValue, untuk kemudian menyisipkannya pada blok
DataChanged.
Selesai ! Sekarang waktunya untuk mencoba !
Cara terbaik menguji aplikasi yang menggunakan CloudDB
dan beberapa user, adalah menggunakan beberapa
perangkat. MIT AI2 Companion tidak selalu mengijinkan
beberapa user terhubung pada waktu bersamaa , maka
pilihan yang lebih baik adalah membangun , dan meng-
install aplikasi anda ke lebih dari satu perangkat bergerak.
Dari menu Build, pilih "App (provide QR code for .apk)".
Begitu apk telah di-build, scan QR code yang dibuat, dan
install apk ke beberapa perangkat. Kemudian kirim pesan
dari setiap perangkat tersebut. Seluruh pesan akan
muncul di seluruh perangkat.
Anda juga dapat menutup aplikasi, me-restart, kemudian
-mestinya- anda akan melihat riwayat pesan.
Berikut adalah beberapa ide untuk meningkatkan aplikasi:
Tukar susunan pesan yang ditampilkan sedemikian
sehingga pesan terakhir selalu ditampilkan di
atas. Petunjuk; gunakan blok list terbalik.
Beri indikasi ketika ada user yang bergabung dalam
chat seperti. MIsal: blok “Selim has joined the Chat”
mereka in case they decide not to send any
messages for a while.
Menambah time stamp dari setiap pesan.
Menambah tombol Clear untuk menghapus pesan-
pesan sebelumnya
Menambah kamar chat (chat room), di mana user dapat
menentukan terlebih dulu di room mana dia akan
bergabung.