1.3. Arsitektur Aplikasi
Kita baru saja melakukan identifikasi kebutuhan terhadap permasalahan Dudung dan Jarwo. Aplikasi yang akan dibangun, harus memiliki kemampuan berjalan di banyak perangkat android sekaligus. Misalnya, Jarwo memiliki tiga perangkat android, Samcung, Acus, dan Xiomay. Masing-masing terinstal aplikasi todolist. Apabila Jarwo menambahkan item melalui perangkat Samcung, maka kedua perangkat lainnya juga harus bisa mendapatkan pembaruan data.
Kasus diatas dapat ditangani menggunakan teknologi client-server, dengan fitur "synchronize". Aplikasi todolist harus terhubung dengan server. Setiap kali item-todo ditambahkan, maka data tersebut disimpan dalam database. Diantara Database dan aplikasi todolist terdapat API webservice.
Gambar dan penjelasan arsitektur client-server.

API merupakan singkatan dari Application Programming Interface. Dalam kasus ini kita menggunakan teknologi Restfull dengan JSON sebagai format pertukaran datanya. Misalnya, untuk melakukan login client harus mengakses endpoint url www.namadomain.com/api/v1/authentication dengan mengirimkan parameter email dan password. Kemudian Webservice akan melakukan otentikasi atau melakukan cek ke database untuk mendapatkan informasi yang berkaitan dengan user. Selanjutnya Webservice akan memberikan response kepada client berupa text dengan format JSON. Berikut contoh response yang menyatakan bahwa username atau password yang dimasukkan tidak sesuai.
{
"success":false,
"data":null,
"message":"incorrect username or password"
}