Pindah ke konten utama
Capgo logo

Proses Pengawasan Kualitas: Rilis Aplikasi yang Lebih Aman

Membangun proses jaminan kualitas yang menangkap masalah-masalah awal, mengirimkan perbaikan cepat, dan pulih dari insiden tanpa menunda rilis di toko aplikasi.

Proses Pengawasan Kualitas: Rilis Mobile yang Lebih Aman

Meskipun Anda memiliki lalu lintas CI hijau, Anda masih bisa mengirimkan aplikasi yang rusak. Pembangunan berhasil, QA menyetujui, rilis keluar, dan kemudian pengguna nyata pertama menghadapi prompt izin yang tidak pernah kembali, bundle JavaScript yang ketinggalan zaman, atau crash yang hanya muncul pada satu kulit Android. Itu adalah bagian yang paling banyak proses pengawasan kualitas guides abaikan, dan itu adalah bagian tim mobile biasanya belajar dengan cara yang keras.

Praktis Proses pengawasan kualitas adalah lingkaran tertutup, bukan daftar checklist yang berakhir ketika seseorang mencatat kecacatan. Ini dimulai dengan spesifikasi dan desain tes, tetapi hanya menjadi berguna ketika temuan kembali ke keputusan rilis, pemantauan, rollback, dan putaran tes berikutnya. Jika Anda mengirimkan aplikasi CapacitorJS atau Electron, lingkaran itu lebih penting karena satu bundle web yang buruk dapat mempengaruhi setiap pengguna sekaligus sementara tinjauan native masih memperlambat perbaikan permanen.

Isi Kandungan

Apa yang Dilakukan Proses Jaminan Kualitas Modern Secara Nyata

Sistem Proses Pengawasan Kualitas is a closed loop with clear control points. The practical sequence is analisis kebutuhan, perencanaan tes, perancangan tes dan pengembangan kasus, pengaturan lingkungan, eksekusi, pengawasan defek, pengujian ulang dan regresi, validasi rilis, dan penutupan tesKontrol yang paling penting masih kontrol yang biasa saja. traceability dari spesifikasi ke tes dan proses formal triage dan verifikasi kerusakan, karena perbaikan tidak dihitung sampai telah diverifikasi sebelum ditutup, seperti yang dijelaskan dalam Proses Pengawasan Kualitas dari TestSigma.

Diagram yang menggambarkan Loop Pengawasan Kualitas Terus-Menerus yang terdiri dari empat langkah iteratif: Rencana, Tes, Rilis, dan Belajar.

Loop tidak berhenti pada rilis

Pengawasan kualitas yang baik tidak berakhir ketika kandidat rilis hijau. Ini terus berlanjut melalui validasi produksi, sinyal dukungan, pemulihan live-update, dan desain tes sprint berikutnya. Itulah di mana banyak tim tergelincir, karena mereka menganggap kerusakan sebagai tiket bukan sebagai bukti bahwa spesifikasi, tes, atau pengamanan jalur deploymen perlu diubah.

A useful way to think about QA is as a management system, not a scorecard. The Proses Pengawasan Kualitas guidance points out that many programs miss customer-feedback loops and cross-channel evaluation, and that gap matters in app teams too. If support keeps seeing the same complaint after release, the process didn’t learn, it just measured.

Apa yang perlu diukur sebelum menambahkan alat

Sebelum membeli perangkat lunak tambahan, dapatkan kejelasan tentang sinyal tim Anda yang akan digunakan untuk menentukan apakah bangunan aman. Biasanya berarti mendefinisikan pintu rilis, pemilik untuk setiap pintu, dan kriteria rollback jika sesuatu lolos.

Set awal yang praktis adalah sederhana:

  • Koverasi persyaratanTerdapatnya tes untuk setiap aturan yang dapat dilihat pengguna.
  • Kemiringan keparahan kegagalan dan kepemilikanJadi tim tahu apa yang dirilis dan siapa yang menyelesaikannya.
  • Skop regresi, so fixes don’t reopen old issues in adjacent flows.
  • Isyarat setelah rilis, sehingga umpan balik produksi mengubah siklus tes berikutnya bukan hidup di dashboard.

Untuk tim yang mencoba mengurangi rework manual di proses operasional berdekatan, Dooza panduan pengurangan biaya tenaga kerja is a useful example of how structured review and clear handoffs can cut wasted effort. QA works the same way, when the loop is explicit, people stop guessing.

