Bagaimana kami mengembangkan aplikasi seluler di Aurora OS (Sailfish Mobile OS RUS)

Tim kami telah mengembangkan dan mendukung aplikasi seluler perusahaan untuk menerima pembayaran dalam kerangka sistem pembayaran untuk pelanggan besar. Sekarang ini digunakan oleh karyawan pelanggan pada perangkat yang menjalankan sistem operasi Aurora (sebelumnya Sailfish Mobile OS RUS) di tiga puluh tujuh wilayah Rusia. Dalam posting ini saya akan secara singkat berbicara tentang proyek ini dan lebih detail tentang OS itu sendiri.


Latar belakang


Perusahaan kami NORBIT telah mengembangkan sistem pembayaran untuk satu pelanggan besar. Sistem ini mencakup bagian server dan beberapa klien: desktop, web, dan aplikasi seluler di sistem operasi Android. Awalnya, sistem ini diterapkan di beberapa wilayah di Federasi Rusia. Pada tahun 2016, pelanggan memutuskan untuk memperluas kehadiran regional, dan saat ini sistem telah diimplementasikan dan berhasil beroperasi di 37 wilayah.

Pada tahun 2017, pelanggan memutuskan untuk menggunakan perangkat pada perangkat lunak domestik dan membeli beberapa ribu perangkat INOI R7 dengan Aurora OS (Sailfish Mobile OS RUS). Tim kami ditugaskan menciptakan klien sistem pembayaran seluler lainnya.

Hanya butuh beberapa bulan untuk berkembang. Itu adalah tantangan yang menarik, karena semua pekerjaan harus diatur dari awal. Kami perlu membentuk tim, membangun proses pengembangan, menguji dan merilis versi baru secara teratur. Saya akan berbicara secara singkat tentang tahap-tahap ini.


Bagaimana proyeknya


Untuk memulainya, perlu dipahami kekuatan apa yang harus diterapkan semua ini. Saya membutuhkan tim, tetapi tidak ada spesialis siap pakai di pasar Aurora OS.

Di sini kita harus membayar penghormatan kepada platform itu sendiri. Pengembangan di bawah Aurora OS dilakukan menggunakan kerangka Qt. Dan untuk menulis aplikasi sederhana, Anda dapat menggunakan bahasa deklaratif QML, yang dalam banyak kasus memungkinkan Anda untuk tidak menggunakan pemrograman tingkat rendah dalam C ++. Akibatnya, tugas bermuara pada pencarian pengembang yang masuk akal untuk Qt, yang, secara keseluruhan, sudah cukup.

Oke, tim sudah terbentuk, kita perlu mengejar ketinggalan dengan pelanggan lainnya dalam hal fungsionalitas. Tenggat waktu singkat - kami hanya punya beberapa bulan untuk memperbarui fungsionalitas yang ada dan mengimplementasikan fitur baru. Di atas segalanya, selain pertempuran dengan logika bisnis, pertempuran dengan platform itu sendiri menunggu kita. Itu perlu untuk menyelesaikan banyak pertanyaan, tetapi kami tidak memiliki jawaban yang siap pakai untuk mereka. Dengan stackoverflow, Anda tidak akan menyalin solusi dengan cepat, karena arahnya baru dan kami adalah yang pertama. Berikut ini beberapa di antaranya.

Konektivitas Bluetooth dengan KKM


Proyek ini membutuhkan dukungan register kas (KKM) dari ATOL dan Shtrikh. Kedua produsen KKM menghasilkan produk dengan kemampuan untuk terhubung melalui Bluetooth. Contoh bekerja dengan Bluetooth dapat ditemukan di situs web Qt .

"Barcode" memasok driver untuk bekerja dengan KKM dalam bentuk kode sumber, yang dapat diunduh dari tautan . Ada juga contoh proyek menggunakan driver.

Driver untuk ATOL dapat diunduh dari situs dengan kata kunci untuk pencarian "Driver peralatan komersial". Dalam proyek kami, kami menggunakan driver versi kedelapan.

