最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

我們?nèi)绾螢锳urora創(chuàng)建移動(dòng)銀行:本國(guó)移動(dòng)OS的開(kāi)發(fā)功能

2020-06-20 13:07 作者:嚴(yán)溪居士  | 我要投稿

VTB博客移動(dòng)應(yīng)用開(kāi)發(fā)移動(dòng)應(yīng)用設(shè)計(jì)IT金融
最近,我們已經(jīng)完成了Aurora OS(唯一的俄羅斯移動(dòng)操作系統(tǒng))下的移動(dòng)互聯(lián)網(wǎng)銀行應(yīng)用程序的開(kāi)發(fā)。在短短幾個(gè)月內(nèi),我們創(chuàng)建了一個(gè)應(yīng)用程序,使您可以訪問(wèn)VTB Bank的所有基本服務(wù)。通過(guò)該應(yīng)用程序,您可以為購(gòu)買(mǎi)和服務(wù)付款,轉(zhuǎn)賬到卡和帳戶(hù),使用付款模板等等。在這篇文章中,我們將分享應(yīng)用程序的歷史,并討論家用移動(dòng)操作系統(tǒng)的開(kāi)發(fā)功能。

?


您需要了解的有關(guān)Aurora下的開(kāi)發(fā)的知識(shí)


我們決定在Aurora OS上為銀行創(chuàng)建一個(gè)移動(dòng)應(yīng)用程序,而無(wú)需更改后端的任何內(nèi)容并使用現(xiàn)有協(xié)議。開(kāi)發(fā)工作是有遠(yuǎn)見(jiàn)的項(xiàng)目形式,這對(duì)條款(不超過(guò)3-4個(gè)月)和預(yù)算施加了嚴(yán)格的限制。
為了開(kāi)發(fā)應(yīng)用程序,該平臺(tái)的創(chuàng)建者提供了SDK(軟件開(kāi)發(fā)套件)。這套包括:

基于Qt Creator的集成環(huán)境-一種跨平臺(tái)的免費(fèi)IDE,可以在C,C ++和QML中進(jìn)行開(kāi)發(fā)。它具有代碼編輯器,設(shè)計(jì)器和調(diào)試器。

Build Engine-用于構(gòu)建應(yīng)用程序的工具,包括為i486和armv7hl體系結(jié)構(gòu)開(kāi)發(fā)項(xiàng)目。它是基于Oracle VirtualBox的虛擬機(jī)。

在內(nèi)部裝有該系統(tǒng)的完整功能的Sailfish OS模擬器也是基于Oracle VirtualBox的虛擬機(jī)。

API示例,手冊(cè)和文檔。


Sailfish OS SDK適用于Linux,Windows和Mac OSX。該平臺(tái)的應(yīng)用程序用C ++和Qt框架(QML的圖形界面)編寫(xiě)。您可以連接JavaScript。
Qt框架用于創(chuàng)建跨平臺(tái)的C ++應(yīng)用程序,并且是Aurora OS中的主要開(kāi)發(fā)環(huán)境。它提供了最常用設(shè)備功能的訪問(wèn)接口,并包含用于實(shí)現(xiàn)QML接口的QtQuick庫(kù)。

Qt QML模塊定義并實(shí)現(xiàn)了QML語(yǔ)言,這是一種基于JavaScript的聲明性編程語(yǔ)言。該模塊具有將QML轉(zhuǎn)換為Qt類(lèi)的機(jī)制,這使得描述用戶(hù)界面成為可能。對(duì)于在Sailfish OS下進(jìn)行開(kāi)發(fā),可以同時(shí)使用C ++和Python,這對(duì)于資源要求不高的應(yīng)用程序特別方便。

Sailfish OS SDK包含Sailfish Silica-一個(gè)包含特定于該平臺(tái)的QML組件的模塊:它們外觀并由Sailfish OS的應(yīng)用程序標(biāo)準(zhǔn)進(jìn)行管理。使用這些組件使得隨后很難將開(kāi)發(fā)的應(yīng)用程序移植到其他平臺(tái)。例如,在Qt上開(kāi)發(fā)Android應(yīng)用程序時(shí),將使用Sailfish不支持的QtQuick.Controls組件。反之,Android上不支持二氧化硅組件。

關(guān)于Silfish應(yīng)用程序的標(biāo)準(zhǔn)大小,字體,縮進(jìn),顏色和其他樣式組件的信息包含在Silica庫(kù)的Theme組件中。此外,操作系統(tǒng)還具有確定應(yīng)用程序外觀和行為的預(yù)定義“氣氛”列表:背景圖像,顏色和聲音方案。