Jika proses saat ini Anda hanya memberitahu Anda apa yang gagal, bukan apa perubahan selanjutnya, maka itu tidak lengkap. Perbedaan antara rutinitas tes dan sistem kualitas yang sebenarnya. Untuk sudut pandang manajemen rilis yang sesuai dengan mindset tersebut, panduan internal ini tentang proses manajemen rilis sangat cocok dengan pendekatan loop tertutup yang sama.

Menggariskan Tujuan, Lingkup, dan Kriteria Penerimaan yang Dapat Dites

Kualitas QA menjadi lebih tajam ketika bahasa produk berubah menjadi bahasa yang dapat dites. Sebuah persyaratan seperti “buat proses checkout cepat” tidak dapat diverifikasi dengan jelas, sedangkan “tampilkan layar konfirmasi pembayaran setelah penyedia kembali berhasil dan sebelum pengguna menutup aplikasi” dapat dites, dapat dilihat, dan berguna bagi kedua insinyur dan dukungan. Ketelusulan ini adalah salah satu titik kontrol utama dalam model loop tertutup dari bagian sebelumnya.

Tulis kriteria penerimaan dengan cara yang dapat dieksekusi oleh tes

Untuk aplikasi CapacitorJS, pertimbangkan alur pembayaran. Jika aplikasi menggunakan lembar pembayaran pihak ketiga, maka kriteria penerimaan harus mencakup apa yang terjadi ketika lembar berhasil, gagal, waktu habis, atau ditutup. Jika alur bergantung pada izin kamera, izin lokasi, atau persetujuan push, maka setiap cabang perlu memiliki hasil yang dapat dilihat karena prompt izin dapat berbeda pada iOS dan Android.

Contoh template ringan yang baik:

  • Berikan pengguna telah terautentikasi.
  • Mengapa Mereka menekan tombol pembayaran.
  • Lalu Aplikasi menampilkan antarmuka pembayaran dan mengkonfirmasi keberhasilan atau menampilkan kesalahan yang dapat diperbaiki.
  • Dan Acara tersebut dapat dilacak ke tiket rilis, sehingga QA dapat menetapkan kegagalan kembali ke persyaratan.

Poinnya bukanlah membuat setiap kalimat formal. Poinnya adalah memastikan bahwa manusia dapat mengetahui apakah fitur tersebut lolos tanpa berdebat tentang niatnya kemudian. Mengvalidasi pembaruan aplikasi Capacitor karena verifikasi update sering mengekspos kriteria penerimaan yang hilang.

Scope the release by risk, not by optimism

A scoped release is easier to defend than a vague one. High-risk surfaces deserve broader coverage, while low-risk copy changes or isolated UI tweaks can sit behind lighter checks if the dependency surface is small. In practice, that means flagging anything that touches auth, payment, permissions, offline behavior, or native bridges for deeper review.

Aturan Praktis: Jika fitur dapat gagal dalam cara yang menghalangi penggunaan inti, maka perlu kriteria keabsahan eksplisit dan setidaknya satu jalur validasi non-unit.

Fitur yang tidak dapat diuji dengan baik dalam tes unit atau integrasi tidak boleh diabaikan. Mereka memerlukan lapisan lain, seringkali tes manual, pengecekan spesifik perangkat, atau langkah validasi tahap rilis. Hal ini terutama berlaku untuk aplikasi Electron yang bergantung pada dialog OS, akses file, atau kebiasaan browser yang tidak dapat ditiru dengan baik oleh tes komponen.

Jika Anda mendapatkan skop yang tepat, QA tidak akan terasa seperti perdebatan terakhir. Tim tahu apa yang harus dibuktikan, apa yang dapat diuji sampel, dan apa yang memerlukan mata manusia karena batas otomatisasi berakhir di sana.

Pemilihan Campuran yang Tepat dari Pengujian Otomatis dan Manual

Automation gets the attention because it scales, but it only catches what it can model. Manual testing gets dismissed as slow, but it’s often the only way to catch visual drift, device-specific issues, or workflow weirdness that emerges when a human uses the app. A balanced Proses Pengawasan Kualitas Apa yang setiap lapisan dapat lakukan terbaik