Pada awal proyek ada KKM baik dengan dukungan 54-, dan tanpa. Oleh karena itu, diperlukan dukungan untuk empat jenis mesin kasir (ATOL / Barcode dengan 54- / tanpa 54-).

Bekerja dengan pembaruan basis data besar


Setiap pagi, karyawan pelanggan memperbarui informasi referensi pada rekanan mereka di ponsel mereka. Karena terdapat cukup banyak kontraktor (beberapa ribu, tergantung wilayah), memperbarui direktori memerlukan waktu hingga 1 menit. Awalnya, komitmen dilakukan setelah memasukkan masing-masing pihak. Setelah mereka mulai membuat komitmen setelah memasukkan semua informasi bantuan, waktu untuk memperbarui direktori dibelah dua (satu komit besar).

Optimasi Pembuatan Aplikasi


Pada awalnya, "kesalahan anak-anak" dibuat pada proyek - termasuk file header dalam file header. Transisi untuk meneruskan deklarasi memungkinkan untuk secara signifikan mengurangi waktu pembangunan proyek. Selain itu, dibutuhkan banyak waktu untuk membangun dan menginstal proyek untuk membuat paket rpm. Jika Anda memilih jenis instalasi "salin file biner", memasang kembali, menginstal dan memulai proyek dalam debugging akan berlangsung dalam hitungan detik. Selain itu, untuk perakitan lebih cepat pada emulator, Anda dapat menonaktifkan perakitan kelas untuk bekerja dengan barcode dan register kas. Opsi pemasangan non-rpm berpotensi berbahaya karena dependensi tidak akan naik.

Aplikasi pembuatan otomatis


Anda dapat mengatur rakitan aplikasi tanpa memulai lingkungan pengembangan. Jika Anda membangun dari lingkungan pengembangan, maka di konsol perakitan Anda dapat melihat perintah yang sedang berjalan. Perintah yang sama dapat dijalankan melalui bash atau batch.

Namun terlepas dari semua kesulitan, kami telah menyelesaikan tugas yang ditetapkan oleh pelanggan. Pada 31 Desember 2017, aplikasi berhasil diluncurkan, dan pembayaran pertama diterima. Saat ini, aplikasi ini berjalan di beberapa ribu perangkat seluler yang menjalankan Aurora OS.

OS Aurora


Sekarang mari kita bicara lebih banyak tentang sistem operasi dan fitur-fiturnya.


Aurora OS (sebelumnya Sailfish Mobile OS RUS ) adalah sistem operasi tepercaya untuk perangkat seluler (smartphone dan tablet). Ini sedang dikembangkan oleh perusahaan Open Mobile Platform . Sistem ini didasarkan pada platform OS Sailfish dan dirancang untuk pengguna korporat dan perusahaan pemerintah.

Pada tahun 2018, Rostelecom mengakuisisi 75% dari perusahaan Open Mobile Platform dan saham pengendali dalam proyek Finlandia. Pada saat yang sama, diputuskan untuk mengganti nama Sailfish Mobile OS Rus dengan sistem operasi Aurora. Ini lebih cocok untuk pasar domestik dan, sebagaimana dipahami oleh penulis, memenuhi tujuan produk, dan juga menyebabkan asosiasi positif baik di Rusia maupun di luar negeri.

Kata “tepercaya” berarti bahwa organisasi yang menyediakan perangkat kepada karyawannya pada OS Aurora memiliki kendali penuh atas perangkat itu sendiri dan data yang mereka gunakan. Keamanan penyimpanan dan transmisi data dipastikan dengan algoritma enkripsi sesuai dengan GOST dan dikonfirmasi oleh sertifikat FSB dan FSTEC .

Untuk mengelola perangkat seluler, produk SF Cloud juga sedang dikembangkan oleh Open Mobile Platform. Ini adalah solusi server yang dapat digunakan pada peralatan organisasi pelanggan dan memungkinkan Anda untuk memantau status perangkat seluler karyawan kapan saja, menginstal, memperbarui dan menghapus aplikasi pada perangkat, mengelola pembaruan OS, memblokir akses ke perangkat, dan menghapus data dengan aman (menghapus )