大多數(shù)現(xiàn)代移動(dòng)設(shè)備都配備有傳感器:方向,照明,旋轉(zhuǎn),角度,接近度,磁場(chǎng)強(qiáng)度,加速度計(jì)等。在Aurora操作系統(tǒng)中,提供了Qt Sensors API來(lái)使用它們。SQLite數(shù)據(jù)庫(kù)充當(dāng)設(shè)備上的數(shù)據(jù)存儲(chǔ)。LocalStorage庫(kù)提供了從QML訪問(wèn)數(shù)據(jù)的功能。

標(biāo)準(zhǔn)Qt框架類(lèi)提供對(duì)地理位置信息的訪問(wèn)。要使用位置,請(qǐng)使用“ Qt定位”和“ Qt位置”模塊。Qt Network和Qt WebSockets庫(kù)負(fù)責(zé)發(fā)送和處理網(wǎng)絡(luò)請(qǐng)求,其中包含為此所需的所有類(lèi)。

典型應(yīng)用架構(gòu)


使用MVC(模型-視圖-控制器)編程模式是設(shè)計(jì)應(yīng)用程序的最常見(jiàn),最有效的技術(shù)之一。Qt中也提供了這種方法的變體-模型視圖模板。

模型/表示體系結(jié)構(gòu)仍然將數(shù)據(jù)的存儲(chǔ)方式與向用戶(hù)呈現(xiàn)的方式分開(kāi),但是基于與MVC相同的原理提供了一個(gè)簡(jiǎn)單的結(jié)構(gòu)。

?

在此,模型負(fù)責(zé)數(shù)據(jù)并對(duì)其進(jìn)行訪問(wèn)。由于在圖形界面中,相同的元素通常負(fù)責(zé)顯示元素并接收用戶(hù)的輸入,因此將視圖和控制器結(jié)合起來(lái)的想法似乎是合乎邏輯的。

這就是Qt的工作原理:該視圖不僅顯示數(shù)據(jù),而且還執(zhí)行控制功能,并且還負(fù)責(zé)與用戶(hù)進(jìn)行交互。為了不失去靈活性,我們引入了委托的概念。委托使您可以確定如何顯示此數(shù)據(jù)以及用戶(hù)如何更改它。該視圖實(shí)際上變成了代表實(shí)例的容器。

為了彼此交互,模型,視圖和委托使用信號(hào)和插槽:

來(lái)自模型的信號(hào)通知視圖數(shù)據(jù)源中的數(shù)據(jù)更改;

來(lái)自演示文稿的信號(hào)提供有關(guān)用戶(hù)與所顯示元素交互的信息;

在編輯期間會(huì)使用來(lái)自委托的信號(hào);它們會(huì)通知模型并查看編輯器的狀態(tài)。


設(shè)計(jì)特色:在Aurora中不失個(gè)性


用于Aurora OS的VTB移動(dòng)銀行應(yīng)用程序的開(kāi)發(fā)始于其外觀的定義。在此階段,操作系統(tǒng)的功能已經(jīng)使我們擺脫了通常的方法。事實(shí)證明,在Aurora下的應(yīng)用程序中應(yīng)用VTB公司樣式-公司顏色,字體,徽標(biāo)和其他設(shè)計(jì)元素-是有問(wèn)題的。

首先,在Aurora OS中,所有屏幕元素(例如屏幕本身(頁(yè)面))都具有半透明的背景,因此無(wú)法始終對(duì)其進(jìn)行重新定義。例如,諸如Button之類(lèi)的元素沒(méi)有類(lèi)似的屬性(盡管從版本3.1。*開(kāi)始,出現(xiàn)了一種控制渲染的方法)。使用Rectangle + MouseArea,您可以繪制自己的元素,但這已經(jīng)與Aurora OS應(yīng)用程序樣式的概念背道而馳。

其次,字體的顏色,各種重音和背景以及應(yīng)用程序中元素的大小由所謂的“大氣”(Aurora OS中電話屏幕的主題)確定。您可以使用手機(jī)的預(yù)裝氛圍之一,也可以自定義自己的自定義主題。

