Mobile Programming

Membangun Messenger E2EE Multi-Perangkat dengan Kotlin Multiplatform, Signal Protocol, dan Push Notification

Bangun messenger multi-perangkat dengan enkripsi end-to-end, Signal Protocol, Kotlin Multiplatform, dan push notification yang siap diuji secara production-grade.

Diperbarui 23 Agu 2026id7 bagian · 35 pelajaran4 jam 30 menit
Belum ada ulasan
Level Advanced
Kategori Mobile Programming
Perkiraan Durasi 4 jam 30 menit

Skill yang dibangun

Apa yang akan Anda pelajari

Merancang arsitektur messenger multi-perangkat dengan Kotlin Multiplatform, termasuk pembagian shared logic, platform-specific code, backend, dan local storage.

Menjelaskan threat model serta alur identity key, pre-key, session, ratchet, dan metadata dalam komunikasi berbasis Signal Protocol.

Mengintegrasikan library Signal Protocol yang tersedia secara nyata tanpa mengarang API, lalu mengelola proses key generation, session establishment, encryption, dan decryption dengan benar.

Menyimpan key material dan credential secara aman menggunakan mekanisme platform seperti Android Keystore dan iOS Keychain melalui abstraction yang sesuai.

Membangun alur registrasi device, login, device linking, message sync, retry, idempotency, dan conflict handling untuk akun multi-perangkat.

Menghubungkan push notification dengan arsitektur E2EE tanpa mengirim plaintext pesan melalui provider push.

Menguji alur enkripsi, dekripsi, session recovery, offline message, duplicate delivery, dan rotasi key menggunakan test yang terukur.

Menganalisis common mistakes lewat log yang aman, debugging bertahap, serta checklist kesiapan sebelum fitur komunikasi aman dirilis.

Siapa Target Audiens Kursus Ini

Pengembang mobile yang telah menguasai Kotlin atau Swift, arsitektur aplikasi, pemrograman asinkron, REST API, database lokal, dan konsep dasar autentikasi. Cocok untuk Android developer, iOS developer, atau pengembang Kotlin Multiplatform yang ingin membangun aplikasi komunikasi aman dengan standar teknis mendekati produk production-grade.

Project outcomes

Apa yang Akan Anda Buat

Kamu akan membangun aplikasi messenger multi-perangkat dengan Kotlin Multiplatform. Aplikasi ini mendukung registrasi dan login, device identity, linking perangkat baru, percakapan satu lawan satu, pengiriman pesan terenkripsi end-to-end, penyimpanan lokal, sinkronisasi pesan, retry saat koneksi putus, dan push notification untuk memberi tahu penerima bahwa ada pesan baru.

Backend berfungsi sebagai relay dan penyimpan data terenkripsi, bukan sebagai pihak yang bisa membaca isi pesan. Push notification hanya membawa data minimum seperti event atau identifier yang tidak sensitif. Di akhir kursus, kamu punya vertical slice yang bisa diuji dari client sampai backend, lengkap dengan test untuk skenario multi-device, offline, duplicate message, dan session recovery.

Konten Kursus

Fondasi Keamanan dan Arsitektur Messenger Multi-Perangkat

5 pelajaran | 175 menit
Memetakan Threat Model untuk Messenger E2EE
35 menit
Memahami End-to-End Encryption dan Signal Protocol
40 menit
Merancang Arsitektur Client, Server, dan Relay
35 menit
Model Data Pesan, Device, dan Conversation
35 menit
Menyiapkan Repository dan Strategi Pengembangan Aman
30 menit

Kotlin Multiplatform untuk Core Messenger

5 pelajaran | 210 menit
Struktur Project Kotlin Multiplatform Modern
35 menit
Membuat Domain Model dan Repository Contract
40 menit
Coroutine, Flow, dan State pada Shared Layer
45 menit
Dependency Injection dan Platform Abstraction
40 menit
Worked Example: Shared Message Timeline yang Runnable
50 menit

Implementasi Signal Protocol dan Secure Key Management

5 pelajaran | 235 menit
Komponen Cryptographic Identity dan Pre-Key
45 menit
Memilih dan Mengintegrasikan Library Signal Protocol
40 menit
Membuat Session dan Mengirim Encrypted Envelope
55 menit
Session Store, Key Store, dan Secure Storage
50 menit
Safety Number, Trust State, dan Key Change
45 menit

Backend Relay, Sinkronisasi, dan Multi-Device Delivery

5 pelajaran | 240 menit
API Contract untuk Registration dan Key Bundle
40 menit
Membangun Ciphertext Relay dengan Kotlin Backend
55 menit
WebSocket Realtime dan Delivery Acknowledgement
50 menit
Sinkronisasi Pesan Antar-Perangkat
50 menit
Offline Queue, Retry, dan Duplicate Protection
45 menit

Push Notification Tanpa Membocorkan Isi Pesan

5 pelajaran | 210 menit
Arsitektur FCM, APNs, dan Push Gateway
35 menit
Mendaftarkan dan Merotasi Device Push Token
40 menit
Mendesain Payload Push yang Privacy-Aware
40 menit
Background Fetch, Decryption, dan Notification UX
50 menit
Debugging Push Delivery di Android dan iOS
45 menit

Reliability, Testing, Observability, dan Production Hardening

5 pelajaran | 225 menit
Unit Test untuk Crypto Boundary dan Use Case
45 menit
Integration Test Multi-Device dan Offline Scenario
50 menit
Security Testing dan Audit Checklist
45 menit
Observability Tanpa Logging Plaintext
40 menit
Release Readiness, CI/CD, dan Incident Response
45 menit

Proyek Akhir: Membangun Koper Messenger

5 pelajaran | 420 menit
Perancangan dan Setup Koper Messenger
75 menit
Implementasi Identity, Key Bundle, dan Secure Session
90 menit
Implementasi Relay, Chat Timeline, dan Multi-Device Sync
90 menit
Integrasi Push Notification Android dan iOS
75 menit
Pengujian, Hardening, Deploy, dan Presentasi Koper Messenger
90 menit

Deskripsi Kursus

Kamu akan membangun aplikasi messenger multi-perangkat dari fondasi sampai alur komunikasi yang aman. Fokusnya bukan sekadar membuat chat bisa mengirim pesan, tapi memahami bagaimana identity key, session key, pre-key, message encryption, sinkronisasi perangkat, dan push notification bekerja dalam satu sistem yang masuk akal untuk production.

Kita mulai dari arsitektur dan threat model, lalu masuk ke shared business logic dengan Kotlin Multiplatform. Setelah fondasinya jelas, kamu akan mengintegrasikan implementasi Signal Protocol dari library yang benar-benar tersedia, menyimpan key material dengan aman di Android dan iOS, serta menghubungkan client dengan backend melalui REST API, database lokal, dan koneksi asinkron.

Setiap bagian dibangun bertahap lewat worked example yang runnable, code breakdown, guided practice, dan independent practice. Kamu juga akan membedah bug yang sering muncul, seperti session tidak tersinkron, duplicate message, key yang tersimpan tidak aman, serta push notification yang disalahgunakan sebagai tempat membawa plaintext. Intinya, kamu bukan cuma mengikuti tutorial, tapi belajar mengambil keputusan teknis seperti developer yang sedang menyiapkan fitur komunikasi aman untuk produk nyata.

Rating & Ulasan

0 ratings