Pemilihan Campuran yang Tepat dari Pengujian Otomatis dan Manual

Unit dan pengujian integrasi paling kuat ketika logika adalah deterministik. Di stack CapacitorJS atau Electron, itu berarti Jest untuk logika bisnis, pengurang keadaan, bantuan, dan perilaku komponen, plus pengujian integrasi untuk API batas-batas, parsing pembaruan, dan cabang pengelolaan izin. Cypress cocok ketika Anda ingin coverage akhir-akhir akhir browser yang dipandu oleh browser, sementara Detox-style flows penting ketika Anda membutuhkan interaksi perangkat-level mobile dan Anda dapat menerima biaya perawatan.

Pengujian manual mendapatkan tempatnya di mana konteks penting. Sesi eksplorasi menangkap jalur navigasi aneh, kesalahan mode gelap, kesalahan keyboard pada perangkat kecil, atau model yang menutup terlalu awal pada satu versi OS. Ini juga penting untuk aksesibilitas, karena urutan pembaca layar, jebakan fokus, dan masalah kontras biasanya lebih mudah ditemukan dengan mencoba aplikasi daripada mengandalkan periksa statis sendiri.

Jika Anda ingin melihat kategori otomatisasi dan pertimbangan yang lebih luas, Appjet.ai’s testing tools breakdown adalah titik referensi yang berguna. Bagi tim yang baru saja mengatur stack mereka, Pengujian Otomatis versus Manual oleh Skenario membantu menentukan di mana batas biasanya berada.

Pengujian Otomatis versus Manual Berdasarkan Skenario

Mengapa Terbaik Why
Logika Bisnis Sederhana dalam Modul Bersama Automatis Feedback cepat, masukan stabil, mudah diulang
Pengolahan panggilan penyedia pembayaran Automatis plus manual Logika dapat ditulis skrip, tetapi pengalaman pengguna memerlukan validasi manusia
Pertanyaan izin pada iOS dan Android Manual pertama Perilaku OS dan keadaan perangkat dapat mengubah alur
Pengujian regresi visual pada layar pengaturan Manual plus alat visual Bug tata letak lebih mudah ditemukan dengan pass nyata
Sinkronisasi Offline dan Koneksi Ulang Automasi plus pengujian perangkat Waktu, ulangan, dan pemulihan keadaan memerlukan penutupan yang dapat diulang
Umpan balik beta pada flag fitur baru Manual Perilaku nyata sering kali menunjukkan celah yang tes lewati

Dimana tester beta eksternal membantu

Tester beta eksternal berguna ketika tim internal Anda memiliki konteks yang terlalu banyak. Mereka tidak akan mereproduksi asumsi Anda, yang merupakan tujuan. Mereka sangat efektif untuk kandidat rilis yang menyentuh onboarding, izin pertama kali, atau aliran yang bergantung pada perilaku pengguna yang tidak familiar.

Kebiasaan yang salah adalah terlalu mengandalkan sisi mana pun. Rencana tes yang hanya otomatis mengabaikan nuansa manusia. Rencana tes yang hanya manual menjadi mahal, tidak konsisten, dan mudah dilupakan ketika deadline memburuk. Jawaban yang tepat biasanya adalah basis otomatis yang stabil dengan penutupan manusia yang sengaja pada permukaan yang paling mungkin rusak di dunia.

Pengintegrasian QA ke Dalam Pipa CI CD

CI CD should enforce quality, not just move artifacts. The pipeline works best when each stage has a single job, because mixing concerns makes failures harder to understand and slower to fix. A good proses jaminan kualitas yang baik mengatur periksa di mana mereka menghalangi code buruk, kemudian menyimpan artefak yang sama ketika bergerak menuju rilis.

Proses Pengujian Kualitas yang Terintegrasi dalam Pipa CI/CD Lima Langkah, dari code commit hingga penggunaan.

Prioritaskan pemeriksaan yang murah

Pada setiap commit, jalankan pemeriksaan yang cepat dan deterministik. Pemeriksaan lint, tipe, unit, dan integrasi yang fokus harus gagal sebelum siapa pun menghabiskan waktu untuk membangun biner native. Hal ini menjaga kebisingan rendah dan membuat tahap berikutnya, yaitu pembangunan, layak biaya komputasi.

