終極報告:AppStudio類似于移動開發領域的Visual Basic
譯文NSB/AppStudio憑借其Visual Basic風格且支持拖拽操作的IDE方案,顯著簡化了移動Web以及混合型應用程序的開發流程。
遙想1991年剛剛誕生之時,微軟Visual Basic(簡稱VB)憑借著親民化的拖拽操作方式將新手程序員們快速熟悉了如何利用窗口及控件(原本稱為gizmos)實現Windows環境下的程序開發工作。沒錯,這些新手們仍然需要編寫一部分代碼,但這方面的要求較之前已經大幅簡化——而且編碼內容為Basic語言,而非語法遠為復雜的C語言。
由加拿大NS Basic公司打造的同名語言NS Basic則亮相于1994年,它的出現將與VB風格相信的開發環境帶入了蘋果設備。在之后的1998年,該公司又發布了NS Basic的Windows CE版本,我還曾經在《Windows雜志》中對其進行過評測。多年以來,該公司陸續為Palm、塞班以及Windows桌面等系統平臺推出過針對性NS Basic版本,并最終于2010年將NSB/AppStudio正式引入了移動Web開發環境當中。
目前NSB/AppStudio的最新版本為4.2.9,專門面向移動Web與移動混合應用程序的開發任務。AppStudio IDE以JavaScript、HTML 5以及WebKit編寫而已,而且能夠運行在Windows以及Mac OS X平臺之上。這套方案結合了易于學習、易于使用、免費發布以及價格低廉等優勢,這一切幫助AppStudio成為移動Web以及混合應用的開發利器。除此之外,該方案在精神上對VB以及早期Borland可視化編程產品的延續也讓移動Web與混合開發機制被廣大程序員們所接受。
大家可以通過窗體與控件(如圖一所示)以拖拽操作方式實現可運行移動應用程序的構建,此外我們也能夠在NS Basic——在本質上相當于具備一系列擴展的VBScript——或者JavaScript當中進行代碼編寫。在應用程序發布或者運行時(如圖二所示)當中,無論采取本地開發還是服務器開發的方式,任意Basic腳本都能夠被轉譯為JavaScript代碼。大家還可以通過該IDE以任意顯示窗體對JavaScript代碼的運行結果加以顯示(如圖三所示)。
圖一。NSB/AppStudio是一套面向移動Web及混合應用程序開發的可拖拽式IDE,其充分繼承了微軟Visual Basic的精神與指導思想。值得注意的是,其窗體設計工具、工具箱、項目資源管理器、屬性表以及幫助窗口都與Visual Basic如出一轍。
AppStudio IDE內部探秘
在AppStudio IDE(如圖一所示)當中,我們可以找到窗體設計工具、工具箱、項目資源管理器、屬性表以及幫助窗口,這一切都保持著VB時代的設計風格、令人一眼望之即生繼續者之感。該IDE本身并不具備調試功能,不過大家可以通過瀏覽器(如圖二所示)或者在開發PhoneGap應用程序時利用weinre——一款面向網絡頁面的遠程調試工具——完成相關任務。
在友好的界面之下 ,該IDE卻蘊藏著強大的能量。右鍵點擊某一控件即可顯示一套文本密集型操作菜單(如圖四所示),允許大家在這里創建并導航至事件處理器、添加組件并調整當前布局。組件選擇可以說相當豐富,其中包含近六十款控件,從簡單的標簽到復雜的功能部件再到面向金融服務以及社交網絡的接口可謂無所不包。
圖二。運行在Chrome瀏覽器下的簡單NSB/AppStudio窗體。請注意,NSB/AppStudio以本地Web服務器的方式運作。
正如前文所言,目前的AppStudio版本允許大家構建移動Web應用程序以及移動混合應用程序。移動混合應用程序在運作時需要與PhoneGap命令行界面(大家需要在自己的開發計算機或者開發集群當中單獨安裝)以及Adobe PhoneGap Build服務相配合。盡管AppStudio在后端服務方面無法提供太多幫助,但我們仍然可以根據實際需求利用AppStudio開發出具備高復雜度的應用程序。
AppStudio擁有自己的PhoneGap Build標記,但如果大家需要為iOS、Android以及Windows Phone應用程序商店構建應用程序產品,則需要將自己的個人PhoneGap Build標記粘貼到AppStudio當中。(大家可以以月為基礎訂購PhoneGap Build,或者將其作為Greative Cloud訂購服務的組成部分。)大家還需要將一套蘋果登錄密鑰添加到PhoneGap Build當中,而后才能利用其構建iOS應用程序。除此之外,我們也需要通過一臺Mac設備將iOS應用的最終成品上傳至iOS應用程序商店當中。
AppStudio當中包含超過一百套樣本,其中包括“hello, world”以及相關控件使用展示、約三十項Web服務外加十幾套第三方JavaScript庫。其中AppStudio Showcase允許大家體驗其他開發人員利用該產品構建出的應用成果,其中包含約二十款應用——部分免費,也有部分屬于商用應用。
圖三。NSB/AppStudio能夠根據需求將NSBasic代碼轉譯為JavaScript代碼,而后再進行應用程序的運行或者發布。
一款運行在iPad平臺上的食品與飲料訂購應用給我留下了一定印象,它能夠通過Wi-Fi網絡將訂單發送到餐廳的服務器端(運行有MySQL以及一款監聽程序處),而且可以在無Wi-Fi環境下將訂單暫時緩存在iPad的SQLite數據庫當中。這款應用程序的開發人員在一個月之內就打造出了首個版本并提供給某家餐廳實際使用。相較于在AppStudio當中面對令人頭痛的基礎性構建組件,這種開發方式無疑更好、更便捷。
AppStudio應用程序能夠運行在以下平臺之上:
配備iOS 4.3或者更高系統版本的iPhone(任意機型)
配備iOS 4.3或者更高系統版本的iPod Touch(任意機型)
iPad (任意機型)
Android 2.3(或者更高系統版本)設備,在某些早期機型上可能存在功能受限
Windows Phone devices設備(功能受限)
此類應用程序還能夠運行在桌面系統上的Chrome以及Safari瀏覽器當中,其中包含全部功能(假設大家在瀏覽器當中開啟了移動設備模擬功能),而在火狐與IE瀏覽器中功能則受到一定限制。
圖四。右鍵點擊NSB/AppStudio中的某款控件能夠顯示一套文本密集型操作菜單。
部署自己的移動應用程序
AppStudio的運行菜單選項當中包含面向各類服務器的部署操作以及利用PhoneGap實現的構建機制。大家可以將應用程序部署到AppStudio的nsbapp.com測試服務器當中,也可以部署至自己的服務器內部。接下來,我們可以將應用程序下載到自己的設備處。在成功完成部署之后,AppStudio能夠顯示一條URL以及一組QR碼(如圖五所示),從而簡化在移動設備端實現應用程序下載的流程。當我們重新進行部署時,該應用程序會在同一位置進行刷新。
AppStudio提供持久性名-值對存儲,這是一項實驗性功能(基于MongoDB),但只適用于部署至nsbapp.com中的應用程序。我們期待著該功能會在未來發展當中逐步成熟。就目前的情況看,移動后端即服務很可能由此拉開序幕。
圖五。在成功完成部署后,NSB/AppStudio能夠顯示該應用程序的URL以及QR碼,方便用戶通過自己的設備進行掃描。在上圖中,我隱去了自己的個人目錄ID。
由AppStudio創建的移動Web以及混合型應用程序在性能表現上同樣出色到令人吃驚,而且其基本上與由其它移動Web應用構建工具打造的JavaScript成品在性能方面保持一致。這不僅是對JavaScript發展空間的一種測試,同時也證明了NSBasic擺脫原有陳舊.Net框架實現機制、轉而邁出JavaScript轉譯戰略新方向的正確性。
AppStudio的控件非常值得稱道,但它們與Alpha Anywhere中的某些組件相比仍然略遜一籌——后者已經最終實現了在外觀與使用感受方面的本地化轉型,而且能夠實現更多高強度功能(例如與數據庫相結合)。大家可以利用jQuery Mobile ThemeRoller對AppStudio應用程序的外觀進行自定義,但整個實現過程并不像在個人計算機(例如Alpha Anywhere)或者Web IDE(例如Appery.io)上瀏覽CSS主題庫那么輕松。
如果大家剛剛開始涉足移動開發領域,而且并不具備編程工作背景,那么NSB/AppStudio堪稱最為理想的起步開端。但需要注意的是,它與功能齊全的移動IDE以及移動后端即服務平臺相比仍然存在著諸多局限,特別是AppStudio缺乏本地移動應用的支持能力以及對企業級功能的整合能力。不過作為僅需要99美元的開發方案而言,我們也不辦法要求得太多。
NSB/AppStudio 4.2.9 / NS Basic公司單一開發者售價為99.95美元(提供三十天免費試用); 高級支持服務每月價格為95美元(每月約一小時); 升級費用為49.95美元; 教育版(包括教師及全體學生)為每套299.95美元; 企業級版本為每個位置899.95美元,其中包含為期十二個月的高級支持服務。教師可免費使用,每位學生則需支付49.95美元使用費。
優勢
一套便捷且與Visual Basic高度相似的IDE,能夠在Windows與OS X系統平臺上實現移動Web及混合應用程序開發。
易于學習且易于使用。
能夠與Adobe PhoneGap Builder相結合。
面向iOS、Android以及Windows Phone設備。
能夠自動將Basic腳本轉譯為JavaScript,而后加以運行或者發布。
缺點
相較于功能齊全的移動IDE以及移動后端即服務平臺,其功能仍然比較有限。
缺少對本地移動應用的支持能力。
缺少與企業級方案的整合能力。