Siklus pengembangan penuh dari OS Aurora berlangsung di Rusia. Ini memungkinkannya untuk masuk ke Unified Register program komputer dan basis data Rusia. Saat ini, ini adalah satu-satunya OS seluler dengan status ini, jadi kompatibilitas dengannya merupakan prasyarat untuk aplikasi seluler dari registri.

Di bawah tenda, OS Aurora memiliki lingkungan yang kompatibel dengan POSIX. Yaitu, Linux yang lengkap untuk perangkat seluler. Misalnya, tidak seperti Android, di luar kotak ada systemd, D-Bus, ssh dan layanan dan utilitas lain yang akrab dengan distribusi "besar" pada PC. Pada saat yang sama, sistem menyertakan komponen libhybris , yang dirancang untuk menggunakan driver dari lingkungan Bionic pada sistem yang kompatibel dengan POSIX. Ini memungkinkan Anda untuk menjalankan OS Aurora pada perangkat yang awalnya dirancang untuk Android. Termasuk ada dukungan resmi untuk Sony Xperia X dan Sony Xperia XA2.

Hampir semua API yang diperlukan disediakan menggunakan kerangka kerja Qt dan pustaka tambahan berdasarkan padanya, yang juga digunakan untuk mengimplementasikan aplikasi dan layanan sistem. Lisensi Qt memungkinkan Anda untuk menulis aplikasi terbuka dan kepemilikan. Dalam kasus kedua, kepatuhan terhadap aturan LGPL adalah persyaratan penting, tetapi ketika menggunakan perpustakaan Qt secara komersial, persyaratan ini menjadi opsional.

Sailfish SDK tersedia untuk umum dan juga berorientasi pada Qt. Ini termasuk komponen berikut.

Qt Creator adalah IDE yang dikembangkan oleh proyek Qt dan menyediakan integrasi yang dalam dan alat-alat untuk pekerjaan yang nyaman dengan perpustakaan Qt. Dukungan Sailfish Mobile OS RUS dicapai melalui plug-in yang mengkonfigurasi kit bangunan yang sesuai untuk arsitektur ARM dan x86 serta kontrol build dan emulasi.


Lingkungan build adalah lingkungan Linux dengan seperangkat alat dan tujuan , yang dikemas dalam mesin virtual untuk VirtualBox. Distribusi dalam format ini memungkinkan Anda untuk menggunakan alat bangun yang sama, terlepas dari sistem operasi pengembang - Linux, Windows dan macOS didukung, tetapi juga memberlakukan sejumlah pembatasan. Sebagai contoh, proyek-proyek untuk Aurora OS perlu ditempatkan di direktori tertentu yang dapat dilihat oleh mesin virtual: direktori home pengguna atau direktori alternatif yang ditentukan selama instalasi SDK.

Emulator adalah mesin virtual untuk VirtualBox yang menyertakan gambar OS Sailfish yang dikompilasi untuk x86. Bahkan, ini adalah kumpulan lengkap sistem operasi, yang memungkinkan Anda untuk memeriksa banyak aspek aplikasi. Tetapi pada saat yang sama, lebih mudah untuk menggunakan perangkat fisik untuk memverifikasi, misalnya, penggunaan sensor.

Qt QML Live adalah alat yang memungkinkan Anda untuk "mengubah" antarmuka aplikasi grafis dengan cepat ketika membuat perubahan pada file QML proyek tanpa harus membangun kembali paket instalasi. Pendekatan ini secara signifikan dapat mempercepat pengembangan antarmuka pengguna.

Dokumentasi adalah serangkaian artikel referensi yang mencakup deskripsi API yang disediakan oleh Qt dan komponen khusus untuk OS Aurora: misalnya, dokumentasi Sailfish Silica. Dokumentasi tersedia untuk bacaan terpisah dan dalam format bantuan konteks yang disebut elemen yang dipilih dalam editor kode sumber.