Setelah itu, pembangunan yang terkunci harus menghasilkan biner iOS dan Android yang ditandatangani ketika ada perubahan native code. Jika perubahan hanya terjadi pada layer web aplikasi Capacitor, Anda masih perlu pipeline untuk membangun bundle web, memvalidasinya, dan mengemasnya dalam cara yang dapat dipromosikan dengan aman. Kunci adalah identitas artefak, bundle yang lolos uji harus sama dengan yang mencapai tahap staging atau produksi.

Promosikan artefak, bukan hanya lingkungan

Promosi lingkungan tanpa promosi artefak adalah di mana tim menciptakan gesekan. Anda ingin bundle yang sama bergerak dari QA internal ke staging ke produksi selalu mungkin, karena jika tidak, Anda sedang menguji satu hal dan mengirimkan yang lain. Hal ini berlaku sama sekali pada aplikasi Electron, di mana pengemasan dan penandatanganan harus menjadi bagian dari pintu rilis, bukan postscript.

Aturan praktis: Jika sebuah build tidak dapat dilacak dari komit ke artefak yang ditandatangani ke versi yang di-deploy, maka pipeline Anda kekurangan rantai bukti yang dibutuhkan QA.

Untuk Capacitor tim, alat pembaruan hidup dapat mengurangi kesenjangan antara verifikasi dan peluncuran. Paket web yang telah diuji dapat dikirim ke tahap pengujian tanpa harus membangun kembali biner native, yang membuat iterasi jauh lebih cepat ketika shell native belum berubah. The pengaturan integrasi terus-menerus petunjuk adalah relevan di sini karena CI harus tahu bagaimana cara menerbitkan paket yang telah diverifikasi ke saluran yang tepat secara otomatis.

The versi singkat adalah sederhana. CI CD tidak harus bertanya, “Apakah bangunan berhasil?” Namun, harus bertanya, “Apakah artefak ini tepat benar telah melewati periksaan yang tepat, di lingkungan yang tepat, dengan pengamanan yang tepat di depan pengguna?”

Tambahkan periksa integrasi pada tahap akhir

Beberapa kegagalan hanya muncul ketika sistem eksternal terlibat. Itulah di mana perjalanan akhir-ke-akhir membantu, terutama untuk penyedia autentikasi, gateway pembayaran, token push, atau alur verifikasi SMS. Jika Anda membutuhkan titik acuan yang lebih luas untuk penutupan tes integrasi di alur kerja platform, petunjuk tes integrasi SMS Aktif Perlu verifikasi eksplisit untuk dependensi eksternal, bukan harapan.

Ketika pipa ini dibangun dengan cara ini, QA tidak lagi menjadi upacara terpisah. Ia menjadi bagian dari pengiriman itu sendiri.

Staging, Canary, dan Phased Rollouts Tanpa Permainan Tebak-Tebakan

Staging, canary, and phased rollout are not interchangeable. They solve different problems, and teams get into trouble when they use one as if it were all three. A healthy pengujian kualitas yang sehat menganggap mereka sebagai strategi rilis terpisah dengan jangkauan ledakan dan titik keputusan terpisah.

Diagram perbandingan yang menjelaskan strategi rilis perangkat lunak yang berbeda, termasuk staging, canary, dan roll-out fase.

Apakah setiap tahap rilis untuk apa

Staging adalah titik kontrol penuh-fidelity terakhir sebelum produksi. Ia harus meniru produksi sebaik mungkin sehingga tim dapat memvalidasi bangunan, aliran data, dan pengemasan rilis dalam kondisi nyata.

Canary adalah untuk belajar dari bagian pengguna nyata yang kecil. Ia menampilkan masalah perangkat dan jaringan yang spesifik yang seringkali terlewatkan oleh staging karena dunia lebih kompleks daripada lingkungan pra-prod.

Roll-out fase meningkatkan paparan secara bertahap setelah pertama kali tanda-tanda sehat muncul. Ia adalah cara yang paling aman untuk memperluas jangkauan ledakan karena Anda tidak bertaruh seluruh basis pengguna pada keputusan rilis tunggal.

Bagaimana Capgo-style channel terkait dengan strategi rilis

