跳到主要內容

26 篇標記為「Community」的文章

Electron 中的社群倡議

檢視所有標籤

Electron 應用程式意見回饋計畫

·3 分鐘閱讀時間

Electron 正在努力使其發行週期更快且更穩定。為了實現這一目標,我們針對大規模 Electron 應用程式啟動了應用程式意見回饋計畫,以測試我們的 Beta 版本,並向我們回報應用程式特定的問題。這有助於我們優先處理可讓應用程式更快升級至下一個穩定版本的工作。

編輯 (2020-05-21):此計畫已終止。


誰可以加入?

我們針對加入此計畫的應用程式的標準和期望包括以下項目

  • 在 Beta 期間測試您的應用程式 10,000 小時以上的使用者時數
  • 指派一位聯絡人,每週進行簽到以討論您應用程式的 Electron 錯誤和應用程式阻礙因素
  • 您同意遵守 Electron 的行為準則
  • 您願意分享下一個問題中列出的資訊

我的 Electron 應用程式必須分享哪些資訊?

  • 您的應用程式在任何 Beta 版本上執行的總使用者時數
  • 您的應用程式正在測試的 Electron 版本 (例如,4.0.0-beta.3)
  • 任何阻礙您的應用程式升級至正在進行 Beta 測試的發行版本的錯誤

使用者時數

我們理解並非所有人都能分享確切的使用者人數,但更好的資料有助於我們判斷特定版本的穩定性。我們要求應用程式承諾測試最少的使用者時數,目前在 Beta 週期中為 10,000 小時。

  • 10 使用者時數可能是 10 人測試一小時,或是一人測試 10 小時
  • 您可以將測試分散在 Beta 版本之間,例如在 3.0.0-beta.2 上測試 5,000 使用者時數,然後在 3.0.0-beta.5 上測試 5,000 使用者時數。越多越好,但我們理解有些應用程式無法測試每個 Beta 版本
  • CI 或 QA 時數不計入總時數;但是,內部版本會計入

我的 Electron 應用程式為何應該加入?

您應用程式的錯誤將會被追蹤,並在核心 Electron 團隊的關注範圍內。您的意見回饋有助於 Electron 團隊了解新的 Beta 版本表現如何,以及需要完成哪些工作。

我的應用程式資訊會公開分享嗎?誰可以看到這些資訊?

不會,您應用程式的資訊不會與一般大眾分享。資訊會保存在一個私密的 GitHub 儲存庫中,只有應用程式意見回饋計畫和Electron 治理的成員可以檢視。所有成員都已同意遵守 Electron 的行為準則

註冊

我們目前接受有限名額的註冊。如果您有興趣且能夠滿足上述要求,請填寫此表格

每週專案:Jasper

·5 分鐘閱讀時間

本週我們採訪了 Jasper 的建立者,Jasper 是一款基於 Electron 的 GitHub 通知管理工具。


您好!請問您是?

我是 Ryo Maruyama,一位在日本的軟體開發人員。我正在開發 JasperESDoc

Jasper 是什麼?

Jasper 是一款彈性又強大的 GitHub 議題讀取器。它支援 github.com 和 GitHub Enterprise 上的議題和提取請求。

Jasper App Screenshot

您為何製作它?

當人們在工作或 OSS 活動中使用 GitHub 時,他們每天往往會收到許多通知。作為訂閱通知的方式,GitHub 提供了電子郵件和網頁通知。我使用了這些好幾年,但我遇到了以下問題

  • 很容易忽略提到我、我評論過或我正在關注的議題。
  • 我將一些議題放在腦海中的角落稍後查看,但我有時會忘記它們。
  • 為了不忘記議題,我在瀏覽器中保持開啟許多分頁。
  • 很難查看所有與我相關的議題。
  • 很難掌握我團隊的所有活動。

我花費了大量的時間和精力試圖預防這些問題,所以我決定為 GitHub 製作一個議題讀取器,以有效率地解決這些問題,並開始開發 Jasper。

誰在使用 Jasper?

Jasper 被許多使用 GitHub 的公司的開發人員、設計師和經理使用。當然,一些 OSS 開發人員也在使用它。而且 GitHub 的一些人也在使用它!

Jasper 如何運作?

設定 Jasper 後,會出現以下畫面。從左到右,您可以看到「串流清單」、「議題清單」和「議題本文」。

Jasper Start Screen

這個「串流」是 Jasper 的核心功能。例如,如果您想查看「electron/electron 儲存庫中分配給 @zeke 的議題」,您可以建立以下串流

repo:electron/electron assignee:zeke is:issue

Jasper Start Screen 2

建立串流並等待幾秒鐘後,您可以看到符合條件的議題。

Jasper Start Screen 3

我們可以使用串流做什麼?

我將介紹哪種條件可以用於串流。

使用者和團隊

串流議題
mentions:cat mentions:dog提到使用者 catdog 的議題
author:cat author:dog使用者 catdog 建立的議題
assignee:cat assignee:dog分配給 catdog 的議題
commenter:cat commenter:dogcatdog 評論過的議題
involves:cat involves:dog「涉及」 catbob 的議題
team:animal/white-cat team:animal/black-doganimal/white-catanimal/black-dog 中提到的議題

involves 表示 mentionauthorassigneecommenter

儲存庫和組織

串流議題
repo:cat/jump repo:dog/runcat/jumpdog/run 中的議題
org:electron user:cat user:dogelectroncatdog 中的議題

orguser 相同

屬性

串流議題
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1附加到 cat/jumpv1.0.0v1.0.1 的議題
repo:cat/jump label:bug label:blockercat/jump 中附加 bug blocker 的議題
electron OR atomshell包含 electronatomshell 的議題

檢閱狀態

串流議題
is:pr review:requiredcat/jump 中需要檢閱的議題
is:pr review-requested:catcat 請求檢閱的議題。
但這些尚未檢閱。
is:pr reviewed-by:catcat 檢閱的議題

您可能已經注意到,串流可以使用 GitHub 的搜尋查詢。如需關於如何使用串流和搜尋查詢的詳細資訊,請參閱以下 URL。

Jasper 也具有未讀議題管理、未讀評論管理、標記星號、通知更新、篩選議題、鍵盤快捷鍵等功能。

Jasper 是付費產品嗎?價格是多少?

Jasper 的價格為 $12 美元。但是您可以免費使用 試用版 30 天。

您為何選擇在 Electron 上建置 Jasper?

我喜歡 Electron 的以下方面

  • 應用程式可以使用 JavaScript/CSS/HTML 開發。
  • 應用程式可以為 Windows、Mac 和 Linux 平台建置。
  • Electron 正在積極開發中,並擁有龐大的社群。

