不管是手機端還是桌面系統,歸根結底都是使用系統開放的圖形API進行界面開發。
Windows和macOS不用說,GUI已經被打包在系統中,而Linux的界面目前必需使用X-Server,當然這些已經被隱藏在了桌面系統的背后,應用程序開發無需擔心。
也就是說,想要學習圖形桌面開發,就必須要學習某一特定平臺的系統API,這足矣開發出能夠正常與用戶交互的圖形界面。
再來看看游戲等復雜圖形軟件的開發,這就需要掌握圖形學的基礎,也就是各種變換,這就涉及線性代數和微分幾何,或者分形幾何等等,需要更高的數學基礎才能進行,當然也可使用現有的引擎來構建這種應用,但想進階,這些必不可少。再次基礎上,就是對一些圖形接口的學習,比如opengl,directx等,會一個就可以,都是大同小異的。
再說桌面開發,目前存在很多跨平臺的桌面應用框架,比如Qt,wxwidget等,這可以減輕對眾多系統的眾多API的學習負擔