Untuk alat pengupdatean hidup, desain channel sangat penting. Satu channel dapat melayani QA internal, yang lain dapat menargetkan kelompok beta, yang ketiga dapat menampung gelombang produksi pertama, dan yang keempat dapat ada hanya untuk rollback darurat. Pemisahan itu memberikan teknik dan dukungan cara untuk mengisolasi risiko tanpa harus menunggu pengajuan toko baru.

Proses ini juga di mana pengalokasian perangkat yang ditarget membantu. Jika pengguna atau perangkat tertentu memerlukan debugging, sebuah saluran dapat ditetapkan hanya untuk kasus tersebut, yang menjaga versi dasar lainnya dalam kondisi yang diketahui baik. Capgo mendukung jenis aliran kualitas jaminan yang ditargetkan untuk Capacitor aplikasi, yang berguna ketika bug sulit untuk direproduksi dan Anda perlu mengamati satu perangkat tanpa mengubah status rilis orang lain.

Kriteria lulusan harus eksplisit

Sebuah bangunan harus maju hanya ketika bukti mengatakan bahwa itu bisa. Biasanya berarti tahap awal melewati pengecekan yang ditentukan, tidak ada pola kecelakaan baru muncul, dan antrian dukungan tidak terisi dengan keluhan yang sama. Jika signal tidak jelas, tahan bangunan di mana saja.

Aturan promosi sederhana membantu:

  • Pengujian internal ke stagingNamun hanya setelah artefak yang tepat melewati pengecekan asap dan aliran pengguna kritis.
  • Pengujian staging ke canaryHanya setelah lingkungan penuh kefidelity mencapai perilaku yang diharapkan.
  • Pengujian canary ke peluncuran berangsur-angsurSetelah pengguna awal menunjukkan perilaku stabil dan dukungan, baru bisa menjelaskan rilis dalam istilah sederhana.
  • Peluncuran berjenjang ke produksi penuhNamun hanya setelah observabilitas produksi tetap bersih cukup lama untuk tim Anda percayai trennya.

Bagian itu yang menghilangkan spekulasi. Promosi menjadi keputusan berdasarkan bukti, bukanlah perayaan kemajuan.

Observabilitas dan Metrik yang Menangkap Masalah Sebelum Pengguna Melaporkannya

Setelah rilis diluncurkan, QA tidak menghilang. Bentuknya berubah. Observabilitas produksi adalah bagian dari proses jaminan kualitas Proses Pengawasan Kualitas that tells you whether the release behaved the way the tests said it would, and whether users are encountering failures your lab environment never saw. For mobile and cross-platform apps, that means looking at per-device signals, update health, and error patterns together.

Amati sinyal yang menggambarkan kesulitan pengguna

Untuk aplikasi Electron atau __CAPGO_KEEP_0__, log per-device berarti karena rilis yang sama dapat berperilaku berbeda di versi OS, bentuk, atau status update. Platform update live dapat mengekspos data pengadopsian dan gagal per-device, yang memberikan ke tim engineering cara melihat apakah perlu melakukan rollback atau apakah masalah tersebut terisolasi pada bagian kecil.

For a Capacitor or Electron app, per-device logs matter because the same release can behave differently across OS versions, form factors, or update states. A live-update platform can expose adoption and failure data by device, which gives engineering a way to see whether a rollback is needed or whether the issue is isolated to a small slice.

Bagian dari proses jaminan kualitas

Dashboard gagal ketika tidak ada orang yang bertanggung jawab atas respons. Setiap metrik memerlukan pemilik, kondisi peringatan, dan langkah selanjutnya yang standar. Jika gagal update meningkat, ada orang yang harus memutuskan apakah saluran harus dihentikan, bundle dibalik, atau hotfix baru dipublikasikan.

Konfigurasi yang praktis seperti ini:

  • Pengawasan kegagalan dan crash, to detect app instability quickly.
  • Pengawasan adopsi update, untuk melihat apakah pengguna menerima bundle yang diperbaiki.
  • Pemberitahuan tingkat kegagalan, untuk menangkap bundle yang buruk sebelum backlog dukungan tumbuh.
  • Drilldown per perangkat, sehingga tim dapat memisahkan kegagalan luas dari kebisingan platform khusus.

Dashboard hanya berguna ketika mengubah keputusan, jika tidak maka hanya sebuah tangkapan layar dengan lebih banyak tab.

Produksi feed mengirimkan sinyal kembali ke rilis berikutnya