這些功能實現了快速且簡單的桌面應用程式開發。這太棒了!如果您有任何產品構想,您應該考慮使用 Electron。

您在開發 Jasper 時遇到哪些挑戰?

我很難弄清楚「串流」的概念。起初我考慮使用 GitHub 的Notifications API。但是我注意到它不支援某些使用案例。在那之後,我考慮使用 Issues APIPull Requests API,以及 Notification API。但它從未成為我想要的樣子。然後在思考各種方法時,我意識到輪詢 GitHub 的 Search API 將提供最大的彈性。我花了約一個月的實驗才達到這個階段,然後我在兩天內使用串流概念實作了 Jasper 的原型。

注意:輪詢最多限制為每 10 秒一次。這對於 GitHub API 的限制來說是可以接受的。

接下來有什麼計畫?

我計畫開發以下功能

  • 篩選串流:串流具有一些篩選串流,可篩選串流中的議題。它就像 SQL 的檢視表。
  • 多個帳戶:您將能夠同時使用 github.com 和 GHE
  • 提升效能:目前在 WebView 中載入議題的速度比一般瀏覽器慢。

在 Twitter 上追蹤 @jasperappio 以取得更新。

每週專案:WebTorrent

·9 分鐘閱讀時間

本週我們採訪了 @feross@dcposch,討論 WebTorrent,這是一款基於網頁的 torrent 用戶端,可將使用者連結在一起,形成分散式、去中心化的瀏覽器對瀏覽器網路。


WebTorrent 是什麼?

WebTorrent 是第一個在瀏覽器中運作的 torrent 用戶端。它完全以 JavaScript 編寫,並且可以使用 WebRTC 進行點對點傳輸。無需瀏覽器外掛程式、擴充功能或安裝。

WebTorrent 使用開放式網頁標準,將網站使用者連結在一起,形成分散式、去中心化的瀏覽器對瀏覽器網路,以實現有效率的檔案傳輸。

您可以在此處觀看 WebTorrent 運作的示範:webtorrent.io

webtorrent homepage

這有什麼酷的地方?

想像一下像 YouTube 這樣的影片網站,但訪客可以協助託管網站的內容。使用 WebTorrent 的網站使用者越多,網站就越快速且更有彈性。

瀏覽器對瀏覽器通訊切斷了中間人,讓人們可以按照自己的意願進行通訊。不再有用戶端/伺服器 – 只有一個對等網路,所有人都平等。WebTorrent 是邁向網路重新去中心化的第一步。

Electron 在其中扮演什麼角色?

大約一年前,我們決定建置 WebTorrent Desktop,這是 WebTorrent 的一個版本,可作為桌面應用程式執行。

WebTorrent Desktop player window

我們建立 WebTorrent Desktop 的原因有三個

  1. 我們想要一個乾淨、輕巧、無廣告、開放原始碼的 torrent 應用程式
  2. 我們想要一個具有良好串流支援的 torrent 應用程式
  3. 我們需要一個「混合用戶端」,將 BitTorrent 和 WebTorrent 網路連結起來

如果我們已經可以在我的網頁瀏覽器中下載 torrent,為何還需要桌面應用程式?

首先,先介紹一下 WebTorrent 的設計背景。

webtorrent desktop logo

在早期,BitTorrent 使用 TCP 作為其傳輸協定。後來,uTP 出現,承諾比 TCP 具有更好的效能和額外優勢。每個主流 torrent 用戶端最終都採用了 uTP,而今天您可以使用 BitTorrent 透過任一協定。WebRTC 協定是下一個合理的步驟。它帶來了與網頁瀏覽器互通性的承諾 – 一個由所有桌面 BitTorrent 用戶端和數百萬個網頁瀏覽器組成的龐大 P2P 網路。

「網頁對等節點」(在網頁瀏覽器中運行的 torrent 對等節點)透過新增數百萬個新的對等節點,並將 BitTorrent 擴展到數十個新的使用案例,使 BitTorrent 網路更強大。WebTorrent 盡可能密切地遵循 BitTorrent 規範,以便現有的 BitTorrent 用戶端可以輕鬆新增對 WebTorrent 的支援。

某些 torrent 應用程式(如 Vuze)已經支援網頁對等節點,但我們不想等待其他應用程式新增支援。所以基本上,WebTorrent Desktop 是我們加速採用 WebTorrent 協定的方式。 透過製作一款人們真正想要使用的出色 torrent 應用程式,我們增加了網路中可以與網頁對等節點(即網站上的使用者)分享 torrent 的對等節點數量。

除了人們已經知道可以做的事情之外,torrent 還有哪些有趣的使用案例?

WebTorrent 最令人興奮的用途之一是對等輔助傳遞。像 維基百科網際網路檔案館 這樣的非營利專案可以透過讓訪客貢獻來降低頻寬和託管成本。熱門內容可以透過瀏覽器對瀏覽器快速且廉價地提供。不常存取的內容可以透過 HTTP 從原始伺服器可靠地提供。

網際網路檔案館實際上已經更新了他們的 torrent 檔案,因此它們可以與 WebTorrent 完美搭配使用。因此,如果您想在您的網站上嵌入網際網路檔案館的內容,您可以透過一種方式來降低檔案館的託管成本,讓他們可以投入更多資金來實際歸檔網頁!

還有令人興奮的商業使用案例,從 CDN 到透過 P2P 傳遞應用程式。

您最喜歡哪些使用 WebTorrent 的專案?

gaia app screenshot

用 WebTorrent 建構的最酷的東西,絕對是 Gaia 3D 星圖。這是一個銀河系的精美 3D 互動式模擬。資料從 torrent 載入,直接在您的瀏覽器中。飛越我們的恆星系統並意識到與浩瀚的宇宙相比,我們人類是多麼渺小,這真是令人讚嘆。

您可以在 Torrenting The Galaxy 中閱讀有關這是如何製作的,這是一篇部落格文章,作者 Charlie Hoey 在其中解釋了他是如何使用 WebGL 和 WebTorrent 建構星圖的。

brave logo

我們也是 Brave 的忠實粉絲。Brave 是一款自動封鎖廣告和追蹤器的瀏覽器,可讓網路更快、更安全。Brave 最近新增了 torrent 支援,因此您可以無需使用單獨的應用程式即可檢視傳統 torrent。該功能由 WebTorrent 提供支援。

因此,就像大多數瀏覽器可以呈現 PDF 檔案一樣,Brave 可以呈現磁力連結和 torrent 檔案。它們只是瀏覽器原生支援的另一種內容類型。

Brave 的共同創辦人之一實際上是 JavaScript 的建立者 Brendan Eich,我們用 JavaScript 編寫了 WebTorrent,因此我們認為 Brave 選擇整合 WebTorrent 非常酷。