這些功能可以節(jié)省開(kāi)發(fā)時(shí)間,而應(yīng)用程序在任何設(shè)備上的外觀都不錯(cuò)。但是如何不失去企業(yè)色彩呢?Aurora OS的應(yīng)用程序并不多,尤其是對(duì)于移動(dòng)銀行而言,沒(méi)有人可以窺視。因此,我們決定保留透明性,而不是脫離Aurora風(fēng)格,而是要個(gè)性化地將VTB徽標(biāo)放置在應(yīng)用程序的每個(gè)屏幕上。

Aurora OS具有許多現(xiàn)成的UI元素,包括針對(duì)用戶(hù)的新元素,例如,下拉菜單。它們?cè)谄聊簧巷@示為突出顯示的條。要進(jìn)行呼叫,必須向下(PullDownMenu)或向上(PushUpMenu)拖動(dòng)屏幕。

?

?

但是,要在不相關(guān)的屏幕之間導(dǎo)航,我們?nèi)鄙僦T如Android或iOS中的底部導(dǎo)航欄之類(lèi)的元素。我們不想發(fā)明另一種類(lèi)型的導(dǎo)航,所以我們做了類(lèi)似的組件。他切換屏幕“主要”,“產(chǎn)品”,“付款”,“展示”和“其他”。

?

與服務(wù)器交互協(xié)議的實(shí)現(xiàn)


Web Bank API使用一種罕見(jiàn)的數(shù)據(jù)交換協(xié)議-Burlap。使用這種輕量級(jí)的自描述XML RPC協(xié)議,不再需要外部IDL或WSDL文件。粗體調(diào)用是URL的HTTP POST。參數(shù)以Burlap XML格式序列化并傳輸?shù)椒?wù)器。

為了在Qt中使用此協(xié)議,我們沒(méi)有找到現(xiàn)成的庫(kù),我們不得不編寫(xiě)自己的對(duì)象解析器。在HTTP請(qǐng)求和響應(yīng)的主體中,Burlap可以使用指向XML中已經(jīng)描述過(guò)的對(duì)象的指針(refs)。為了正確讀取指針編號(hào),必須反序列化接收對(duì)象的整個(gè)層次結(jié)構(gòu)。否則,鏈接計(jì)數(shù)器會(huì)飛,而不是沿著它拉動(dòng)所需的東西。

解析器經(jīng)過(guò)很長(zhǎng)時(shí)間的調(diào)試:在開(kāi)發(fā)過(guò)程中,出現(xiàn)了新類(lèi)型的對(duì)象,指向集合的指針等。在Qt中實(shí)現(xiàn)了Burlap支持之后,我們開(kāi)始實(shí)現(xiàn)應(yīng)用程序協(xié)議。

操作應(yīng)用程序協(xié)議的功能


服務(wù)器端應(yīng)用程序協(xié)議的實(shí)現(xiàn)是靈活和高級(jí)的。借助它的幫助,您可以遠(yuǎn)程控制腳本,以用于移動(dòng)或Web應(yīng)用程序的幾乎所有操作。

該操作的腳本包括幾個(gè)階段。每個(gè)階段都定義了一組UI元素和相關(guān)數(shù)據(jù),對(duì)事件的反應(yīng),輸入掩碼和正則表達(dá)式,以及在此執(zhí)行階段用戶(hù)可使用的操作。

為了提供所有這些功能,我們開(kāi)發(fā)了一種用于動(dòng)態(tài)創(chuàng)建UI元素的機(jī)制。服務(wù)器返回的UI元素的類(lèi)型范圍很廣。對(duì)于每種類(lèi)型或類(lèi)型集,我們使用其自己的屬性列表創(chuàng)建了單獨(dú)的QML類(lèi)。原來(lái)有幾十個(gè)此類(lèi)。另外,在操作的每個(gè)階段,都會(huì)調(diào)用用于創(chuàng)建這些相同元素的腳本,從而形成屏幕內(nèi)容。

QML和JS的組合既方便又靈活。在Aurora OS中,比在Android或iOS中實(shí)現(xiàn)起來(lái)容易得多。


結(jié)果,該機(jī)制確保了幾乎所有付款交易的執(zhí)行:向約1000個(gè)不同服務(wù)提供商的地址付款,通過(guò)電話號(hào)碼,卡,賬戶(hù)之間的賬戶(hù)以及另一自然人或法人賬戶(hù)的資金轉(zhuǎn)賬。

地理位置和地圖


為了方便用戶(hù),我們希望將帶有ATM標(biāo)記區(qū)域地圖的屏幕添加到應(yīng)用程序中。Sailfish OS不使用用于Android和iOS開(kāi)發(fā)人員的常用API來(lái)處理地圖,例如Google Map或Yandex.Maps。