Tim QA terbaik mengubah data pasca-rilis menjadi tes baru. Jika kelas perangkat tertentu gagal menerapkan pembaruan, tambahkan kasus validasi untuk jalur tersebut. Jika ulang coba jaringan berperilaku buruk pada satu platform, buat mode gagal tersebut menjadi bagian dari rencana tes berikutnya. Itulah cara observabilitas menjadi input kualitas bukanlah sisi operasional.

Release tooling becomes part of QA instead of just deployment. When teams can see which devices updated, which ones failed, and which bundle version is live, they can respond before users flood support. Capgo’s per-device logs and channel guardrails fit that model well for teams that need the release process to stay explainable after launch.

Pengembalian Keadaan Darurat, Rollback, dan Belajar Pelajaran yang Tepat

Moments ketika rilis buruk mendarat adalah saat proses jaminan kualitas membuktikan apakah itu nyata. Tim dapat memiliki perencanaan yang kuat, penutupan tes yang memadai, dan pipa yang bersih, lalu kehilangan nilai jika tidak dapat pulih cepat atau belajar dari kesalahan. Itulah mengapa respons keadaan darurat menjadi bagian dari QA, bukan di sampingnya.

Gambar layar dari https://capgo.app

Triage terlebih dahulu, jelaskan kedua

Ketika rilis gagal, pekerjaan pertama adalah memastikan skop. Apakah itu terisolasi pada subset perangkat, terkait dengan satu versi, atau mempengaruhi audiens seluruhnya? Setelah itu jelas, tim dapat memilih antara rollback, pause kanal, atau perbaikan hotfix yang bedah.

Untuk platform live-update, perubahan JavaScript atau CSS dapat sering kali dibalik dalam menit-menit tanpa harus menunggu ulasan App Store atau Play. Hal ini penting karena perbedaan antara pengalaman buruk dan insiden terkendali sering kali tergantung pada seberapa cepat tim dapat menghentikan penyebaran. The Petunjuk Tanggap Insiden adalah referensi yang tepat jika tim Anda ingin memiliki playbook operasional yang lebih bersih untuk fase tersebut.

Tulis ulang tinjauan insiden agar perilaku berubah

Dokumen tinjauan insiden setelah kejadian perlu lebih dari penyebab utama. Dokumen tersebut harus merekam apa yang diamati, apa signal yang tersedia, apa asumsi salah pertama yang dilakukan, dan apa yang dapat menangkap masalah lebih awal. Jika kelas defek yang sama dapat terjadi lagi, dokumen tersebut harus menghasilkan perubahan dalam kriteria penerimaan, kasus uji baru, atau pintu CI.

Hasil output tinjauan yang berguna termasuk:

  • Kriteria penerimaan yang diperbaikijika persyaratan asli terlalu umum.
  • Kasus uji regresi barujika kegagalan dapat dicegah secara teknis.
  • Guardrail peluncuranJika masalah itu harus tetap berada di tahap pengujian lebih lama.
  • A Catatan Dukungan, if customer-facing teams need a better script next time.

Aturan Praktis: Jika postmortem tidak mengubah pintu, tes, atau aturan peluncuran, maka itu mungkin hanya dokumentasi.

Perputaran belajar itu yang memisahkan QA yang dewasa dari teater peluncuran. Peluncuran gagal, tim mengandungnya, dan proses menjadi lebih ketat di tempat yang lemah.


Capgo membantu tim membuat perputaran itu lebih singkat dengan mengirimkan pembaruan hidup, mengarahkan saluran, dan memberikan pemilik peluncuran visibilitas perangkat tingkat perangkat saat sesuatu salah. Proses Pengawasan Kualitas untuk aplikasi CapacitorJS atau Electron, kunjungi Capgo dan lihat bagaimana pembaruan hidup dapat diluncurkan, dirollback, dan dapat diamati dalam model operasi yang sama.

Update langsung untuk Capacitor aplikasi

Ketika bug layer web masih aktif, kirimkan perbaikan melalui Capgo daripada menunggu hari-hari untuk persetujuan toko aplikasi. Pengguna mendapatkan update di latar belakang sementara perubahan native tetap dalam jalur review normal.

Bantuan manusia dari Martin

Mulai Sekarang

Terbaru dari Blog Kami

Capgo gives you the best insights you need to create a truly professional mobile app.