您為何選擇在 Electron 上建置 WebTorrent Desktop?

WebTorrent Desktop main window

有一種迷因是 Electron 應用程式「臃腫」,因為它們在每個應用程式中都包含整個 Chrome 內容模組。在某些情況下,這部分是正確的(Electron 應用程式安裝程式通常約為 40MB,而特定於作業系統的應用程式安裝程式通常約為 20MB)。

但是,就 WebTorrent Desktop 而言,我們在正常運作過程中幾乎使用了每個 Electron 功能以及數十個 Chrome 功能。如果我們想為每個平台從頭開始實作這些功能,那麼建置我們的應用程式將需要更長的時間,幾個月甚至幾年,或者我們只能為單一平台發布。

為了讓您了解,我們使用了 Electron 的 dock 整合(顯示下載進度)、選單列整合(在背景中執行)、協定處理常式註冊(開啟磁力連結)、省電阻止器(防止在影片播放期間休眠)和 自動更新器。至於 Chrome 功能,我們使用了許多:<video> 標籤(播放許多不同的影片格式)、<track> 標籤(用於隱藏式字幕支援)、拖放支援和 WebRTC(在原生應用程式中使用並非易事)。

更不用說:我們的 torrent 引擎是用 JavaScript 編寫的,並且假定存在許多 Node API,但尤其是 require('net')require('dgram') 用於 TCP 和 UDP socket 支援。

基本上,Electron 正是我們需要的,並且具有我們在創紀錄的時間內發布穩固、精緻應用程式所需的一組精確功能。

您最喜歡 Electron 的哪些方面?

WebTorrent 程式庫作為開放原始碼的副專案已開發了兩年。我們在四週內製作了 WebTorrent Desktop。 Electron 是我們能夠如此快速地建置和發布我們的應用程式的主要原因。

正如 Node.js 讓一代使用 jQuery 的前端程式設計師可以輕鬆進行伺服器程式設計一樣,Electron 讓任何熟悉 Web 或 Node.js 開發的人都可以輕鬆進行原生應用程式開發。Electron 非常強大。

網站和桌面用戶端是否共用程式碼?

是的,webtorrent npm 套件 在 Node.js、瀏覽器和 Electron 中都有效。完全相同的程式碼可以在所有環境中執行 – 這就是 JavaScript 的美妙之處。它是當今通用的執行階段。Java Applets 承諾「編寫一次,隨處執行」應用程式,但由於許多原因,該願景從未真正實現。Electron 比任何其他平台都更接近這個理想。

您在建置 WebTorrent 時遇到哪些挑戰?

在應用程式的早期版本中,我們努力使 UI 具有高效能。我們將 torrent 引擎放在與繪製主應用程式視窗相同的渲染器程序中,可以預見的是,每當 torrent 引擎有大量的 CPU 活動時(例如驗證從對等節點接收的 torrent 片段),都會導致速度變慢。

我們透過將 torrent 引擎移至第二個不可見的渲染器程序來解決此問題,我們透過 IPC 與其通訊。這樣,如果該程序暫時使用了大量的 CPU,UI 執行緒將不受影響。極其流暢的捲動和動畫非常令人滿意。

請注意:我們必須將 Torrent 引擎放在渲染器(renderer)進程中,而不是「主」(main)進程,因為我們需要存取 WebRTC(僅在渲染器中可用)。

Electron 應該在哪些方面改進?

我們很希望看到關於如何建構和發布可供生產環境使用的應用程式的更完善文件,尤其是在程式碼簽署和自動更新等棘手的主題上。我們必須深入研究原始碼,並在 Twitter 上四處詢問,才能學習到最佳實務!

WebTorrent Desktop 完成了嗎?如果沒有,接下來會有什麼?

我們認為目前版本的 WebTorrent Desktop 非常出色,但總是有進步的空間。我們目前正努力改善潤飾、效能、字幕支援和影片編碼支援。

如果您有興趣參與這個專案,請查看我們的 GitHub 頁面

是否有任何 Electron 開發技巧可以對其他開發人員有所幫助?

Feross,WebTorrent Desktop 的貢獻者之一,最近在 NodeConf Argentina 上發表了一場演講,名為「真實世界的 Electron:使用 JavaScript 建構跨平台桌面應用程式」,其中包含發布完善的 Electron 應用程式的實用技巧。如果您正處於擁有基本可運作應用程式的階段,並試圖將其提升到更高層次的潤飾和專業性,那麼這次演講將特別有用。

在此觀看:

投影片在此:

DC,另一位 WebTorrent 貢獻者,撰寫了一份您可以做的事情的檢查清單,讓您的應用程式感覺更完善且更像原生應用程式。它附帶程式碼範例,並涵蓋了 macOS Dock 整合、拖放、桌面通知,以及確保您的應用程式快速載入等事項。

每週專案:Voltra

·6 分鐘閱讀

本週我們與 Aprile ElcichPaolo Fragomeni 會面,討論了 Voltra,一款由 Electron 驅動的音樂播放器。


Voltra 是什麼?

Voltra 是一款為想要擁有自己音樂的人們設計的音樂播放器。它也是一家商店,您可以在其中根據您已擁有的音樂來發現和購買新音樂。它是無廣告的,並且跨桌面和行動平台。它也不會監視您。

voltra-artistview

Voltra 適合哪些人?

任何聽音樂的人。

是什麼動機促使您創建 Voltra?

廣播一直以來都佔有很大的聽眾份額。它正從無線電波轉移到網際網路上。現在您可以在網路上租借音樂隨選收聽 —— 這是廣播的復興!許多新產品和服務因此應運而生,但串流廣播仍然將您的音樂以及您體驗音樂的方式交由他人掌控。

我們想要一款完全專注於您擁有的音樂的產品。一款可以輕鬆地直接從藝術家或唱片公司發現和購買新音樂的產品。

有免費版本嗎?

桌面播放器是完全免費的。銷售您的音樂也是免費的!我們沒有廣告支援。

由於這個應用程式是免費的,我們可能會在稍後開源它。目前我們沒有頻寬來管理這件事。我們對於功能以及我們想要發展的方向也有非常明確的想法。我們有一個活躍的 Beta 社群,並且我們非常重視社群的回饋。

你們如何賺錢?

我們有付費功能!

我們的Voltra 音訊檔案庫是一項專為音樂設計的雲端備份服務。我們不會壓縮或共享資料區塊。您的音樂收藏會為您進行實體備份。

對於藝術家和唱片公司,我們的專業會員提供工具來幫助他們接觸到更多相關受眾,例如分析和專業藝術家網頁。

是什麼讓 Voltra 與眾不同?