地圖數(shù)據(jù)和其他有用信息的來(lái)源是平臺(tái)創(chuàng)建者和獨(dú)立開(kāi)發(fā)者提供的插件。Aurora操作系統(tǒng)有兩個(gè)插件可用:OpenStreetMap和HERE WeGo。我們使用OpenStreetMap是因?yàn)镠ERE WeGo需要API密鑰。

?

對(duì)于地理定位,Qt框架提供了兩個(gè)模塊:Qt定位和Qt定位。第一個(gè)子系統(tǒng)可以獲取有關(guān)設(shè)備當(dāng)前位置的信息,第二個(gè)子系統(tǒng)可以對(duì)地圖上的信息進(jìn)行地理編碼和顯示。
這些插件和庫(kù)使我們能夠顯示帶有地圖和所有添加的ATM的屏幕。但是起初,當(dāng)前的地理位置沒(méi)有正確確定:我們?cè)赑aveletskaya地鐵站的莫斯科辦公室中,并且參議院廣場(chǎng)出現(xiàn)在屏幕上-默認(rèn)值。

事實(shí)證明,錯(cuò)誤的原因是手機(jī)中缺少SIM卡。在這種情況下,通常會(huì)執(zhí)行GPS傳感器的冷啟動(dòng)-這需要花費(fèi)大量時(shí)間。傳感器本身可能不是最強(qiáng)大的:使用了INOI R7。10-15分鐘后,盡管有錯(cuò)誤,仍可以確定位置。也許在“干凈的領(lǐng)域”中可以更好地定義坐標(biāo)。

項(xiàng)目組裝


為了使用Qt Creator,我們使用Windows工作站。最初,一切都進(jìn)行得很順利,但是從2.1.1版更新了Sailfish SDK之后。在2.2.4中,應(yīng)用程序的匯編開(kāi)始執(zhí)行的時(shí)間要長(zhǎng)很多倍。我們求助于WMD的開(kāi)發(fā)人員,發(fā)現(xiàn)問(wèn)題與在Build Engine VM上執(zhí)行IDE組裝命令并連接到它的延遲有關(guān)。平均而言,僅通過(guò)SSH連接到VM大約需要50-60秒,而檢查從IDE到VM的連接只需要一秒鐘。

如果直接使用構(gòu)建引擎在VM上構(gòu)建而不使用IDE,則可以解決該問(wèn)題。但是我們不僅需要構(gòu)建,還需要調(diào)試應(yīng)用程序,并且沒(méi)有IDE的話,它非常慢且不便。我不得不切換到Linux,那里的問(wèn)題不是很?chē)?yán)重。

結(jié)果


?

我們有一個(gè)有效的應(yīng)用程序。盡管它并不完美,但我們還有一些工作要做:

方便地輸入應(yīng)用程序?,F(xiàn)在,為此使用SMS代碼。

使應(yīng)用程序充分發(fā)揮功能并加速其工作;

充分利用Aurora操作系統(tǒng):基于加密GOST 28147-89和增強(qiáng)的電子簽名的SSL。


該應(yīng)用程序可以使用了。因此,邁出了在家用移動(dòng)操作系統(tǒng)上開(kāi)發(fā)生態(tài)系統(tǒng)的第一步。

感謝幫助我們進(jìn)行此應(yīng)用程序的“ Net1 Universal Technologies”公司,以及“ Open Mobile Platform”公司的員工,他們?yōu)榻鉀Q開(kāi)發(fā)過(guò)程中出現(xiàn)的問(wèn)題提供了不斷的咨詢(xún)和幫助。



我們?nèi)绾螢锳urora創(chuàng)建移動(dòng)銀行:本國(guó)移動(dòng)OS的開(kāi)發(fā)功能的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
石台县| 会昌县| 故城县| 邢台市| 河源市| 高碑店市| 泗阳县| 横峰县| 西安市| 陕西省| 广汉市| 体育| 锡林郭勒盟| 赤水市| 涿州市| 新闻| 大埔区| 新沂市| 政和县| 旌德县| 武清区| 新郑市| 阜宁县| 罗源县| 德化县| 白朗县| 洱源县| 南京市| 祁阳县| 久治县| 正镶白旗| 平江县| 南昌县| 乡城县| 巴楚县| 阜南县| 临邑县| 龙门县| 芒康县| 岫岩| 灵寿县|