Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
當下,構建交互式應用程序的主流技術是 Web 技術,其中包括 HTML、CSS 與 JavaScript。
在過去的 10 年,Web 技術生態(tài)發(fā)生了翻天覆地的變化,包括層出不窮的開發(fā)框架,諸如 React、Vue、Svelte,也包括日新月異的前端工程化工具,比如 Webpack、esbuild、Vite 等等。
但歸根結底,他們都逃不開 HTML、CSS、JavaScript 三劍客的范疇。
Web 技術生態(tài)成熟、穩(wěn)定,然而卻存在一個致命的問題:使用 Web 技術去構建跨平臺應用程序并不是一件簡單的事情。
這也是為什么許多平臺特定的框架(platform-specific frameworks)與跨平臺框架(cross-platform frameworks)依然受到歡迎的原因。
比如其中最著名的跨平臺框架 Flutter,它部分基于瀏覽器引擎的技術,實現(xiàn)了「編寫一次,全平臺運行」的目標。而且這些框架,也基本不使用 HTML、CSS 這些 Web 技術。這是為什么呢?
因為 HTML 誕生的目的問題,以及 HTML 與 CSS 的開發(fā)體驗問題。
HTML 即超文本標記語言,最初是三十年前為了制作可鏈接的文檔而發(fā)明的,而不是為了做應用程序。它更多是一種標記而不是一種語言。大多數(shù)人甚至都不將編寫 HTML 視為編程,因為它根本不是一種編程語言。
直到出現(xiàn) HTML5 (通常被稱為 H5)、CSS3 和 ES5 版本之后的 JavaScript,人們才逐漸開始用這些技術制作 Web 應用程序。在那之前,HTML 只是用于完成他最開始的目的。
但做成 Web 應用的可行性,最大還是來自于 JavaScript 性能的提升。
上面是 Lin Clark 介紹 JavaScript 性能歷史的一張圖。從2008年開始,JavaScript 性能就開始飛速提升。這對于應用程序的最終用戶來說有巨大的好處,因為做出來的應用程序終于不卡了,甚至可以對性能有所期待了。
但是,對于開發(fā)者來說,仍然逃不開編寫 HTML+CSS。
就算使用一些前沿的前端框架,如 React、Vue、Angular 等,我們?nèi)匀恍枰帉戭愃?HTML 的代碼,并仔細調(diào)整 CSS 或者 CSS 預處理器(如 SCSS、Saas)的樣式表。
這緩慢、枯燥、而且乏味。
太多的人力、時間被浪費在實現(xiàn)圖形用戶界面的細節(jié)上,使用一些并不是一開始就為了 UI 而設計的技術。這導致開發(fā)者經(jīng)常要來回調(diào)整樣式、處理瀏覽器兼容性問題、應用奇怪的 CSS 技巧、避開性能陷阱等等。
另外,還需要在過度發(fā)展的 NPM 生態(tài)系統(tǒng)中,使用那些復雜的前端工程工具來進行應用程序的構建。這個過程效率也非常低下,開發(fā)體驗非常痛苦。更不要說 Web 應用在跨平臺需求中會遇到更多的陷阱,比如平臺兼容性、體積大小、性能問題,等等。
此刻,我們質(zhì)疑,堅持使用 HTML 和 CSS 的理由到底是什么?
然后我們再回過頭來看看其他的非 Web 框架。
Electron 首先被我們排除。雖然微軟用它做出了 VSCode 這樣成熟的跨平臺應用程序,但也投入了巨大的成本,并且一般開發(fā)者可沒有這么雄厚的財力。
但最關鍵的是,VSCode 其實是用 Web 技術做出來的,Electron 只是幫助它做成了跨平臺應用而已。
看看我們還有什么其他選擇:
隨著近年來 Web 應用的比例不斷增加,桌面端應用逐漸式微。但正是因為 Web 應用在跨端上的致命問題,這些非 Web 框架仍有一席之地,并且看上去也具有不可替代性。
當然,其中的某些年代過于久遠的開發(fā)框架,開發(fā)人員的體驗甚至比編寫 HTML 更糟糕,因為他們可能被迫編寫類似于這樣的命令式和面向?qū)ο?/span>的代碼。
var count = 0
let stack = new VStack
let text = new Text("Count: \(count)")
stack.add_child(text)
let button = new Button("Increment")
button.set_onclick(||
count += 1
text.set_text("Count: \(count)")
)
stack.add_child(button)
不是編寫聲明式且響應式的代碼,就像程序員一直夢寐以求的這樣:
struct AppState {
count: i32
}
VStack {
Text("count: \(state.count)")
Button("Increment") {
state.count += 1
}
}
這就是為什么 Flutter 看起來像是開發(fā)應用程序的靈丹妙藥:
不過也還是有開發(fā)者不喜歡 Flutter,因為它引入了另一種新的、陌生的語言 Dart,以及額外的虛擬機負擔。
Flutter 真正的問題在于與現(xiàn)有生態(tài)系統(tǒng)的兼容性,因為人們傾向于更喜歡重用已建立的資源和維護成熟的應用程序。編程語言也是出于同樣的原因。
為了解決 Flutter 的一些問題,有些優(yōu)秀開發(fā)者們嘗試開發(fā)了 Flutter 的 JavaScript 版本,雖然后來失敗了。因為 Flutter 本身正在迅速迭代,以至于兩者無法融洽。不過這部分的工作導致誕生了 Kraken 框架,它允許編碼人員編寫 HTML,并使用 Flutter 引擎進行跨平臺渲染。
等等...發(fā)生了什么?在非 Web 框架中再次編寫 HTML?
不!再也不想寫 HTML 了!
盡管如此,我們不得不承認,HTML+CSS 是表示 UI 的一個很好的組合,因為:
但是在實踐中,UI 的工程有時是沒有意義且不必要的。假設我們已經(jīng)有了設計師提供的高保真設計原型,編碼人員需要做的是:
第一部分總是讓人頭疼的源頭:涉及大量的細節(jié)、耗時、需要與設計師進行討論反復溝通,溝通成本很高,如果設計更新,代碼也需要更新,也許還需要另一場“昂貴”的討論。
更不用說,這種工作通常被視為費時費力沒技術含量工作,也因此就有了大家聽到的前端程序員通常被其他非前端程序員所鄙視。
一些聰明的開發(fā)者想出了使用編譯器技術或更具體地說是轉換器技術來實現(xiàn)設計到代碼的解決方案,將整個高保真設計轉換為機器生成的 HTML+CSS 代碼。這個就是所謂的 Design to Code。
但它是為產(chǎn)品經(jīng)理和設計師量身定制的,而不是為開發(fā)人員。這種內(nèi)在問題包括但不限于:
總之,從開發(fā)者的角度來看,Design to Code 不是一個好的技術解決方案。
現(xiàn)在讓我們看看什么是 Design as Code。
在 VGG 所倡導的 Design as Code 開發(fā)流程中,用戶可以在某種程度上拋棄 HTML+CSS。
因為設計稿完全替代了 HTML+CSS 的角色,設計就是代碼。請記住 VGG 的第一性原則:通過消除冗余的開發(fā)工作來彌合設計與開發(fā)兩方之間的巨大鴻溝。
很明顯的優(yōu)勢:圖形用戶界面的設計和開發(fā)只需要進行一次,因為兩者實際上是一體的。因此兩者的摩擦、討論會減少,這讓雙方都更高效。
對于開發(fā)人員來說,他們能夠直接在設計文件上編寫業(yè)務邏輯,然后由 VGG 將其運行為一個交互式圖形應用程序。這可以節(jié)省大量重復的工作,不僅提高了開發(fā)人員的工作效率,也為整個團隊增加了工作效率。
Design as Code 的想法很簡單,但它實現(xiàn)起來非常困難,比如會遇到來自編譯器技術、編程接口抽象和圖形渲染方面的工程挑戰(zhàn)。
因此,為了實現(xiàn) VGG 的 Design as Code 開發(fā)流程
VGG 天生就有著對開發(fā)生態(tài)很好的兼容性。相比于低代碼,VGG 是一套真正為開發(fā)者設計的工具。小結:
基于以上兩點,VGG 以及它主打的 Design as Code 可以為現(xiàn)代交互式應用開發(fā)帶來巨大的好處。在最終用戶對用戶界面的實際使用效果沒有明顯感知差異的前提下,大大提升了應用開發(fā)者的開發(fā)體驗,甚至可以讓設計師、產(chǎn)品經(jīng)理來承擔一部分的界面開發(fā)工作:無非是把現(xiàn)有的設計工具當作一個 UI Builder 來使用罷了。
下面引用來自 VGG Github 首頁的一張圖,來更好地說明 Design as Code 的概念與 VGG 的有機組成:
在這篇文章中,我們討論了 Web 技術、特定平臺的框架、跨平臺框架、Design to Code 解決方案以及基于 VGG 開源引擎的 Design as Code 開發(fā)流程。
我們提出了 Design as Code 的概念,介紹了 VGG 作為一個全新的開發(fā)交互式圖形應用程序的框架。但 VGG 仍然年輕,因為還有許多技術挑戰(zhàn)需要克服,VGG 運行時引擎現(xiàn)已開源,歡迎大家一起參與 VGG 開源社區(qū)共建。
關于 VGG 的更多細節(jié)將在后續(xù)的文章中討論。如果您感興趣,可以繼續(xù)閱讀官方博客和文檔
https://blog.verygoodgraphics.com/
迎觀看Illustrator教程,小編帶大家學習 Illustrator 的基本工具和使用技巧,了解如何在 Illustrator 使用畫板和命令導航畫板。
在 Illustrator 中如想創(chuàng)建一個宣傳冊這樣的多頁文檔或一個多頁面的web設計,可以創(chuàng)建一系列畫板。在本文中,我們將學習什么是畫板以及如何瀏覽包含多個畫板的文檔。
打開文件, 要查看文件的全部內(nèi)容,依次選擇「視圖」-「全部適合窗口大小」。
在 Illustrator 中創(chuàng)建文檔時,首先應該創(chuàng)建至少一個畫板。畫板就像InDesign或 Microsoft Word 中的頁面一樣,代表可供打印的區(qū)域。如文檔中所見, 畫板可能具有不同的尺寸和方向。也可以按照自己的喜好排列畫板,甚至把它們重疊在一起。
畫板周圍的大片灰色區(qū)域,叫做畫布區(qū)域,適合盛放可能不會打印或?qū)С龅膬?nèi)容。例如當前用不上的替代圖像或圖稿(圖標)。
針對包含多個畫板的文檔,您需要了解如何在 Illustrator 中高效地瀏覽這些畫板。在「工具」面板中選擇「選擇工具」,單擊左側第一個畫板中的圖稿。
注意,畫板周圍的這些小黑線表示這個畫板處于活動狀態(tài),也就是正在處理的這個畫板。
依次選擇「視圖」-「畫板適合窗口大小」。使用這個命令,將活動畫板調(diào)整到適合文檔窗口的大小。
「畫板適合窗口大小」或「全部適合窗口大小」等「視圖」菜單命令是在畫板之間進行切換的好辦法,也可以使用「屬性」面板瀏覽畫板。
依次選擇「選擇」-「取消選擇」,如果這個選項可選,確保未選中任何圖稿。
在無圖稿被選中時,文檔中的所有畫板全部被列入此「屬性」面板菜單中。
要在畫板之間進行切換,從此菜單中選擇畫板編號或者單擊向前或向后的箭頭。
選中的畫板,會自動調(diào)整到適合「文檔」窗口的大小。
有時候,無論選中了什么內(nèi)容,都可以轉到左下角,在文檔下方找到更快速瀏覽畫板的方法。單擊「畫板導航」菜單,查看帶有對應名稱的畫板列表。
選擇 Business Card Front 名片字體,查看該畫板,并將其調(diào)整到適應「文檔」窗口的大小。
要再次查看內(nèi)容中的全部畫板,依次選擇「視圖」-「全部適合窗口大小」。
現(xiàn)在已經(jīng)了解了什么是畫板,以及如何在文檔中高效地瀏覽畫板,下次處理多畫板文檔時,就能更容易地從一個畫板切換到另一個畫板。
要關閉而不保存文檔, 依次選擇「文件」-「關閉」。
以上就是在 Illustrator 中使用畫板和命令導航畫板的方法。
llustrator矢量圖軟件下載地址:Illustrator 2020 for Mac(ai 2020 直裝版)
https://www.macz.com/mac/5120.html?id=NzY4OTYwJl8mMjcuMTg2LjExLjEwMw%3D%3D
windows系統(tǒng)軟件下載地址:Adobe Illustrator CC 2020(矢量圖形軟件)
https://soft.macxf.com/soft/731.html?id=MjkzODQ%3D
迎觀看Illustrator最新版教程,小編帶大家學習 Illustrator2020中文版的基本工具和使用技巧,了解如何在 Illustrator 中使用顏色混合器創(chuàng)建色板以及色板的淺色調(diào)。
在Illustrator中文版中,可以創(chuàng)建許多不同類型的顏色。在這個圖標中,可以看到一些較深的橙色和一些淺橙色,較淺的顏色可以給等距圖賦予立體感。這些較淺的橙色稱為原始橙色的淡色調(diào),淡色調(diào)為原始顏色較淺的版本。
在本文中,我們將創(chuàng)建一個右側所示的圖形,用橙色填充某些形狀,然后再創(chuàng)建一些淺色調(diào)的橙色用來填充其他形狀。首先創(chuàng)建并保存一種顏色,選擇「選擇工具」,點擊選擇右側這個形狀。
要更改填充顏色,在右側的「屬性」面板中點擊「填色」,在顯示的面板中選擇「色板」,對這個形狀應用色板下的默認顏色。
但是在這里要混合創(chuàng)建一種新的顏色,點擊頂部的「顏色混合器」按鈕。使用這里的顏色滑塊來混合顏色,對于這個文件,顯示的是用于打印的典型油墨顏色,分別為藍綠色、品紅、黃色和黑色。
除此之外還可以在底部的「色譜」中來選擇顏色,在色譜中點擊鼠標,來選擇和應用顏色,每點擊一下,就會選擇一種顏色。
而且可以看到所選顏色中藍綠色、品紅、黃色和黑色的比例,應用顏色后將它保存為色板,這樣就可以在其他位置重復使用。
點擊頂部的「色板」按鈕,切換到文件自帶的默認色板,要保存你剛才創(chuàng)建的顏色,點擊下方的「新建色板」按鈕。
在打開的「新建色板」對話框中,更改「色板名稱」將它改為「圖標」。
要創(chuàng)建這種顏色的淺色調(diào)版本需要選中「全局色」選項,該選項默認選中,這樣在你進行編輯時,整個圖中的全局顏色將會自動更新,點擊「確定」保存顏色。
現(xiàn)在顏色已經(jīng)保存為色板,可以將它應用到圖中了。
點擊選中這個形狀,然后按住 Shift 鍵點擊,選擇更多形狀,選擇完成后,松開 Shift 鍵。
要更改填充顏色,在右側點擊「填色」,并選擇「色板」,選擇顏色「圖標」。
現(xiàn)在來創(chuàng)建「圖標」色板的淺色調(diào)版本。首先選擇要對其應用淺色調(diào)的圖形,點擊這個n形狀,然后按住 Shift 鍵點擊再選中這個I形狀。
要應用「圖標」色板,點擊「填色」顏色之后選擇該色板。
要創(chuàng)建該顏色的淺色調(diào)版本,點擊上方的「顏色混合器」按鈕。
這里只有一個名為「T」的滑動條,向左側拖動滑塊使顏色變淺,把它拖動到「35」左右,色調(diào)的范圍是 0 到 100%,數(shù)值越低顏色越淺。
現(xiàn)在將該色調(diào)保存為色板,以便再次使用,點擊上方的「色板」圖標,要保存它,點擊底部的「新建色板」按鈕。
在面板中可以看到一個新的「圖標」色板,如果將鼠標移動到它上面,可以看到它的名稱和色調(diào)百分比。
如果要更改原始的圖標顏色,那么基于原始顏色的所有色調(diào)都將發(fā)生變化,來試一下。點擊并選中這個圖形,要編輯填充顏色,在右側點擊「填色」顯示色板后,雙擊「圖標」色板進行編輯。
在出現(xiàn)的對話框中,選擇「預覽」查看任何更改,試著拖動一個顏色滑塊來更改顏色,可以看到你保存的基于「圖標」色板的色調(diào)同樣發(fā)生了改變,點擊「確定」。
可以簡單練習一下嘗試對這些白色形狀應用圖標顏色,然后嘗試創(chuàng)建新的色調(diào)將顏色和色調(diào)保存為色板,可以有助于你更方便地為自己的作品增添創(chuàng)意。
以上就是在 Illustrator 中使用顏色混合器創(chuàng)建色板的方法。
adobeillustrator破解版下載地址:Illustrator 2020 for Mac(ai 2020 直裝版)
https://www.macz.com/mac/5120.html?id=NzY4OTYwJl8mMjcuMTg2LjE1LjI0OA%3D%3D
windows軟件激活地址:Adobe Illustrator2022(AI 2022)
https://soft.macxf.com/soft/1246.html?id=MjkzODQ%3D
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。