設計和可用性對我們來說非常重要。我們希望為聽眾提供無干擾的聆聽體驗!市面上有一些有趣的音樂播放器和商店。但它們中的許多都比其創作者意識到的更先進且更難使用。我們希望讓 Voltra 盡可能地讓更多人使用。

我們也不會從藝術家或唱片公司那裡抽取分成。這是我們的一個關鍵區別。這非常重要,因為它可以降低藝術家將其音樂推向市場的門檻。

您們做出了一些什麼設計和技術上的決策?

在設計 Voltra 時,我們考慮了原生應用程式和網路的 UI 慣例,我們也深入思考了我們可以移除哪些東西。在過去的幾個月裡,我們有一個活躍的私人 Beta 社群,他們給了我們重要的回饋。

我們發現專輯封面和攝影對人們來說非常重要。許多播放器只是檔案列表。擁有實體專輯的酷事之一是專輯封面,我們希望在 Voltra 桌面應用程式中強調這一點。

voltra-albumview

我們也確保不干擾人們的檔案。我們使用檔案監看,因此您可以將檔案放在您想要的任何位置,我們不會為您重新命名或移動它們。我們有一個嵌入式資料庫來追蹤受監看目錄的狀態,以便我們可以追蹤有哪些是新的內容,即使進程沒有執行。

在建構 Voltra 時,您們面臨哪些挑戰?

我們花費大量時間專注於效能。我們從框架開始,但後來轉向原生 Javascript。根據我們的經驗,它們提供的通用抽象概念,其優點超過了它們引入的效能損失和繁文縟節。

我們目前可以很好地處理非常龐大的收藏。龐大的收藏意味著可能有數以萬計的圖像!從渲染進程直接使用 Node.js 的檔案系統模組,使得基於 DOM 事件來延遲載入和卸載大量圖像變得非常容易。

總體而言,setImmediaterequestIdleCallback 一直是執行大量處理,同時保持 UI 響應性的非常重要的工具。更具體地說,將 CPU 密集型任務分配到不同的進程中,確實有助於保持使用者介面的響應性。例如,我們將實際的音訊上下文移動到一個單獨的進程中,透過 IPC 與之通訊,以避免來自繁忙 UI 的潛在干擾。

您們為什麼選擇在 Electron 上建構 Voltra?

瀏覽器的沙箱對於我們的應用程式來說限制太多。但我們也在開發一個網路播放器。因此,我們可以在這兩個實作之間共享幾乎 100% 的程式碼,這是一個巨大的勝利。

我們實際上是從使用 Swift 建構原生應用程式開始的。我們發現的主要問題是,我們在重新發明很多東西。網路擁有世界上最大的開源生態系統。因此,我們很快就轉向了 Electron。

而且,最重要的是,使用 Electron,您只需開發一次,它就應該能在所有主要平台上「Just Work™」(正常運作)。雖然不能保證,但為每個平台進行原生程式碼編寫的成本,絕對超過了 Electron 引入的任何其他成本。

您最喜歡 Electron 的哪些方面?

GTD!:將 Node.js 的網路堆疊和 Chromium 的呈現層封裝在一起,是完成工作的絕佳組合。

能力:它只是網路堆疊,因此實際上我們整個團隊都參與了產品的建構。

社群:有一個高度組織化的社群,他們非常懂得如何良好溝通!我們對於在這樣的支援下進行開發感到非常棒。

Electron 可以在哪些方面改進?

我們希望看到 Electron 認可單一封裝工具。封裝工具對於 Electron 來說,就像套件管理器對於 Node 來說一樣重要。在使用者領域中有許多封裝工具,每個工具都有有趣的功能,但也都存在錯誤。社群的共識將有助於引導貢獻者投入的精力。

接下來有什麼計畫?

我們目前正在開發行動應用程式,並與藝術家和唱片公司合作,將他們的音樂添加到 Voltra 商店。嘿!如果您是藝術家或唱片公司,立即註冊!我們計劃在達到 1000 萬首曲目的目標時開放商店。

每週專案:WordPress Desktop

·4 分鐘閱讀

本週我們與 Automattic 的朋友們交流,討論了 WordPress Desktop,這是一款用於管理 WordPress 內容的開源桌面用戶端。


WordPress Apps

大家都知道 WordPress,但 WordPress Desktop 是什麼?

WordPress.com 桌面應用程式提供了無縫的跨平台體驗,讓您可以專注於您的內容和設計,而不會被瀏覽器分頁干擾 —— 或者讓您的網站保持在側邊欄中但可存取。結合我們的瀏覽器支援和行動應用程式,您可以在任何地方,以任何有助於您完成工作的方式建構您的網站。

為什麼要建構一個用於管理 WordPress 網站的桌面應用程式?難道不能全部基於網路嗎?

它實際上使用的技術與您在瀏覽器中訪問 WordPress.com 時獲得的技術完全相同。但是,它全部託管在本地,因此具有最短的載入時間。憑藉停駐在 Dock、通知等原生功能的優勢,您可以真正專注於您的 WordPress 網站和部落格。

您們為什麼選擇在 Electron 上建構 WordPress Desktop?

在 2015 年底,我們以 Calypso 的形式重建了大部分 WordPress.com,這是一款使用 React 的開源現代 JavaScript 應用程式。我們開始研究 Electron,並對 Calypso 進行了一些更改,使其能夠在本地運作。這是一個引人入勝的體驗,我們認為進一步開發它會有很多價值。

我們有多個團隊在 Calypso 上工作。使用傳統桌面技術建構一個與之匹配的完整多平台 GUI 用戶端將需要更多的工作。透過使用 Electron,我們一個由 2-4 人組成的小團隊能夠利用其他團隊的努力,在幾個月內建構出桌面應用程式。

在建構 WordPress Desktop 時,您們面臨哪些挑戰?

我們很快就讓應用程式的初始版本開始運作,但調整它以使其作為桌面應用程式最佳運作花費了更多時間。這個應用程式的一個巨大挑戰是,您實際上是在您自己的機器上運作 Calypso 的副本 —— 它純粹是一個 API 驅動的 UI。其中涉及大量橋接工作,並且變更被回饋到 Calypso 本身。

此外,我們還花費了大量精力來封裝應用程式以適應不同的平台 —— 我們提供 Windows、macOS 和 Linux 版本 —— 並且存在足夠的差異使其變得棘手。

在當時,Electron 相對較新,我們不斷遇到很快就被修復的問題(有時甚至是當天就修復了!)

Electron 應該在哪些方面改進?

Electron 已經提供了我們桌面應用程式所需的大部分功能,並且自我們開始使用它以來,它發展迅速。話雖如此,在桌面應用程式中被視為理所當然的一些功能,例如拼字檢查和尋找/取代,使用現有的 Electron 來複製這些功能更為困難。

