您好,登錄后才能下訂單哦!
前言:
在看這邊文章前,可以建議看下:圖形界面操作系統發展史——計算機界面發展歷史回顧
從CS到BS,現在的前端開發,其實也是GUI開發范疇。現今
HTML&CSS,Winform&WPF,Universal Windows APP,JAVA GUI, Android,iOS……
不一而足,先讓我們看看
我覺得java是最好學的語言。也是像我這種非科班出生的,踏入碼農行業的敲門磚(看C c++ 學了一年,也就hello word,會寫幾個demo界面)。
做java開發,從AWT/Swing、SWT/JFace,這個有IBM的大佬總結,傳送門:https://www.ibm.com/developerworks/cn/java/j-gui/
我覺得,無論是c還是java,還是 后面的hmlt ,UI開發 總可以借鑒基本的 Swing Class 樹
Object *Component Container *JComponent *AbstractButton JButton JMenuItem JCheckBonMenuItem JMenu JRadioButonMenuItem *JToggleButton JCheckBox JRadioButton Box Filler JColorChooser JComboBox JDesktopIcon JFileChooser JInternalFrame JLabel JLayeredPane JDesktopPane JList JMenuBar JOptionPane JPanel JPopupMenu JProgressBar JRootPane JScrollBar JScrollPane JSeparator JSlider JSplitPane JTabbedPane JTable JTableHeader *JTextComponent JEditorPane FrameEditorPane JTextPane JTextArea JtextField JPasswordField JToolBar JToolTip JTree JViewport ScrollableTabViewport Panel Applet JApplet Window Dialog JDialog Frame JFrame JWindow
Winform是XP時代的Windows 桌面程序開發技術。
采用C#語言開發UI和邏輯,沒有使用標簽語言寫UI。
采用事件驅動方法。
Winform現在基本被淘汰了。
Winform是上一代的主流桌面應用程序開發開發技術,這個我從來沒有用過,現在也基本不再使用了。
WPF是新一代微軟圖形界面開發技術。它是隨著Windows Vista推出的。.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。
采用XAML標簽式語言開發UI,可以在Expression Blend可視化設計開發。美工也可以輕易上手。XAML支持DataBind, Data(Item)Template, Style, Storyboard, Rescoure,自定義控件等技術,開發速度快。
支持事件驅動(Code behind)或者數據驅動(MVVM)開發模式
使用GC回收垃圾,XMAL和C#將編譯成CLR中間運行語言,效率比較低,占用內存大
WPF的技術理念非常先進,開發過程也非常友好,也可以做出極為絢麗的界面,可是開發出來的應用體積較大,運行效率比較低,占用內存大,所以沒有普及開來。(大部分我們常見的桌面應用都是C&C++開發)但是因為開發效率高,所以很多企業內部經常使用該技術。
Universal Windows App(UWP)也就是通用Window App 是微軟最新的圖形應用開發技術,它是基于WPF技術演進而來的。
UWP繼承了所有WPF的優點,還可以使用C++和HTML&Javascript來開發,和WPF編譯成中間代碼不同,UWP直接將代碼編譯成機器碼直接運行,極大的提高了效率。一次開發編譯,可以同時在Windows 10,Windows 10 Mobile, XBOX,物聯網IoT設備等其他Windows平臺上運行
采用和iOS APP一樣的沙盒機制,一樣也有電話本,傳感器,地圖,推送等API。
采用響應式布局,可以適配任何分辨率等。
大量使用異步API,保證界面響應為最高級別。
我開發UWP并不多,但是我接觸WPF的時間夠長,所以UWP上手毫無壓力。相比WPF運行在.NET運行時里,UWP是可以編譯成Native Code運行,所以UWP運行效率更高,UI更為流暢。它是目前微軟最為主推的開以技術。
android開發,主要一xml來做界面(當然蛋疼手工寫也可以。
一個界面xml對于一個active,active與active 橋接intent ,
但是,我更加喜歡iOS的界面開發模式(storybord,所以這里略過。
不過我覺得會ios開發的,上手android開發業不難
iOS應用是基于Cocoa框架上的,早期的Cocoa是用來開發Mac 應用的,后來加入了Cocoa touch層API用于iOS。
采用XIB或者Storyboard可視化搭建UI,也可以使用手寫純代碼來開發UI。
采用Objective C 或者 Swift語言開發邏輯。
在Iphone5 加入多種分辨率后,蘋果引入了Autolayout自動布局,它是一種基于約束的,描述性的布局系統。
默認嚴格遵守MVC設計模式,現以也可以使用MVVM開發框架。
采用ARC實現了自動內存管理。
iOS開發技術還有許多要點,這里就省略了,相信看到這篇文章的人都比較熟悉。
各平臺UI開發小結
從上面可以看出,對于UI構建,都是采用類HTML語言。一個HTML標簽表示一個View元素。它即可以當其他View的容器,也可以當內容或者數據的容器。可以用獨立的Style文件來表示樣式,也可以直接放在標簽的屬性里面。每個標簽都可以有Name或者id屬性來讓js或者其他語言直接操作。
iOS其實也和上面的UI開發范式差不多,Storyboard內部其實也是一個XML文件,只不過我們不能直接編輯,只能可視化設計和通過代碼操作。
Web界面是以HTML標簽的形式構建UI,它是HTML語言的最基本的單位。
用尖括號包圍的關鍵詞如
來表示UI元素,通常是成對出現。
如果需要在容器標簽里放其他HTML單位,需要放在標簽對里面。
一些HTML元素屬性,放在第一個HTML標簽里。以鍵值對的形式存在,比如type = 'text'。
使用Form來提交表單,Http(HTTPS)協議和服務器通訊。
通常通過CSS來控制HTML元素的外觀。
通常通過Javescript來控制HTML元素。采用Ajax技術異步通信,實現局部刷新等。
這里就不給示例了,總是來說前端Web開發博大精深,新的技術框架層出不窮,當一個前端工程師也不容易。
從backbone,angular,到現在react+redux ,層出不窮,疲于奔命。你學了ie,還有firefox,還有chrome,……
一如前端深似海。
但是,前端的好處就是,統一GUI開發。我并不喜歡RN的開發模式,覺得還是
html+css+js 自己定制webkit殼,然后,你想怎么玩就怎么玩。(俗話中webapp……
吃飯去了,不扯了……
閑暇之余再來侃大山!
參考文章:http://www.open-open.com/lib/view/open1463552171634.html
文有不妥請告知,轉載請注明來源:漫談GUI開發-各種平臺UI開發概況 - xml - 周陸軍的個人網站
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。