Sebuah klien mobile cross-platform untuk platform, ditulis dalam React Native dengan modul native Android di mana lapisan JavaScript tidak dapat mencapai — pengiriman pesan latar belakang, jendela overlay terapung, pendaftaran perangkat dan penyimpanan kredensial aman.
| Ukuran | Nilai | Sumber | Diukur |
|---|---|---|---|
| Modul asli Android di samping basis kode React Native | Kotlin modules for overlays, background delivery and enrolment | android source tree in the mobile client repository | |
| Sumber Kotlin di klien ponsel | 24 files | find . -name '*.kt' across project repositories | |
| Saluran distribusi yang dioperasikan | 2 (store release and over-the-air update) | mobile release process |
Apa gedung itu mengajarkan kita
Kerangka kerja cross-platform dijual dengan janji bahwa Anda menulis sekali. Anda melakukannya, mungkin untuk delapan puluh persen dari sebuah aplikasi. Seperlima yang tersisa adalah di mana pekerjaannya, dan selalu bagian yang membuat aplikasi merasa asli daripada tertutup: notifikasi yang tiba ketika aplikasi ditutup, overlay yang bertahan dari aplikasi kehilangan fokus, aliran pendaftaran yang menyentuh elemen aman.
Pekerjaan overlay kami adalah ilustrasi yang baik dari kelas bug yang halus. Kepala terapung dibangkitkan untuk pesan apapun yang datang dari percakapan selain yang ada di layar — cukup sederhana, sampai Anda menyadari bahwa lencana belum dibaca digambar dua kali, sekali di JavaScript dan sekali di kode asli, dan bahwa kepala hidup di dua gudang terpisah sehingga menghapus satu meninggalkan yang lain diisi. Dua sumber kebenaran untuk satu elemen visual adalah kerusakan struktural yang paling umum dalam aplikasi ponsel dan hampir tidak pernah terlihat sampai seorang pengguna melaporkan sesuatu yang tidak mungkin.
Pendaftaran mengajarkan kita tentang urutan. Sebuah token pendaftaran sekali pakai dikonsumsi sebelum pendaftaran perangkat selesai, sehingga kegagalan selanjutnya dalam aliran ditampilkan kepada pengguna sebagai 'kode ini sudah digunakan' — sebuah pesan yang mengirim mereka untuk mendukung bukannya mencoba lagi, dan yang menggambarkan gejala bukannya penyebabnya. Menurutkan aliran multi-langkah sehingga pesan kegagalannya tetap benar adalah pekerjaan desain, bukan hanya teknik.
Proses rilis secara sengaja membosankan: build terjadi pada satu mesin yang memiliki toolchain, over-the-air update ditangani terpisah dari rilis toko, dan tidak dilakukan dari laptop pada akhir hari.
Dibangun dengan
- React Native
- TypeScript
- Kotlin
- Android SDK
- push notifications
- WebSocket
Katakan pada kami apa yang Anda coba lakukan
Sebuah percakapan singkat biasanya cukup untuk mengatakan apakah kami orang yang tepat. jika kami tidak, kami akan mengatakannya dan menunjukkan tempat yang lebih baik.