我們也很希望看到一些較新的 Chrome 技術也能滲透到 Electron 中。我們特別熱衷於嘗試 WebVR。

您最喜歡 Electron 的哪些方面?

我們選擇 Electron 的主要原因,也是它最大的優勢,是非常活躍且開放的社群。Automattic 一直以來都相信開源。這是我們的核心原則之一,而 Electron 專案和社群也遵循許多非常開放和積極的核心信念。

WordPress Desktop 的下一步是什麼?

我們模型的優點在於桌面應用程式受益於任何新的 Calypso 功能 —— 持續不斷地有改進。我們希望我們可以為應用程式添加其他功能,例如離線支援,這將真正把應用程式帶入原生領域,並改善系統通知。

Automattic 中是否有其他團隊正在開發其他 Electron 應用程式?

是的,在我們對桌面應用程式的努力之後,Simplenote 團隊決定使用 Electron 為 Windows 和 Linux 建構桌面應用程式(已經存在原生 Mac 用戶端)。Simplenote Electron 應用程式也是開源的,並且在 Github 上可用。

我們還有一個即將推出的 Raspberry Pi 整合,它也使用 Electron。

如果任何這些聽起來讓您感興趣,那麼我們很樂意收到您的來信

是否有任何 Electron 技巧可以對其他開發人員有所幫助?

發布已簽署的桌面軟體對我們來說是相對較新的過程,尤其是對於 Windows 而言。我們為 程式碼簽署 Windows 應用程式撰寫了一篇文章,其中包含這個過程以及我們為正確完成它而經歷的一些障礙。

每週專案:Dat

·7 分鐘閱讀

本週的特色專案是 Dat,這是一個 獲得補助的開源分散式工具,用於發布資料集。Dat 由一個 地理分散的團隊建構和維護,他們中的許多人協助撰寫了這篇文章。


A screenshot of the main view of dat-desktop, showing a few rows of shared
dats

首先,Dat 是什麼?

我們希望將點對點和分散式系統的最佳部分帶入資料共享。我們從科學資料共享開始,然後開始擴展到研究機構、政府、公共服務和開源團隊。

另一種思考方式是,它是一個類似 Dropbox 或 BitTorrent Sync 的同步和上傳應用程式,只是 Dat 是開源的。我們的目標是成為一個功能強大、開源、非營利的資料共享軟體,適用於大型、小型、中型、小批量和大批量的資料。

要使用 dat CLI 工具,您只需輸入

dat share path/to/my/folder

Dat 就會建立一個連結,您可以使用該連結將該資料夾發送給其他人 —— 沒有中央伺服器或第三方可以存取您的資料。與 BitTorrent 不同,它也不可能嗅探到誰在共享什麼(有關更多詳細資訊,請參閱 Dat Paper 草稿)。

現在我們知道 Dat 是什麼了。那麼 Dat Desktop 如何融入其中?

Dat Desktop 是一種讓無法或不想使用命令列的人們也能存取 Dat 的方式。您可以在您的機器上託管多個 Dat,並透過您的網路提供資料。

您可以分享一些很酷的用例嗎?

DataRefuge + Project Svalbard

我們正在開發一個代號為 Project Svalbard 的專案,它與 DataRefuge 有關,DataRefuge 是一個致力於備份有消失風險的政府氣候資料的團體。Svalbard 以北極的斯瓦爾巴全球種子庫命名,該種子庫有一個大型地下植物 DNA 備份庫。我們的版本是一個大型版本控制的公共科學資料集集合。一旦我們了解並可以信任元資料,我們就可以建構其他很酷的專案,例如分散式志願者資料儲存網路

加州公民資料聯盟

CACivicData 是一個開源檔案庫,提供來自 CAL-ACCESS(加州追蹤政治資金的資料庫)的每日下載。他們進行每日發布,這意味著在他們的 zip 檔案中託管了大量重複資料。我們正在努力將他們的資料託管為 Dat 儲存庫,這將減少引用特定版本或更新到較新版本所需的麻煩和頻寬。

Electron 更新

這個用例還沒有具體成形,但我們認為一個有趣的用例是將編譯後的 Electron 應用程式放在 Dat 儲存庫中,然後在 Electron 中使用 Dat 用戶端來提取已建構應用程式二進位檔案的最新增量,以節省下載時間,同時也降低伺服器的頻寬成本。

哪些人應該使用 Dat Desktop?

任何想要透過 p2p 網路共享和更新資料的人。資料科學家、開放資料駭客、研究人員、開發人員。如果有人有我們還沒有想到的很酷的用例,我們非常樂意接受回饋。您可以造訪我們的 Gitter 聊天室,隨時向我們提問!

Dat 和 Dat Desktop 的下一步是什麼?

使用者帳戶和元資料發布。我們正在開發一個 Dat 註冊表網路應用程式,將部署在 datproject.org 上,這基本上會是一個「資料集的 NPM」,但需要注意的是,我們只會是一個元資料目錄,而資料可以存在於網路上的任何地方(與 NPM 或 GitHub 不同,後者所有資料都集中託管,因為原始碼夠小,可以將其全部放入一個系統中)。由於許多資料集都非常龐大,我們需要一個聯合註冊表(類似於 BitTorrent 追蹤器的工作方式)。我們希望讓使用者可以輕鬆地從 Dat Desktop 中使用註冊表來尋找或發布資料集,以使資料共享過程無摩擦。

另一個功能是多作者/協作資料夾。我們有遠大的計劃來實現協作工作流程,也許會使用分支,類似於 git,但圍繞資料集協作設計。但我們目前仍在努力提高整體穩定性並標準化我們的協定!

您們為什麼選擇在 Electron 上建構 Dat Desktop?

Dat 是使用 Node.js 建構的,因此它自然而然地適合我們的整合。除此之外,我們的使用者使用各種機器,因為科學家、研究人員和政府官員可能被迫為其機構使用某些設定 —— 這意味著我們需要能夠以 Windows 和 Linux 以及 Mac 為目標。Dat Desktop 可以輕鬆地為我們做到這一點。

在建構 Dat 和 Dat Desktop 時,您們面臨哪些挑戰?

弄清楚人們想要什麼。我們從表格資料集開始,但我們意識到解決這個問題有點複雜,而且大多數人不使用資料庫。因此,在專案進行到一半時,我們從頭開始重新設計了一切,以使用檔案系統,並且沒有再回頭。

我們也遇到了一些常見的 Electron 基礎架構問題,包括

  • 遙測 —— 如何捕獲匿名使用統計資訊
  • 更新 —— 設定自動更新有點零散且神奇
  • 發布 —— XCode 簽署、在 Travis 上建構發布版本、進行 Beta 建置,這些都是挑戰。