Untuk mulai mengembangkan aplikasi untuk Aurora OS, Anda tidak hanya dapat mempelajari dokumentasi, tetapi juga mengambil kursus pelatihan. Ada kursus pengantar publik tentang platform Stepik yang menjelaskan langkah-langkah pertama dan aspek utama pengembangan. Selain itu, karyawan mitra perusahaan Open Mobile Platform dapat, atas permintaan di edu@omprussia.ru, mendapatkan akses ke kursus pelatihan yang lebih komprehensif, termasuk, termasuk pelajaran tentang penggunaan sensor, navigasi, multimedia, dll.

Hasil pengembangan aplikasi adalah paket instalasi rpm. Sebelum dia menjadi karyawan perangkat perusahaan pelanggan, dia harus melalui langkah-langkah berikut.

1. Ditandatangani dengan sertifikat pengembang yang valid. Sebenarnya, tahap ini merupakan bagian integral dari paket paket instalasi, karena tidak hanya file rpm yang ditandatangani, tetapi juga file yang termasuk dalam komposisinya. Ketersediaan memungkinkan Anda untuk memeriksa asal paket instalasi, serta integritas strukturnya. Untuk menandatangani, Anda perlu mendapatkan alat pembangkit kunci dan sertifikat pengembang, untuk ini mitra dari perusahaan Open Mobile Platform dapat mengirim permintaan yang sesuai ke dev-support@omprussia.ru .

2. Transfer paket instalasi ke administrator SF Cloud. Bergantung pada organisasi alur kerja, tahap ini dapat diimplementasikan dengan cara yang berbeda. Penting bahwa sebagai hasilnya, paket tersebut harus diunduh ke gudang penyimpanan SF Cloud dan tersedia untuk didistribusikan ke perangkat melalui panel kontrol. Pada saat yang sama, ketika mengunduh ke repositori, tidak hanya ada verifikasi tanda tangan paket, tetapi juga kebenaran struktur file rpm, yang tunduk pada sejumlah persyaratan (karena standardisasi lokasi komponen aplikasi dan persyaratan keamanan). Sebagai contoh:

  • file spesifikasi yang digunakan untuk membangun paket tidak boleh menggunakan bagian% pre,% post,% preun,% postun,% verifyscript;
  • skrip dalam file spesifikasi paket aplikasi tidak boleh memodifikasi atau menghapus file yang ada;
  • nama file aplikasi yang dapat dieksekusi dan awal nama paket aplikasi adalah sama dan hanya berisi huruf kecil, angka, dan garis putus-putus;
  • file yang dapat dieksekusi terletak di path / usr / bin / {nama proyek};
  • File desktop terletak di jalur /usr/share/applications/{project_name►.desktop;
  • ikon-ikon tersebut terletak di jalur / usr / share / icons / hicolor / {resolution} / apps / {nama proyek} .png;
  • file tambahan yang digunakan oleh aplikasi terletak di direktori / usr / share / {nama proyek}.


Untuk mengotomatiskan verifikasi persyaratan tersebut, gunakan skrip validator-rpm. Pemeriksaan serupa tersedia di SDK dan dapat dipanggil dari IDE di pusat kontrol Build Engine. Penting untuk mengklarifikasi bahwa pengaturan skrip validator rpm dapat ditentukan oleh platform target dan persyaratan pelanggan. Anda bisa mendapatkan rpm-validator untuk build Aurora OS bersertifikat di "Open Mobile Platform" berdasarkan permintaan ke dev-support@omprussia.ru .

3. Distribusi ke perangkat karyawan melalui panel administrasi SF Cloud. Tahap ini, sebagai suatu peraturan, meliputi pengujian teknis dan fungsional pada sekelompok kecil perangkat. Saat memasang file rpm pada perangkat dengan build bersertifikat OS Aurora, tanda tangan dan strukturnya juga diperiksa. Pengembang dapat terlibat dalam memperbaiki kesalahan yang terjadi sebelum mengunduh semua karyawan ke perangkat.

Aurora OS tetap satu-satunya sistem operasi seluler yang memenuhi persyaratan FSB dan FSTEC.

Kami siap dalam komentar untuk membahas fitur pengembangan aplikasi seluler pada Aurora OS.

Artikel ini disiapkan dengan dukungan dari perusahaan Open Mobile Platform

Source: https://habr.com/ru/post/id475652/


All Articles