Quickstarters
Feature Overview
How to Build a Backend for Kotlin?
38 mnt
pendahuluan dalam tutorial ini, anda akan belajar bagaimana membangun backend lengkap untuk aplikasi android (ditulis dalam kotlin) menggunakan back4app kami akan membahas integrasi fitur fitur penting back4app—termasuk manajemen database, cloud code functions, rest dan graphql apis, otentikasi pengguna, dan kueri waktu nyata (live queries)—untuk membuat backend yang aman, skalabel, dan kuat yang berkomunikasi dengan mulus dengan aplikasi android anda anda juga akan melihat bagaimana pengaturan cepat dan lingkungan intuitif back4app dapat secara drastis mengurangi waktu dan usaha dibandingkan dengan mengonfigurasi server dan database secara manual sepanjang jalan, anda akan mendapatkan pengalaman langsung dengan fungsionalitas kunci, termasuk fitur keamanan lanjutan, penjadwalan tugas dengan cloud jobs, dan pengaturan webhook untuk integrasi eksternal pada akhir tutorial ini, anda akan siap untuk meningkatkan pengaturan dasar ini menjadi aplikasi siap produksi, atau dengan mudah menggabungkan logika kustom dan api pihak ketiga sesuai kebutuhan prasyarat untuk menyelesaikan tutorial ini, anda akan membutuhkan akun back4app dan proyek back4app baru memulai dengan back4app https //www back4app com/docs/get started/new parse app jika anda tidak memiliki akun, anda dapat membuat satu secara gratis ikuti panduan di atas untuk menyiapkan proyek anda lingkungan pengembangan android/kotlin dasar pastikan anda telah menginstal android studio di mesin anda anda dapat mengikuti dokumentasi pengaturan resmi android studio https //developer android com/studio jika anda belum mengaturnya minimal android 4 0 atau lebih tinggi dalam konfigurasi gradle aplikasi anda biasanya, anda akan mengatur ini di minsdkversion dalam build gradle modul anda keterampilan dasar dengan kotlin dan konsep dasar android dokumentasi pengembang android https //developer android com/docs jika anda baru di android atau kotlin, tinjau dokumentasi resmi atau tutorial pemula sebelum memulai pastikan anda memiliki semua prasyarat ini sebelum anda mulai memiliki proyek back4app anda yang disiapkan dan lingkungan android lokal anda siap akan membantu anda mengikuti dengan lebih mudah langkah 1 – menyiapkan proyek back4app buat proyek baru langkah pertama dalam membangun backend android anda di back4app adalah membuat proyek baru jika anda belum membuat satu, ikuti langkah langkah ini masuk ke akun back4app anda klik tombol “aplikasi baru” di dasbor back4app anda beri nama aplikasi anda (misalnya, “android kotlin backend tutorial”) setelah proyek dibuat, anda akan melihatnya terdaftar di dasbor back4app anda proyek ini akan menjadi dasar untuk semua konfigurasi backend yang dibahas dalam tutorial ini sambungkan sdk parse back4app mengandalkan parse platform untuk mengelola data anda, menyediakan fitur waktu nyata, menangani otentikasi pengguna, dan banyak lagi mengintegrasikan aplikasi android anda dengan back4app melibatkan penambahan ketergantungan parse android sdk ke file gradle anda dan menginisialisasinya dengan kredensial dari dasbor back4app anda ambil kunci parse anda di dasbor back4app anda, navigasikan ke bagian “pengaturan aplikasi” atau “keamanan & kunci” untuk menemukan id aplikasi dan kunci klien anda juga akan menemukan url server parse (sering dalam format https //parseapi back4app com ) tambahkan sdk parse ke file build gradle di build gradle root anda (tingkat proyek) allprojects { repositories { maven { url "https //jitpack io" } } } di build gradle tingkat modul anda (biasanya app/build gradle ) dependencies { implementation "com github parse community parse sdk android\ parse\ latest version here" } inisialisasi parse di aplikasi android anda buat aplikasi kustom (misalnya, app kt ) jika anda belum memilikinya package com example app import android app application import com parse parse import com parse parseinstallation class app application() { override fun oncreate() { super oncreate() // initialize parse parse initialize( parse configuration builder(this) applicationid("your app id") // from back4app dashboard clientkey("your client key") // from back4app dashboard server("https //parseapi back4app com/") build() ) // (optional) track statistics around app opens parseinstallation getcurrentinstallation() saveinbackground() } } selanjutnya, buka androidmanifest xml anda dan daftarkan aplikasi kustom \<?xml version="1 0" encoding="utf 8"?> \<manifest xmlns\ android="http //schemas android com/apk/res/android" package="com example app"> \<application android\ name=" app" android\ icon="@mipmap/ic launcher" android\ label="@string/app name" android\ usescleartexttraffic="true" > \</application> \</manifest> dengan menyelesaikan langkah ini, anda telah membangun koneksi yang aman antara front end android (kotlin) anda dan backend back4app semua permintaan dan transaksi data dialihkan dengan aman melalui sdk ini, mengurangi kompleksitas panggilan rest atau graphql manual (meskipun anda masih dapat menggunakannya jika diperlukan) langkah 2 – menyiapkan basis data menyimpan dan mengquery data dengan proyek back4app anda yang sudah disiapkan dan sdk parse yang terintegrasi ke dalam aplikasi android anda, sekarang anda dapat mulai menyimpan dan mengambil data di bawah ini adalah contoh menggunakan kotlin untuk membuat dan mengambil data import com parse parseobject import com parse parsequery import com parse savecallback import com parse parseexception // example create a todo item fun createtodoitem(title string, iscompleted boolean) { val todo = parseobject("todo") todo put("title", title) todo put("iscompleted", iscompleted) todo saveinbackground { e parseexception? > if (e == null) { println("todo saved successfully") } else { println("error saving todo ${e localizedmessage}") } } } // example query all todo items fun fetchtodos() { val query = parsequery\<parseobject>("todo") query findinbackground { results, e > if (e == null) { println("fetched todo items ${results size}") } else { println("error fetching todos ${e localizedmessage}") } } } sebagai alternatif, anda dapat menggunakan endpoint rest api back4app curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo back4app juga menyediakan antarmuka graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } berbagai opsi ini memungkinkan anda untuk mengintegrasikan operasi data dengan cara yang paling sesuai dengan proses pengembangan anda—baik itu melalui sdk parse, rest, atau graphql desain skema dan tipe data secara default, parse memungkinkan pembuatan skema secara langsung , tetapi anda juga dapat mendefinisikan kelas dan tipe data anda di dasbor back4app untuk kontrol yang lebih navigasikan ke bagian “database” di dasbor back4app anda buat kelas baru (misalnya, “todo”) dan tambahkan kolom yang relevan, seperti judul (string) dan iscompleted (boolean) back4app menawarkan agen ai yang dapat membantu anda merancang model data anda buka agen ai dari dasbor aplikasi anda atau di menu deskripsikan model data anda dalam bahasa sederhana (misalnya, “tolong buat aplikasi todo baru di back4app dengan skema kelas yang lengkap ”) biarkan agen ai membuat skema untuk anda menggunakan agen ai dapat menghemat waktu anda saat mengatur arsitektur data anda dan memastikan konsistensi di seluruh aplikasi anda data relasional jika anda memiliki data relasional—katakanlah, sebuah category objek yang menunjuk ke beberapa todo item—anda dapat menggunakan pointers atau relations di parse misalnya, menambahkan pointer ke sebuah category // linking a todo to a category with a pointer fun createtaskforcategory(categoryobjectid string, title string) { val todo = parseobject("todo") val categorypointer = parseobject("category") categorypointer objectid = categoryobjectid todo put("title", title) todo put("category", categorypointer) todo saveinbackground { e > if (e == null) { println("created task with category relationship") } else { println("error creating task ${e localizedmessage}") } } } ketika anda melakukan query, anda juga dapat menyertakan data pointer val query = parsequery getquery\<parseobject>("todo") query include("category") query findinbackground { todos, e > if (e == null) { println("fetched ${todos size} todos with category data") } } panggilan include("category") ini mengambil detail kategori bersamaan dengan setiap todo, membuat data relasional anda dapat diakses dengan mudah query langsung untuk pembaruan waktu nyata, back4app menyediakan live queries anda dapat berlangganan perubahan dalam kelas tertentu dari aplikasi android anda aktifkan live queries di dasbor back4app anda di bawah pengaturan server aplikasi anda inisialisasi langganan live query dalam kode anda import com parse parselivequeryclient import com parse parsequery import com parse subscriptionhandling val parselivequeryclient = parselivequeryclient factory getclient() val parsequery = parsequery\<parseobject>("todo") val subscriptionhandling subscriptionhandling\<parseobject> = parselivequeryclient subscribe(parsequery) subscriptionhandling handleevent(subscriptionhandling event create) { querytodo, todo > println("new todo created ${todo getstring("title")}") } subscriptionhandling handleevent(subscriptionhandling event update) { querytodo, todo > println("todo updated ${todo getstring("title")}") } subscriptionhandling handleevent(subscriptionhandling event delete) { querytodo, todo > println("todo deleted ${todo getstring("title")}") } setiap kali todo baru dibuat, diperbarui, atau dihapus, klien mendapatkan callback secara real time—sempurna untuk aplikasi kolaboratif atau dinamis langkah 3 – menerapkan keamanan dengan acl dan clp mekanisme keamanan back4app back4app menganggap keamanan dengan serius dengan menyediakan daftar kontrol akses (acl) dan izin tingkat kelas (clp) fitur fitur ini memungkinkan anda membatasi siapa yang dapat membaca atau menulis data berdasarkan objek atau kelas, memastikan hanya pengguna yang berwenang yang dapat memodifikasi data anda daftar kontrol akses (acl) sebuah acl diterapkan pada objek individu untuk menentukan pengguna, peran, atau publik mana yang dapat melakukan operasi baca/tulis misalnya fun createprivatetodo(title string, owneruser parseobject) { val todo = parseobject("todo") todo put("title", title) // create an acl granting read/write access only to the owner val acl = com parse parseacl(owneruser) acl publicreadaccess = false acl publicwriteaccess = false todo acl = acl todo saveinbackground { e > if (e == null) { println("saved private todo") } else { println("error ${e localizedmessage}") } } } izin tingkat kelas (clp) clp mengatur izin default seluruh kelas, seperti apakah kelas tersebut dapat dibaca atau ditulis secara publik pergi ke dasbor back4app anda , pilih aplikasi anda, dan buka bagian database pilih kelas (misalnya, “todo”) buka izin tingkat kelas tab konfigurasikan default anda, seperti “memerlukan autentikasi” untuk baca atau tulis, atau “tidak ada akses” untuk publik langkah 4 – menulis fungsi cloud code cloud code memungkinkan anda menjalankan kode javascript seperti kotlin yang disesuaikan di parse server (diunggah sebagai js file), tanpa perlu mengelola infrastruktur server ini ideal untuk logika bisnis, validasi, pemicu, dan panggilan api eksternal cara kerjanya anda biasanya menempatkan fungsi javascript, pemicu, dan modul npm yang diperlukan dalam sebuah main js file file ini diterapkan ke proyek back4app anda dan berjalan di lingkungan parse server kasus penggunaan umum logika bisnis validasi data pemicu (seperti beforesave , aftersave ) penegakan keamanan integrasi dengan api pihak ketiga terapkan fungsi anda berikut adalah fungsi cloud code sederhana main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); menerapkan melalui https //www back4app com/docs/local development/parse cli \# for linux/mac curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash \# for windows, download the exe from the releases page kemudian konfigurasikan dan terapkan b4a configure accountkey b4a deploy memanggil fungsi anda dari kode android (kotlin) anda melalui parse sdk import com parse parsecloud import com parse functioncallback import com parse parseexception fun calltextlengthfunction(sometext string) { val params = hashmapof("text" to sometext) parsecloud callfunctioninbackground\<map\<string, any>>("calculatetextlength", params) { result, e > if (e == null) { val length = result\["length"] as int println("text length $length") } else { println("error calling cloud code ${e localizedmessage}") } } } anda juga dapat memanggilnya melalui rest atau graphql dengan cara yang serupa langkah 5 – mengonfigurasi autentikasi autentikasi pengguna di back4app back4app memanfaatkan kelas parse user untuk autentikasi parse menangani hashing kata sandi yang aman, token sesi, dan lebih banyak lagi secara otomatis mengatur autentikasi pengguna dalam kotlin, anda dapat membuat pengguna baru import com parse parseuser fun signupuser(username string, password string, email string) { val user = parseuser() user username = username user setpassword(password) user email = email user signupinbackground { e > if (e == null) { println("user signed up successfully!") } else { println("error signing up user ${e localizedmessage}") } } } masuk sebagai pengguna yang sudah ada fun loginuser(username string, password string) { parseuser logininbackground(username, password) { user, e > if (user != null && e == null) { println("user logged in ${user username}") } else { println("error logging in ${e? localizedmessage}") } } } login sosial seperti google, facebook, dan apple juga dapat diintegrasikan periksa dokumentasi login sosial https //www back4app com/docs/platform/sign in with apple untuk detail manajemen sesi parse secara otomatis mengelola token sesi anda dapat mengakses pengguna saat ini val currentuser = parseuser getcurrentuser() if (currentuser != null) { println("currently logged in user ${currentuser username}") } else { println("no user is logged in") } dan keluar parseuser logout() langkah 6 – menangani penyimpanan file mengunggah dan mengambil file parse menyertakan kelas parsefile untuk menangani unggahan file import com parse parsefile import com parse parseexception fun uploadimage(file java io file) { val bytes = file readbytes() val parsefile = parsefile(file name, bytes) parsefile saveinbackground { e parseexception? > if (e == null) { println("file saved ${parsefile url}") } else { println("error uploading file ${e localizedmessage}") } } } parse menyertakan kelas parsefile untuk menangani unggahan file keamanan berkas anda dapat mengontrol siapa yang dapat mengunggah atau mengunduh berkas dengan menyesuaikan acl dan clp atau dengan menggunakan pengaturan spesifik berkas dalam konfigurasi parse server langkah 7 – verifikasi email dan reset kata sandi aktifkan verifikasi email di pengaturan dasbor back4app anda konfigurasikan alamat pengirim anda, template email, atau domain kustom jika diinginkan gunakan parseuser requestpasswordresetinbackground(email, callback) untuk memicu alur reset kata sandi di aplikasi anda langkah 8 – penjadwalan tugas dengan pekerjaan cloud pekerjaan cloud memungkinkan anda mengotomatiskan tugas rutin seperti membersihkan data atau mengirim notifikasi berkala parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo') const query = new parse query(todo) // e g , remove todos older than 30 days const cutoff = new date(date now() 30 24 60 60 1000) query lessthan('createdat', cutoff) const oldtodos = await query find({ usemasterkey true }) await parse object destroyall(oldtodos, { usemasterkey true }) return `deleted ${oldtodos length} old todos ` }) jadwalkan pekerjaan di dasbor back4app anda di bawah pengaturan server > pekerjaan latar belakang langkah 9 – mengintegrasikan webhook webhook memungkinkan aplikasi back4app anda untuk mengirim permintaan http ke layanan eksternal setiap kali peristiwa tertentu terjadi tambahkan webhook di dasbor back4app anda di bawah lainnya > webhook konfigurasi pemicu (misalnya, setelah menyimpan objek baru) tambahkan endpoint url (seperti webhook slack atau stripe) langkah 10 – menjelajahi panel admin back4app aplikasi admin back4app adalah antarmuka berbasis web yang ramah untuk pengguna non teknis untuk mengelola data aktifkan di bawah dasbor aplikasi > lainnya > aplikasi admin buat pengguna admin pertama anda pilih subdomain untuk mengakses panel admin masuk untuk melihat, mengedit, atau menghapus catatan dari database anda dengan mudah kesimpulan dengan mengikuti tutorial komprehensif ini, anda telah membuat backend yang aman untuk aplikasi android di back4app mengonfigurasi database dengan skema kelas, tipe data, dan hubungan mengintegrasikan kueri waktu nyata (kueri langsung) untuk pembaruan data segera menerapkan langkah langkah keamanan menggunakan acl dan clp untuk melindungi dan mengelola akses data menerapkan fungsi cloud code untuk menjalankan logika bisnis kustom di sisi server mengatur otentikasi pengguna dengan dukungan untuk verifikasi email dan pengaturan ulang kata sandi mengelola unggahan file dan pengambilan, dengan kontrol keamanan file opsional menjadwalkan pekerjaan cloud untuk tugas latar belakang otomatis menggunakan webhook untuk mengintegrasikan dengan layanan eksternal menjelajahi panel admin back4app untuk manajemen data dengan antarmuka depan android (kotlin) yang solid dan backend back4app yang kuat, anda sekarang siap untuk mengembangkan aplikasi yang kaya fitur, dapat diskalakan, dan aman teruslah menjelajahi fungsionalitas yang lebih canggih, integrasikan logika bisnis anda, dan manfaatkan kekuatan back4app untuk menghemat waktu anda dalam administrasi server dan database selamat coding! langkah selanjutnya bangun aplikasi android yang siap produksi dengan memperluas backend ini untuk menangani model data yang lebih kompleks, strategi caching, dan optimisasi kinerja integrasikan fitur fitur canggih seperti alur autentikasi khusus, kontrol akses berbasis peran, atau api eksternal (seperti gerbang pembayaran) periksa dokumentasi resmi back4app untuk penjelasan lebih dalam tentang keamanan canggih, penyesuaian kinerja, dan analisis log jelajahi tutorial lainnya tentang aplikasi obrolan waktu nyata, dasbor iot, atau layanan berbasis lokasi anda dapat menggabungkan teknik yang dipelajari di sini dengan api pihak ketiga untuk membuat aplikasi kompleks di dunia nyata