我們也在 Dat Desktop 的「前端」程式碼上使用了 Browserify 和一些很酷的 Browserify Transforms(這有點奇怪,因為即使我們有原生 require,我們仍然進行捆綁 —— 但這是因為我們想要 Transforms)。為了更好地管理我們的 CSS,我們從 Sass 切換到使用 sheetify。它極大地幫助我們模組化了我們的 CSS,並使我們更容易將 UI 遷移到具有共享依賴項的組件導向架構。例如,dat-colors 包含了我們所有的顏色,並在我們所有專案之間共享。

我們一直以來都是標準和最小抽象概念的忠實擁護者。我們的整個介面都是使用常規 DOM 節點和少量輔助程式庫建構的。我們已開始將其中一些組件遷移到 base-elements,這是一個低階可重複使用組件的程式庫。與我們的大多數技術一樣,我們不斷迭代它,直到我們做對為止,但作為一個團隊,我們感覺我們正朝著正確的方向前進。

Electron 應該在哪些方面改進?

我們認為最大的痛點是原生模組。必須使用 npm 為 Electron 重新建構您的模組,這增加了工作流程的複雜性。我們的團隊開發了一個名為 prebuild 的模組,它可以處理預先建置的二進位檔案,這對於 Node 來說效果很好,但 Electron 工作流程仍然需要在安裝後執行自訂步驟,通常是 npm run rebuild。這很煩人。為了解決這個問題,我們最近切換到一種策略,將所有平台的所有已編譯二進位版本捆綁在 npm tarball 中。這意味著 tarball 會變得更大(儘管可以使用 .so 檔案 —— 共享程式庫來優化這一點),但這種方法避免了必須執行安裝後腳本,也完全避免了 npm run rebuild 模式。這意味著 npm install 第一次就可以為 Electron 做到正確的事情。

您最喜歡 Electron 的哪些方面?

API 看起來經過深思熟慮,它相對穩定,並且在跟上上游 Node 版本方面做得相當不錯,我們不能要求更多了!

是否有任何 Electron 技巧可以對其他開發人員有所幫助?

如果您使用原生模組,請試試看 prebuild

追蹤 Dat 開發進度的最佳方式是什麼?

在 Twitter 上追蹤 @dat_project,或訂閱我們的電子郵件新聞信

每週專案:Ghost

·5 分鐘閱讀時間

本週我們與 Felix Rieseberg 聊天,他是 Slack 的桌面工程師,也是 Ghost Desktop 的維護者,Ghost Desktop 是 Ghost 發布平台的 Electron 用戶端。


Ghost Desktop Screenshot

Ghost 是什麼?

Ghost 是一個完全開源、可駭客的平台,用於建構和運作現代線上出版物。我們為從 Zappos 到 Sky News 的部落格、雜誌和記者提供技術支援。

是什麼讓它與其他發布平台不同?

Ghost 成立於 2013 年 4 月,在一個非常成功的 Kickstarter 募資活動之後,旨在創建一個專注於專業發布的新平台。我們的使命是為世界各地的獨立記者和作家創建最好的開源工具,並對線上媒體的未來產生真正的影響。它提供了更簡單、更集中的體驗:我們的編輯器專為提供最佳寫作體驗而設計。

與經典的 WordPress 相比,它提供了更簡單、更精簡的體驗 —— 它更容易設定和維護,開箱即用就具有所有重要功能,並且速度顯著更快。與其他線上平台相比,Ghost 讓作者完全擁有並控制他們的內容,允許完全自訂,並使作者能夠圍繞他們的出版物建立業務。

Ghost 是一家營利性公司嗎?

這對我們來說很重要:Ghost 是一個獨立的非營利組織。我們為現代新聞業和部落格建構發布工具,因為我們相信言論自由很重要。我們的軟體以 免費開源許可證 發布,我們的商業模式完全透明,我們的法律結構意味著我們賺取的所有資金都 100% 再投資於使 Ghost 變得更好。

Ghost Desktop 是什麼?

Ghost Desktop 允許作者一次管理多個部落格 —— 並專注於他們的寫作。像常見的寫作快捷鍵這樣簡單的事情在瀏覽器中無法實現,但在我們的桌面應用程式中可以使用。它允許其他應用程式透過 deeplinks 與部落格直接通訊

Ghost for Journalism 是什麼?

今年,我們非常興奮能夠投入我們整個 10 人全職 Ghost 團隊,來幫助發展三個獨立出版物,並為他們的努力提供 45,000 美元的資源。我們稱之為 Ghost for Journalism

大約三年半以來,我們一直在將 Ghost 建構為網路下一個偉大的獨立發布者平台,而我們現在已經達到一個非常有趣的轉折點。我們開始這個旅程是為了創建一個簡單、設計良好的部落格平台,幾乎任何人都可以使用。這始終是第一步。

從長遠來看,我們希望 Ghost 成為世界上最好的新聞業的絕佳平台,這意味著我們需要建構功能來吸引正是這些人。今年,我們正在做出一個非常明確的決定,將重點放在這方面。

您們為什麼選擇在 Electron 上建構 Ghost Desktop?

Ghost 在後端和前端都使用 JavaScript 和 Node.js,因此能夠利用相同的技術和技能組合使我們的團隊能夠更快地行動、建構更多,並最終提供更好的體驗。此外,能夠在應用程式的 macOS、Windows 和 Linux 版本之間共享超過 95% 的程式碼,使我們能夠專注於建構出色的核心使用者體驗,而無需為每個平台維護一個程式碼庫。

在建構 Ghost Desktop 時,您曾面臨哪些挑戰?

拼字檢查可能仍然是最難提供的服務之一——我們可以輕鬆利用眾多線上服務之一,但正確地拼寫檢查多種語言的文字,同時保護使用者的隱私和自主性並非易事。

Electron 應該在哪些方面改進?

我們很希望看到 Electron 將作業系統的原生拼字檢查功能帶到他們的應用程式中。我們夢想著一個 <input> 欄位能夠獲得與 NSTextView 相同的服務,但我們也深知這有多困難。

您最喜歡 Electron 的哪些方面?

JavaScript 以其龐大的生態系統而聞名,其中包含無數的工具和框架——但它為我們帶來的便利性再怎麼強調也不為過。使用 Electron 建構應用程式只比建構網頁應用程式稍微困難一點,這是一項了不起的成就。

Ghost 已經完成了嗎?如果沒有,接下來會是什麼?

Ghost Desktop 也是一個持續進行中的專案——我們離完成還很遠。我們已經討論了一段時間,要為我們的使用者帶來完整的離線模式,而且我們已經相當接近了。其他值得注意的工作領域是擴充功能以及與其他文字編輯應用程式(如 Word 或 Atom)的整合,最終讓使用者能夠使用他們最喜歡的工具來撰寫文章。總體而言,一旦我們發布了離線模式功能,我們就會尋求與作業系統更深入的整合。如果這聽起來對您來說很有趣,加入我們

您最喜歡的 Electron 應用程式有哪些?

我是 KapFelonyVisual Studio Code 的忠實粉絲。

👻

每週專案:Beaker Browser

·4 分鐘閱讀

本週我們採訪了 Paul FrazeeBeaker Browser 的創作者。Beaker 是一款實驗性的點對點網頁瀏覽器,它使用 Dat 協定從使用者的裝置託管網站。


Beaker 是什麼?您為什麼創建它?

Beaker 是一款參與式瀏覽器。它是為獨立駭客設計的瀏覽器。

網路是封閉原始碼的。如果您想影響社群媒體的運作方式,您必須在 Facebook 或 Twitter 工作。搜尋引擎則是 Google。控制權掌握在公司手中,而不是使用者自己手中。

有了 Beaker,我們有了一個新的網路協定:分散式檔案傳輸。「Dat」。它可以按需免費建立網站,然後從裝置分享它們。無需伺服器。這是我們的創新之處。

Beakers Protocols

當您在 Beaker 中訪問 Dat 網站時,您會下載這些檔案。該網站永遠屬於您。您可以儲存它、fork 它、修改它,並免費分享您的新版本。這一切都是開源的。

這就是它的意義所在:我們正在為開源網站製作瀏覽器。我們希望它成為社群駭客的工具包。

誰應該使用 Beaker?

駭客。模改者。創意人士。喜歡動手做的人。

我該如何建立一個使用 Dat 的新專案?

我們有一個 名為 bkr 的命令列工具,它有點像 git + npm。這是建立網站的方法

$ cd ~/my-site
$ bkr init
$ echo "Hello, world!" > index.html
$ bkr publish

這是 fork 網站的方法

$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
$ echo "My fork has no regard for the previous index.html!" > index.html
$ bkr publish

這些網站隨後會從您的瀏覽器託管出去。這有點像 BitTorrent;您在 P2P 網狀網路中分享這些網站。

如果您想要 GUI,我們在瀏覽器中內建了一些基本工具,但我們正在將這些工具推向使用者空間。這一切都將成為可修改的使用者應用程式。

您為什麼選擇在 Electron 上建構 Beaker?

對於這個專案來說,這是顯而易見的。如果我自己 fork Chrome,我現在就會在寫 C++!沒有人想做那件事。我了解 Web 技術堆疊,而且我可以快速使用它。這是理所當然的。

事實是,我不確定沒有 Electron 我是否能做到這一切。它是一個很棒的軟體。

在建構 Beaker 時,您曾面臨哪些挑戰?

其中一半是在研究這些工具,並弄清楚我能做到什麼程度。

製作瀏覽器本身非常容易。Electron 實際上是一個製作瀏覽器的工具包。…除了瀏覽器標籤頁;那花了我很長時間才弄對。我最終還是崩潰並學習了如何製作 SVG。它看起來好多了,但我花了 3 到 4 次迭代才把它弄對。

Electron 應該在哪些方面改進?

如果我可以將開發者工具停靠在 webview 內部,那就太好了。

Beaker 接下來會推出什麼?

Dat 網站的安全 DNS 名稱。一種可社交配置的 URL 方案,稱為 「應用程式方案」。更多 Dat API。

對於可能有興趣為該專案做出貢獻的人來說,Beaker 在哪些領域需要幫助?

我們有很多未解決的問題。不要害怕 ping 我。在 freenode 上使用 #beakerbrowser。我們維護一個 貢獻者頁面,我們會將您添加到其中。如果您來奧斯汀,我會請您喝一杯啤酒。

是否有任何 Electron 技巧可以對其他開發人員有所幫助?

  1. 使用現有的建構工具。相信我,您不會想與自己的解決方案搏鬥。使用 electron-builder。使用樣板程式碼庫。
  2. 如果您需要在 Electron 程式碼庫中開啟問題,請多花一點力氣使其易於重現。您會更快收到回覆,團隊也會感謝您。更好的是,嘗試自己修復它。看看它的內部結構實際上非常有趣。
  3. 至少通讀一遍所有的指南和進階文件。
  4. 不要製作瀏覽器,這是一個飽和的市場。

每週專案:Kap

·7 分鐘閱讀

Electron 社群正在快速成長,人們正在以驚人的速度創建功能強大的新應用程式和工具。為了慶祝這種創造性的動力,並讓社群了解其中一些新專案,我們決定開始一個每週部落格系列,重點介紹值得注意的 Electron 相關專案。


這篇文章是該系列的第一篇,重點介紹了 Kap,這是一個由 Wulkano 建構的開源螢幕錄影應用程式,Wulkano 是一個由分散各地的自由設計師和開發人員組成的團隊。

Kap Screencast

Kap 是什麼?

Kap 是一個開源螢幕錄影工具,主要為設計師和開發人員而建構,以便輕鬆捕捉他們的工作。人們使用它來分享動畫原型、記錄錯誤、創建有趣的 GIF 以及介於兩者之間的一切。

我們已經看到各個年齡層和背景的人們在教育環境、螢幕錄影、教學課程中使用它……用途不勝枚舉。甚至可以創建生產資源!我們對我們這個小小的副專案如此受歡迎感到非常驚訝。

您為什麼要建構它?

這是一個非常好的問題,這並不是因為市面上缺乏螢幕錄影工具!我們覺得替代方案要么太複雜、要么太昂貴、要么太有限。沒有任何一款工具感覺剛剛好,適合我們的日常需求。我們也認為,當我們用來工作的工具是開源的時候,那真是太棒了,這樣每個人都可以幫助塑造它們。建構 Kap 的結果與我們沒有做的事情一樣多。這一切都在細節中,小改進的累積成為我們想要使用的工具的輪廓。

然而,也許最重要的是,Kap 已經成為我們放下憂慮、單純為了自己和像我們這樣的人而享受建構事物樂趣的地方。創造一個讓您可以盡情發洩、嘗試新事物並享受您的工藝的環境非常重要。沒有要求、沒有壓力、沒有期望。設計師和開發人員應該做副專案嗎?為什麼不呢?是的,他們應該。

您為什麼選擇在 Electron 上建構 Kap?

有很多原因:

  • Web 技術
  • 團隊中的大多數人都是網頁開發人員
  • 我們投資於 JavaScript
  • 它為更多人貢獻打開了大門
  • Electron 本身就是開源的
  • node_modules 的強大功能和易於維護的模組化
  • 跨平台可能性

我們認為應用程式的未來在於瀏覽器,但我們尚未完全達到目標。Electron 是朝著這個未來邁進的重要一步。它不僅使應用程式本身更易於存取,而且使建構它們的程式碼也更易於存取。一個有趣的想法是想像一個未來,作業系統是一個瀏覽器,而標籤頁本質上是 Electron 應用程式。

此外,作為主要的網頁開發人員,我們非常欣賞 JavaScript 的同構性質,因為您可以在用戶端、伺服器以及現在的桌面上執行 JS。使用 Web 技術(HTML、CSS 和 JS),許多事情都比原生技術簡單得多:更快的原型設計、更少的程式碼、flexbox > 自動佈局 (macOS/iOS)。

在建構 Kap 時,您曾面臨哪些挑戰?

使用 Electron 可用的資源來錄製螢幕是最大的挑戰。它們的效能根本不足以滿足我們的要求,並且會使該專案在我們眼中成為失敗。儘管這並非 Electron 本身的錯,但在原生開發和使用 Web 技術建構桌面應用程式之間仍然存在差距。

我們花費了大量時間試圖解決 getUserMedia API 的效能不佳問題,這個問題源於 Chromium。我們在開始製作 Kap 時的主要目標之一是使用 Web 技術建構整個應用程式。在嘗試了一切可以讓它運作的方法(最低要求是在 Retina 螢幕上達到 30 FPS)之後,我們最終不得不尋找其他解決方案。

我在 repo 中看到一些 Swift 程式碼。那是關於什麼的?

由於被迫尋找 getUserMedia 的替代方案,我們開始試驗 ffmpeg。除了是音訊和視訊轉換的最佳工具之一外,它還具有在幾乎任何作業系統中錄製螢幕的功能,並且我們能夠錄製清晰的視訊,滿足我們在 Retina 螢幕上達到 30 FPS 的最低要求。問題?效能是 "😩",CPU 使用率變得非常高。因此我們回到了繪圖板,討論了我們的選擇,並意識到我們必須做出妥協。這促成了 Aperture,我們自己的 macOS 螢幕錄影函式庫,用 Swift 編寫。

Electron 應該在哪些方面改進?

我們都知道 Electron 應用程式可能會大量使用 RAM,但同樣,這實際上是 Chromium 的問題。這是它運作方式的一部分,並且它確實取決於您正在運行的內容,例如 Kap 和 Hyper 通常使用少於 100MB 的記憶體。

我們看到的最大改進領域之一是有效負載,特別是 Electron 如何分發 Chromium。一個想法是擁有一個共享的 Electron 核心,並使應用程式安裝程式檢查系統上是否已存在它。

創建跨平台 Electron 應用程式可能會是一個更好的體驗。目前,平台之間存在太多不一致之處、特定於平台的 API 和缺少的功能,這使得您的程式碼庫中充斥著 if-else 語句。例如,vibrancy 僅在 macOS 上受支援,自動更新程式在 macOS 和 Windows 上的運作方式不同,甚至在 Linux 上不受支援。透明度在 Linux 上時好時壞,通常是壞。

呼叫原生系統 API 也應該更容易。Electron 附帶一組非常好的 API,但有時您需要它不提供的功能。創建原生 Node.js 附加元件是一個選項,但使用起來很痛苦。理想情況下,Electron 會附帶一個良好的 FFI API,例如 fastcall。這將使我們能夠用 JavaScript 寫入 Swift 部分。

您最喜歡 Electron 的哪些方面?

我們最喜歡的事情很容易就是,任何具有 Web 創建知識的人都可以建構和貢獻多平台原生體驗。更不用說在其上開發的輕鬆和樂趣、出色的文件以及蓬勃發展的生態系統。

從前端的角度來看,建構 Kap 與使用瀏覽器 API 建構一個簡單的網站沒有什麼不同。Electron 在使應用程式開發與 Web 開發相似(基本上相同)方面做得非常出色。事實證明它非常簡單,以至於不需要框架或類似的東西來幫助我們,只需要乾淨且模組化的 JS 和 CSS。

我們也是建構它的團隊、他們的奉獻和支持,以及他們維護的活躍且友好的社群的忠實粉絲。向你們所有人致以擁抱!

Kap 接下來會推出什麼?

我們的下一步是審查該應用程式,為我們的 2.0.0 里程碑做準備,其中包括 React 重寫以及對外掛程式的支援,允許開發人員擴充 Kap 的功能!我們邀請大家關注專案並在我們的 GitHub 儲存庫 上做出貢獻。我們正在傾聽,並希望聽到盡可能多的人的聲音,讓我們知道如何才能讓 Kap 成為對您來說最好的工具

Wulkano 是什麼?

Wulkano 是一個設計工作室和數位社群,一個由遠端技術專家組成的團隊,他們喜歡共同處理客戶專案和我們自己的專案。我們是一群來自不同地方和背景的分散但緊密的群體,在我們的虛擬辦公室(恰好是基於 Electron 的 Slack!)中分享知識、想法、經驗,但最重要的是愚蠢的 GIF 和迷因。

是否有任何 Electron 技巧可以對其他開發人員有所幫助?

充分利用並參與到出色的 社群 中,查看 Awesome Electron,查看 範例,並充分利用出色的 文件

Electron 簡易範例

·2 分鐘閱讀

我們最近在 GitHub 總部為 Hackbright Academy(一所位於舊金山的女子程式設計學校)的成員舉辦了一場 Electron 黑客松。為了幫助與會者搶先開始他們的專案,我們自己的 Kevin Sawicki 創建了一些 Electron 應用程式範例。


如果您是 Electron 開發新手,或者還沒有嘗試過,這些應用程式範例是一個很好的起點。它們很小、易於閱讀,並且程式碼經過大量註解,以解釋一切如何運作。

要開始使用,請 clone 這個儲存庫

git clone https://github.com/electron/simple-samples

要運行以下任何應用程式,請切換到應用程式的目錄,安裝依賴項,然後啟動

cd activity-monitor
npm install
npm start

活動監視器

顯示 CPU 系統、使用者和閒置活動時間的環圈圖。

Screenshot

Hash

顯示使用不同演算法輸入文字的雜湊值。

screenshot

Mirror

以最大化尺寸播放電腦攝影機的視訊,就像照鏡子一樣。包括使用 CSS 動畫的可選彩虹濾鏡效果。

價格

使用 Yahoo Finance API 顯示石油、黃金和白銀的當前價格。

screenshot

URL

在視窗中載入命令列上傳遞的 URL。

其他資源

我們希望這些應用程式能幫助您開始使用 Electron。以下是一些其他資源,可供您了解更多資訊: