メインコンテンツへスキップ

「コミュニティ」タグの付いた23件の投稿

Electron におけるコミュニティの取り組み

すべてのタグを表示

今週のプロジェクト: Voltra

·6分で読めます

今週は、Electron で動作する音楽プレイヤーである Voltra について、Aprile ElcichPaolo Fragomeni と会談しました。


Voltra とは何ですか?

Voltra は、自分の音楽を所有したい人のための音楽プレイヤーです。また、自分がすでに所有している音楽に基づいて新しい音楽を発見して購入できるストアでもあります。広告なしで、デスクトップとモバイル向けのクロスプラットフォームです。また、あなたをスパイすることはありません。

voltra-artistview

Voltra は誰のためのものですか?

音楽を聴くすべての人。

Voltra を作成する動機は何でしたか?

ラジオは常に多くのリスナーを獲得してきました。電波からインターネットに移行しています。現在、音楽をオンデマンドでレンタルできます — これはラジオの復活です! このため、多くの新しい製品とサービスが登場しましたが、ストリーミングラジオでは、音楽と音楽体験のコントロールが他人にあるままです。

私たちは、自分が所有する音楽に完全に焦点を当てた製品を求めていました。アーティストやレーベルから直接新しい音楽を簡単に見つけて購入できるようにするものです。

無料版はありますか?

デスクトッププレイヤーは完全に無料です。音楽の販売も無料です! 広告はサポートしていません。

アプリは無料なので、後でオープンソース化する可能性があります。現在は、それを管理する帯域幅がありません。また、機能に関する非常に具体的なアイデアと、物事を進めたい方向性があります。私たちは活発なベータコミュニティを持っており、フィードバックを真摯に受け止めています。

どのように収益を上げていますか?

プレミアム機能があります!

私たちの Voltra Audio Archive は、音楽専用に設計されたクラウドバックアップサービスです。データの圧縮や共有ブロックは行いません。あなたの音楽コレクションは物理的にバックアップされます。

アーティストやレーベル向けには、Pro Membership は、アナリティクスやプロフェッショナルなアーティストのウェブページなど、より関連性の高いオーディエンスにリーチするためのツールを提供します。

Voltra の違いは何ですか?

デザインとユーザビリティは私たちにとって非常に重要です。リスナーに気を散らさないリスニング体験を提供したいのです! いくつかの興味深い音楽プレイヤーとストアがありますが、それらの多くは、作成者が認識している以上に高度で使いにくいものです。Voltra をできるだけ多くの人に利用できるようにしたいと考えています。

また、アーティストやレーベルから手数料を徴収しません。これは私たちにとって重要な差別化要因です。アーティストが音楽を市場に投入する障壁を下げるため、これは非常に重要です。

どのようなデザインと技術上の決定を下しましたか?

Voltra を設計する際、ネイティブアプリとウェブの UI コンベンションを検討し、削除できるものについても多く考えました。過去数か月間、重要なフィードバックを提供してくれた、活発なプライベートベータグループがあります。

アルバムアートと写真が人々にとって非常に重要であることがわかりました。多くのプレイヤーは単なるファイルのリストです。物理的なアルバムを所有することのクールな点の1つはアルバムアートであり、Voltra デスクトップアプリでこれを強調したいと考えました。

voltra-albumview

また、人々のファイルを乱さないようにしました。ファイル監視を使用して、ファイルを好きな場所に配置でき、ファイルの名前を変更したり、移動したりしません。埋め込みデータベースを使用して、監視対象ディレクトリの状態を追跡し、プロセスが実行されていない場合でも、新しいものを追跡できるようにします。

Voltra の構築中に直面した課題は何ですか?

私たちはパフォーマンスに多くの時間を費やしています。フレームワークから始めましたが、バニラ Javascript に移行しました。私たちの経験では、それらが提供する一般化された抽象化は、導入するパフォーマンスペナルティと儀式よりも重要です。

現時点では、非常に大きなコレクションをかなりうまく処理しています。大規模なコレクションとは、おそらく数万枚の画像を意味します! Node.js のファイルシステムモジュールがレンダリングプロセスから直接利用できるため、DOM イベントに基づいて、大量の画像を非常にすばやく遅延ロードおよびアンロードすることが非常に簡単になりました。

一般に、setImmediaterequestIdleCallback は、UI の応答性を維持しながら、大量の処理を実行するための非常に重要なツールです。より具体的には、CPU バウンドのタスクを個別のプロセスに分散することで、ユーザーインターフェースの応答性を維持するのに非常に役立ちます。たとえば、ビジーな UI からの潜在的な中断を回避するために、実際のオーディオコンテキストを個別のプロセスに移動し、IPC を介して通信しました。

なぜ Electron で Voltra を構築することを選んだのですか?

ブラウザのサンドボックスは、私たちのアプリには制限が厳しすぎます。しかし、私たちはウェブプレイヤーも開発しています。したがって、2つの実装間でほぼ100%のコードを共有できることは大きなメリットです。

実際には、私たちはまずSwiftを使ってネイティブアプリを開発しました。そこで見つかった主な問題は、多くのことを再発明していたことです。ウェブには世界最大のオープンソースのエコシステムがあります。そのため、私たちはすぐにElectronに切り替えました。

また、最も重要なこととして、Electronを使用すると、一度開発するだけで、主要なすべてのプラットフォームで「Just Work™」(うまくいく)はずです。保証されているわけではありませんが、各プラットフォームでネイティブにコーディングするコストは、Electronがもたらす他のコストよりも間違いなく大きいです。

Electronの好きなところは何ですか?

GTD!:Node.jsのネットワーキングスタックとChromiumのプレゼンテーションレイヤーがパッケージされているため、物事を成し遂げるためのレシピとなります。

コンピテンシー:これは単なるウェブスタックなので、文字通りチーム全員が製品の構築に関与できます。

コミュニティ:非常に組織化されたコミュニティがあり、コミュニケーションを非常にうまく行う方法を知っています!そのようなサポートを得ながら開発できることを非常に嬉しく思っています。

Electronを改善できる点はどこですか?

私たちは、Electronが単一のパッカーを推奨することを望んでいます。パッカーは、パッケージマネージャーがNodeにとって重要であるのと同じくらい、Electronにとって重要です。ユーザーランドには複数のパッカーがあり、それぞれに興味深い機能がありますが、それぞれにバグがあります。コミュニティによるコンセンサスは、貢献者によって費やされているエネルギーを導くのに役立ちます。

次は何が来るのですか?

現在、モバイルアプリを開発しており、アーティストやレーベルと協力して、彼らの音楽をVoltraショップに追加しています。もしアーティストやレーベルの方がいらっしゃいましたら、今すぐサインアップしてください!1000万曲の目標を達成したら、ショップをオープンする予定です。

今週のプロジェクト: WordPress Desktop

4分で読めます

今週は、Automatticの人々と話をして、WordPressのコンテンツを管理するためのオープンソースのデスクトップクライアントであるWordPress Desktopについて聞きました。


WordPress Apps

誰もがWordPressについて知っていますが、WordPress Desktopとは何ですか?

WordPress.comデスクトップアプリは、ブラウザのタブに気を散らされることなく、コンテンツとデザインに集中できるシームレスなクロスプラットフォームエクスペリエンスを提供します。また、サイトを脇に置いておきながら、アクセスできるようにします。ブラウザサポートとモバイルアプリを組み合わせることで、どこでも、どのような方法でも、作業を進めることができます。

なぜWordPressサイトを管理するためのデスクトップアプリを開発するのですか?すべてウェブベースにすることはできませんか?

実際には、ブラウザでWordPress.comにアクセスするときに得られるものとまったく同じテクノロジーを使用しています。ただし、すべてローカルでホストされているため、読み込み時間が最小限に抑えられます。ドックに表示される、通知などのネイティブ機能の恩恵を受けることで、WordPressサイトとブログに集中することができます。

なぜWordPress DesktopをElectronで構築することにしたのですか?

2015年末に、私たちはCalypsoというReactを使用するオープンソースのモダンなJavaScriptアプリの形で、WordPress.comの多くを再構築しました。Electronを検討し始め、Calypsoにいくつかの変更を加えることで、ローカルで実行することができました。それは魅力的な体験であり、さらに開発する価値があると考えました。

Calypsoに取り組んでいるチームがいくつかありました。従来のデスクトップテクノロジーを使用して、これに一致する完全なマルチプラットフォームGUIクライアントを作成するには、より多くの作業が必要でした。Electronを使用することで、2〜4人の小さなチームが他のチームの取り組みを活用し、数か月でデスクトップアプリを構築することができました。

WordPress Desktopの構築中に直面した課題は何ですか?

アプリの初期バージョンを非常に迅速に実行できましたが、デスクトップアプリとして最適に動作するように調整するには、さらに多くの時間がかかりました。アプリの大きな課題の1つは、実際にはCalypsoのコピーを自分のマシンで実行していることです。これは純粋にAPI駆動のUIです。これには多くのブリッジング作業が必要であり、変更はCalypso自体にフィードバックされました。

さらに、アプリをさまざまなプラットフォーム向けにパッケージ化するのに多くの労力が費やされました。Windows、macOS、およびLinuxバージョンを提供していますが、これらをトリッキーにするのに十分な違いがあります。

当時、Electronは比較的新しく、すぐに修正された(時には同じ日に!)問題に遭遇し続けました。

Electronを改善すべき点はどこですか?

Electronは、デスクトップアプリに必要なもののほとんどをすでに提供しており、使用を開始してから急速に進歩しています。とはいえ、スペルチェックや検索/置換など、デスクトップアプリでは当たり前とされているが、Electronの現状では複製が難しい領域がいくつかあります。

また、新しいChromeテクノロジーの一部がElectronにも浸透することを望んでいます。特にWebVRを試してみたいと考えています。

Electronの好きなところは何ですか?

Electronを選んだ主な理由であり、最大の強みは、非常に活発でオープンなコミュニティです。Automatticは常にオープンソースを信じてきました。それは私たちの中心的な信条の1つであり、Electronプロジェクトとコミュニティは非常にオープンでポジティブであるという中心的な信念の多くに従っています。

WordPress Desktopの次のステップは何ですか?

私たちのモデルの素晴らしい点は、デスクトップアプリが新しいCalypso機能の恩恵を受けることです。常に改善が行われています。オフラインサポートなどの追加機能をアプリに追加して、アプリをネイティブ領域に移行させ、システム通知を改善したいと考えています。

Automatticには他のElectronアプリに取り組んでいるチームはありますか?

はい、デスクトップアプリでの取り組みの後、SimplenoteチームはElectronを使用してWindowsおよびLinux用のデスクトップアプリ(ネイティブMacクライアントはすでに存在します)を構築することにしました。Simplenote Electronアプリもオープンソースであり、Githubで入手できます。

また、Electronを使用する今後のRaspberry Pi統合も予定しています。

もし、興味があれば、ぜひご連絡ください

他の開発者にとって役立つ可能性のある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にアクセスできるようにする方法です。マシン上で複数のdatsをホストし、ネットワーク経由でデータを提供できます。

何か面白いユースケースを教えていただけますか?

DataRefuge + Project Svalbard

私たちはProject Svalbardというコードネームのプロジェクトに取り組んでいます。これは、消滅の危機にある政府の気候変動データをバックアップするグループであるDataRefugeに関連しています。Svalbardは、北極にあるスヴァールバル世界種子貯蔵庫にちなんで名付けられました。これは植物のDNAの大きな地下バックアップライブラリです。私たちのバージョンは、公開されている科学的データセットの巨大なバージョン管理されたコレクションです。メタデータを理解し、信頼できるようになれば、分散型ボランティアデータストレージネットワークのような他のクールなプロジェクトを構築することができます。

California Civic Data Coalition

CACivicDataは、カリフォルニア州の政治資金を追跡するデータベースであるCAL-ACCESSから毎日ダウンロードを提供するオープンソースアーカイブです。彼らは毎日のリリースを行っており、これはzipファイル全体で多くの重複したデータをホストしていることを意味します。私たちは彼らのデータをDatリポジトリとしてホストすることで、特定のバージョンを参照したり、新しいバージョンに更新したりするために必要な手間と帯域幅を削減する取り組みを行っています。

Electron Updates

これはまだ具体的なものではありませんが、面白いユースケースとして、コンパイルされたElectronアプリをDatリポジトリに入れ、ElectronのDatクライアントを使用して、ビルドされたアプリバイナリの最新の差分をプルし、ダウンロード時間を節約すると同時にサーバーの帯域幅コストを削減できると考えています。

誰がDat Desktopを使うべきですか?

p2pネットワーク経由でデータを共有および更新したいすべての人。データサイエンティスト、オープンデータハッカー、研究者、開発者。まだ思いついていないクールなユースケースがあれば、ぜひフィードバックをお寄せください。私たちのGitter Chatに立ち寄って、何でも聞いてください!

DatとDat Desktopの次の展開は何ですか?

ユーザーアカウントとメタデータの公開。私たちは、datproject.orgにデプロイされるDatレジストリWebアプリに取り組んでいます。これは基本的に「データセット用のNPM」になりますが、注意点として、私たちはメタデータディレクトリとして機能し、データはオンラインのどこにでも存在できます(NPMやGitHubのようにすべてのデータが集中管理されているのとは対照的です。ソースコードは十分に小さいため、すべてを1つのシステムに収めることができます)。多くのデータセットは巨大であるため、フェデレーションレジストリ(BitTorrentトラッカーの仕組みと同様)が必要です。Dat Desktopからレジストリを使用してデータセットを簡単に見つけたり公開したりできるようにして、データ共有プロセスをスムーズにしたいと考えています。

もう1つの機能は、マルチライター/コラボレーションフォルダーです。Gitのようにブランチを使用して、データセットのコラボレーションを中心に設計されたコラボレーションワークフローを実現するための大きな計画がありますが、現在は全体の安定化とプロトコルの標準化に取り組んでいます。

なぜDat DesktopをElectronで構築することを選んだのですか?

DatはNode.jsを使用して構築されているため、統合には自然な選択でした。さらに、科学者、研究者、政府関係者はそれぞれの機関の特定のセットアップを強制される可能性があるため、ユーザーはさまざまなマシンを使用します。つまり、Macだけでなく、WindowsとLinuxにも対応できる必要があります。Dat Desktopはそれを非常に簡単にしてくれます。

DatとDat Desktopの構築中に直面した課題は何ですか?

人々が何を求めているのかを理解すること。最初は表形式のデータセットから始めましたが、それを解決するのは少し複雑な問題であり、ほとんどの人がデータベースを使用していないことに気づきました。そのため、プロジェクトの途中で、ファイルシステムを使用するようにすべてをゼロから再設計し、振り返ることはありませんでした。

また、次のようなElectronインフラストラクチャの一般的な問題にも遭遇しました。

  • テレメトリ - 匿名使用統計をキャプチャする方法
  • アップデート - 自動アップデートの設定は、少し断片的で魔法のようです
  • リリース - XCode署名、Travisでのリリースビルド、ベータビルドなど、すべてが課題でした。

また、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パブリッシングプラットフォーム用の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とは何ですか?

今年は、10人体制のフルタイムのGhostチームを、3つの独立系出版物の成長支援に注力し、その活動のために45,000ドルのリソースを提供できることを大変嬉しく思っています。私たちはこれをGhost for Journalismと呼んでいます。

私たちは約3年半前から、独立系出版社のためのWeb上の次世代プラットフォームとしてGhostを構築してきました。そして今、非常に興味深い転換点に到達しました。私たちは、誰でも使えるシンプルでデザイン性の高いブログプラットフォームを作ることからこの旅を始めました。それは常に第一段階となるものでした。

長期的には、Ghostを世界最高のジャーナリズムのための素晴らしいプラットフォームにしたいと考えています。そのためには、まさにそのような人々を惹きつけるための機能を構築する必要があります。今年は、その一点に集中するという明確な決断をしました。

なぜGhost DesktopをElectronで構築することを選んだのですか?

Ghostはバックエンドとフロントエンドの両方でJavaScriptとNode.jsを使用しているため、同じ技術とスキルセットを活用することで、私たちのチームはより迅速に動き、より多くのものを構築し、最終的にはより良いエクスペリエンスを提供できます。さらに、macOS、Windows、Linux版のアプリ間で95%以上のコードを共有できるため、各プラットフォームごとに1つのコードベースを維持する必要がなく、優れたコアユーザーエクスペリエンスの構築に集中できます。

Ghost Desktopの構築中に直面した課題は何ですか?

スペルチェックは、おそらく最も難しいサービスの1つです。多くのオンラインサービスのいずれかを簡単に利用できますが、ユーザーのプライバシーと自主性を守りながら、複数の言語でテキストを正しくスペルチェックすることは容易ではありません。

Electronを改善すべき点はどこですか?

私たちは、Electronがオペレーティングシステムのネイティブなスペルチェック機能をアプリに導入することを望んでいます。<input>フィールドがNSTextViewと同じサービスを受けられる世界を夢見ていますが、それがどれほど難しいかもよく理解しています。

Electronの好きなところは何ですか?

JavaScriptは、無数のツールやフレームワークを含む広大なエコシステムとして有名ですが、それが私たちにもたらす利便性は非常に大きいと言えます。Electronでアプリを構築することは、Webアプリを構築するよりも少しだけ難しい程度であり、これは驚くべき偉業です。

Ghostは完成しましたか?もしそうでなければ、次に何が来るのですか?

Ghost Desktopも進行中のプロジェクトであり、完成には程遠いです。以前から、完全なオフラインモードをユーザーに提供することを話しており、かなり近づいています。その他の注目すべき作業領域は、他のテキスト編集アプリ(WordやAtomなど)との拡張と統合であり、最終的にはユーザーが好きなツールを使って投稿を作成できるようにすることです。一般的に、オフラインモード機能をリリースしたら、オペレーティングシステムとのより深い統合を目指しています。もし興味があれば、参加してください

お気に入りのElectronアプリは何ですか?

私はKapFelony、そしてVisual Studio Codeの大ファンです。

👻

今週のプロジェクト: Beaker Browser

·4分で読めます

今週は、Paul Frazee氏、Beaker Browserの作成者にお話を伺いました。Beakerは、ユーザーのデバイスからサイトをホストするためにDatプロトコルを使用する実験的なピアツーピアWebブラウザです。


Beakerとは何ですか?また、なぜ作成したのですか?

Beakerは参加型のブラウザです。インディーハッカーのためのブラウザです。

Webはクローズドソースです。ソーシャルメディアの仕組みに影響を与えたい場合は、FacebookやTwitterで働く必要があります。検索についてはGoogleです。コントロールは、ユーザー自身ではなく、企業の手の中にあります。

Beakerでは、新しいWebプロトコル、分散型アーカイブ転送「Dat」があります。これは、オンデマンドで無料でサイトを作成し、デバイスからそれらを共有します。サーバーは不要です。それが私たちのイノベーションです。

Beakers Protocols

BeakerでDatサイトにアクセスすると、ファイルをダウンロードします。サイトはあなたのものになり、永遠に保存されます。保存、フォーク、変更、新しいバージョンを無料で共有できます。すべてオープンソースです。

つまり、オープンソースのウェブサイトのためのブラウザを作っているのです。私たちは、それを社会的なハッキングのためのツールキットにしたいと考えています。

誰がBeakerを使うべきですか?

ハッカー。モッダー。クリエイティブなタイプ。いじくり回すのが好きな人。

Datを使用する新しいプロジェクトを作成するにはどうすればよいですか?

私たちはbkrというコマンドラインツールを持っています。これはgit + npmのようなものです。以下にサイトの作成例を示します。

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

そして、以下にサイトのフォーク例を示します。

$ 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が必要な場合は、ブラウザに組み込まれている基本的なツールがいくつかありますが、これらのツールをユーザーランドにプッシュしています。すべて変更可能なユーザーアプリになる予定です。

なぜBeakerをElectronで構築することを選んだのですか?

このプロジェクトでは当然でした。もし私が自分でChromeをフォークしたら、今頃C++を書いているでしょう!誰もそんなことをしたくないでしょう。私はWebスタックを知っていて、それを迅速に扱うことができます。それは自明のことです。

実際のところ、Electronなしでは、これのどれもできなかったかもしれません。それは素晴らしいソフトウェアです。

Beakerの構築中に直面した課題は何ですか?

その半分は、ツールをいじくり回して、どこまでできるかを把握することです。

ブラウザ自体を作るのはとても簡単でした。Electronは、実質的にブラウザを作るためのツールキットです。...ただし、ブラウザタブは例外です。それを正しく行うのに永遠にかかりました。最終的に降参して、SVGのやり方を学びました。見栄えはかなり良くなりましたが、それが正しくなるまで3〜4回繰り返しました。

Electronを改善すべき点はどこですか?

もし開発者ツールをwebview内にドッキングできたら本当に素晴らしいでしょう。

Beakerの次の予定は何ですか?

Datサイト用の安全なDNS名。「アプリスキーム」と呼ばれる、社会的に構成可能なURLスキーム。より多くのDat API。

プロジェクトへの貢献に興味がある方のために、Beakerはどの分野で支援が必要ですか?

私たちは多くの未解決の問題を抱えています。遠慮なく私に連絡してください。freenodeの#beakerbrowserです。私たちはコントリビューター向けのページを保持しており、あなたを追加します。そして、オースティンに立ち寄ることがあれば、ビールをおごります。

他の開発者にとって役立つ可能性のあるElectronのヒントはありますか?

  1. そこにあるビルドツールを使用してください。自分で解決しようとはしないでください。私を信じてください。electron-builderを使用してください。ボイラープレートリポジトリを使用してください。
  2. Electronリポジトリで問題を提起する必要がある場合は、再現しやすいようにさらに一歩踏み込んでください。はるかに迅速に対応が得られ、チームも感謝するでしょう。さらに良いのは、自分で修正してみることです。内部構造を見るのは実際には非常に興味深いことです。
  3. ガイドと詳細なドキュメントを少なくとも一度はすべて読んでください。
  4. ブラウザを構築しないでください。飽和状態の市場です。

今週のプロジェクト: Kap

·7分で読めます

Electronコミュニティは急速に成長しており、人々は驚異的な速さで強力な新しいアプリやツールを作成しています。この創造的な勢いを称え、コミュニティにこれらの新しいプロジェクトについて知らせるために、私たちは注目に値するElectron関連のプロジェクトを紹介する週刊ブログシリーズを開始することにしました。


この投稿はシリーズの最初のもので、フリーランスのデザイナーと開発者の地理分散型チームであるWulkanoによって作成されたオープンソースの画面録画アプリであるKapを紹介します。

Kap Screencast

Kapとは何ですか?

Kapは、主にデザイナーと開発者が自分の作業を簡単にキャプチャできるように構築されたオープンソースのスクリーンレコーダーです。人々は、アニメーションプロトタイプを共有したり、バグを文書化したり、おかしなGIFを作成したり、その他さまざまなことに使用しています。

教育現場、スクリーンキャスト、チュートリアルなど、あらゆる年齢や背景の人々がそれを使用しているのを見てきました。制作アセットを作成するためにも使われています!私たちの小さなサイドプロジェクトがこれほど好評だったことに、私たちは完全に驚いています。

なぜそれを構築したのですか?

それは非常に良い質問ですね。世の中にはスクリーンレコーダーが不足しているわけではありません!私たちは既存のものが複雑すぎたり、高価すぎたり、または機能が制限されすぎていると感じていました。私たちの日常的なニーズにちょうどいいものがなかったのです。また、私たちが仕事で使うツールがオープンソースであることは素晴らしいと思っています。そうすることで、誰もがツールの開発に貢献できるからです。Kapの開発は、私たちが何をしなかったかという点でも非常に重要でした。全ては細部に宿り、小さな改善の積み重ねが、私たちが使いたいツールの輪郭を形作ったのです。

しかし、おそらく最も重要なのは、Kapが私たちにとって、悩み事を一旦置いて、自分たちや私たちのような人々のために何かを楽しく構築する場所になったということです。ただ思う存分、新しいことに挑戦し、自分たちの技術を楽しむことができる環境を作ることは非常に重要です。要件もプレッシャーも期待もありません。デザイナーや開発者はサイドプロジェクトを行うべきでしょうか?もちろんです。間違いなく行うべきです。

なぜKapをElectronで構築することを選んだのですか?

いくつかの理由がありました。

  • ウェブ技術
  • チームのほとんどがウェブ開発者です。
  • 私たちはJavaScriptに投資しています。
  • より多くの人々が貢献できる門戸を開きます。
  • Electron自体がオープンソースです。
  • node_modulesのパワーと容易にメンテナンス可能なモジュール性。
  • クロスプラットフォームの可能性。

私たちはアプリの未来はブラウザにあると考えていますが、まだそこには到達していません。Electronは、その未来への旅において重要なステップです。アプリ自体をよりアクセスしやすくするだけでなく、アプリが構築されるコードもアクセスしやすくします。OSがブラウザで、タブが本質的にElectronアプリであるという未来を想像するのは興味深いことです。

さらに、主にウェブ開発者である私たちは、JavaScriptのアイソモーフィックな性質、つまりクライアント、サーバー、そしてデスクトップでJSを実行できるという点が大好きです。ウェブ技術(HTML、CSS、JS)を使えば、ネイティブよりも多くのことがはるかにシンプルになります。プロトタイピングの高速化、コード量の削減、flexbox > auto-layout(macOS/iOS)などです。

Kapの開発中に直面した課題は何ですか?

Electronが利用できるリソースを使って画面を録画することが最大の課題でした。それらは私たちの要件を満たすのに十分なパフォーマンスがなく、私たちの目にはプロジェクトを失敗に終わらせる可能性がありました。Electron自体のせいではありませんが、ネイティブ開発とウェブ技術を使ったデスクトップアプリの開発にはまだギャップがあります。

私たちは、Chromiumに起因する問題であるgetUserMedia APIのパフォーマンスの低さを回避するために多くの時間を費やしました。Kapの作成を始めたときの私たちの主な目標の1つは、アプリ全体をウェブ技術で構築することでした。動作させるためにあらゆることを試した後(Retinaディスプレイで30 FPSが最低要件)、最終的に別の解決策を見つけなければなりませんでした。

リポジトリにSwiftのコードがあるようですが、それはどういうことですか?

getUserMediaの代替を探さざるを得なくなったため、私たちはffmpegの実験を開始しました。オーディオとビデオの変換に最適なツールの1つであるだけでなく、ほとんどすべてのOSで画面を録画する機能があり、Retinaディスプレイで30 FPSの最低要件を満たす鮮明なビデオを録画することができました。問題は?パフォーマンスが "😩"で、CPU使用率が異常に高くなっていたことです。そこで、私たちは再度検討し、選択肢を議論し、妥協する必要があることに気づきました。その結果、Swiftで書かれたmacOS用の独自の画面録画ライブラリであるApertureが誕生しました。

Electronを改善すべき点はどこですか?

ElectronアプリはRAMを消費する傾向があることは誰もが知っていますが、これもまたChromiumの特性です。動作の仕組みの一部であり、実際に実行しているものによって大きく異なります。たとえば、KapとHyperは通常100MB未満のメモリしか使用しません。

私たちが改善の余地があると考えている最大の領域の1つは、特にElectronがChromiumをどのように配布するかという点においてペイロードです。1つのアイデアとして、共有のElectronコアを持ち、アプリのインストーラーが既にシステムに存在するかどうかを確認するという方法があります。

クロスプラットフォームのElectronアプリの作成エクスペリエンスはもっと向上する可能性があります。現在、プラットフォーム間で非一貫性が多すぎたり、プラットフォーム固有のAPIがあったり、機能が欠落していたりするため、コードベースはif-elseステートメントで散らかってしまっています。たとえば、バイブレーションはmacOSでのみサポートされており、自動更新機能はmacOSとWindowsで動作が異なり、Linuxではサポートされていません。透過性はLinuxではうまくいくこともあれば、ほとんどの場合は失敗します。

ネイティブシステムAPIを呼び出すのも簡単にするべきです。Electronには非常に優れたAPIセットが付属していますが、提供されていない機能が必要になる場合があります。ネイティブのNode.jsアドオンを作成するという選択肢もありますが、作業が面倒です。理想的には、ElectronはFFI API(fastcallのような)を同梱するべきです。これにより、Swiftの部分をJavaScriptで記述することができたでしょう。

Electronの好きなところは何ですか?

私たちのお気に入りは、Web開発の知識を持つ人なら誰でも、マルチプラットフォームのネイティブエクスペリエンスを構築し、貢献できるという事実です。開発の容易さと楽しさ、優れたドキュメント、活気のあるエコシステムも言うまでもありません。

フロントエンドの観点からすると、Kapの構築は、ブラウザAPIを使用したシンプルなWebサイトを構築するのと何ら変わりませんでした。Electronは、アプリ開発をWeb開発と同様(基本的に同一)にすることに非常に優れています。非常にシンプルなので、フレームワークや同様のツールは必要なく、クリーンでモジュール化されたJSとCSSだけで十分でした。

私たちは、Electronを構築しているチーム、彼らの献身とサポート、そして彼らが維持している活発で友好的なコミュニティも非常に気に入っています。皆さん、ハグを!

Kapの次はどんな機能が追加されますか?

私たちの次のステップは、2.0.0のマイルストーンに向けてアプリを見直すことです。これには、プラグインのサポートに加えてReactの書き換えが含まれており、開発者はKapの機能を拡張できます!私たちのGitHubリポジトリでプロジェクトをフォローし、貢献することを歓迎します。私たちは皆さんの意見を聞き、できるだけ多くの皆さんの意見を聞きたいと思っています。Kapを皆さんのための最高のツールにするために、どのようにすればよいかをお知らせください

Wulkanoとは何ですか?

Wulkanoはデザインスタジオであり、デジタルコレクティブです。リモートで働く技術者のチームで、クライアントの仕事と自社プロジェクトの両方で一緒に働くことを楽しんでいます。私たちは、さまざまな場所やバックグラウンドを持つ、分散していながらも緊密なグループです。仮想オフィス(ElectronベースのSlack!)で、知識、アイデア、経験を共有し、最も重要なこととして、くだらないGIFやミームを共有しています。

他の開発者にとって役立つ可能性のあるElectronのヒントはありますか?

素晴らしいコミュニティを利用して参加し、Awesome Electronをチェックし、を見て、素晴らしいドキュメントを活用してください!

Electron の簡単なサンプル

·2分の記事

私たちは最近、サンフランシスコに設立された女性向けのコーディングスクールであるHackbright Academyのメンバー向けに、GitHub HQでElectronハッカソンを開催しました。参加者がプロジェクトを始めるのを支援するために、私たちのKevin SawickiがいくつかのサンプルElectronアプリケーションを作成しました。


Electron開発を始めたばかりの方、まだ試したことがない方は、これらのサンプルアプリケーションから始めるのが最適です。これらは小さく、読みやすく、コードにはすべてがどのように機能するかを説明するコメントが多く含まれています。

開始するには、このリポジトリをクローンしてください。

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

以下のいずれかのアプリを実行するには、アプリのディレクトリに移動し、依存関係をインストールしてから開始します。

cd activity-monitor
npm install
npm start

アクティビティモニター

CPUのシステム、ユーザー、アイドル時間のアクティビティのドーナツグラフを表示します。

Screenshot

ハッシュ

入力されたテキストのハッシュ値を、さまざまなアルゴリズムを使用して表示します。

screenshot

ミラー

鏡を見ているかのように、コンピューターのカメラの映像を最大化されたサイズで再生します。CSSアニメーションを使用するオプションのレインボーフィルター効果が含まれています。

価格

Yahoo Finance APIを使用して、原油、金、銀の現在の価格を表示します。

screenshot

URL

コマンドラインで渡されたURLをウィンドウに読み込みます。

その他のリソース

これらのアプリがElectronの使用を開始するのに役立てば幸いです。詳細を学ぶための他のリソースをいくつか紹介します。

  • electron-quick-start:最小限のElectronアプリケーションのボイラープレート。
  • Electron API Demos: Electron API のコア機能をデモするインタラクティブなアプリです。
  • electronjs.org/docs/all: Electron のドキュメントがすべて1つの検索可能なページにまとめられています。
  • hokein/electron-sample-apps: Electron のメンテナーであるHaojian Wu氏がまとめた、Electron のサンプルアプリケーション集です。
  • awesome-electron - Electron 関連の最新かつ最高のチュートリアル、書籍、ビデオなどをまとめた GitHub リポジトリです。

Electron ユーザランド

·3 分で読めます

Electron のウェブサイトに、活気のあるオープンソースのエコシステムを構成する人々、パッケージ、アプリを見つけるのに役立つ新しいuserlandセクションを追加しました。


github-contributors

Userland の起源

Userland とは、ソフトウェアコミュニティの人々が集まってツールやアイデアを共有する場所です。この用語は Unix コミュニティで生まれ、カーネルの外で実行されるプログラムを指していましたが、今日ではもっと広い意味を持っています。今日の JavaScript コミュニティの人々が userland と言うとき、通常はnpm パッケージレジストリのことを指します。ここが実験とイノベーションの大部分が行われる場所であり、Node と JavaScript 言語(Unix カーネルのように)は比較的小さく安定したコア機能のセットを保持しています。

Node と Electron

Node と同様に、Electron は小さなコア API セットを持っています。これらは、マルチプラットフォームデスクトップアプリケーションの開発に必要な基本機能を提供します。この設計思想により、Electron はどのように使用されるかについて過度に規定することなく、柔軟なツールであり続けることができます。

Userland は「コア」の対になるものであり、ユーザーが Electron の機能を拡張するツールを作成および共有できるようにします。

データの収集

エコシステムのトレンドをより良く理解するために、electronまたはelectron-prebuiltに依存する 15,000 件の公開 GitHub リポジトリのメタデータを分析しました。

GitHub APIlibraries.io API、および npm レジストリを使用して、依存関係、開発依存関係、被依存関係、パッケージ作成者、リポジトリコントリビューター、ダウンロード数、フォーク数、スター数などの情報を収集しました。

次に、このデータを使用して次のレポートを生成しました。

結果のフィルタリング

アプリ依存関係スター付きアプリなどのパッケージ、アプリ、リポジトリをリストするレポートには、結果をフィルタリングするために使用できるテキスト入力があります。

この入力に入力すると、ページの URL が動的に更新されます。これにより、userland データの特定のスライスを表す URL をコピーして、他のユーザーと共有できます。

babel

今後について

この最初のレポートセットはほんの始まりにすぎません。コミュニティがどのように Electron を構築しているかに関するデータの収集を続け、新しいレポートをウェブサイトに追加していきます。

このデータを収集および表示するために使用されるツールはすべてオープンソースです。

これらのレポートを改善する方法についてアイデアがある場合は、ウェブサイトリポジトリで issue を開くか、上記のいずれかのリポジトリでお知らせください。

今日の userland を作ってくれた Electron コミュニティの皆さんに感謝します!

2016年9月: 新しいアプリ

·3 分で読めます

9 月にサイトに追加された新しい Electron アプリと講演を紹介します。


このサイトは、コミュニティからのプルリクエストを通じて、新しいアプリミートアップで更新されます。リポジトリをウォッチして、新しい追加の通知を受け取るか、サイトのすべての変更に興味がない場合は、ブログ RSS フィードを購読してください。

Electron アプリを作成した場合、またはミートアップを開催する場合は、プルリクエストでサイトに追加してください。そうすれば、次回のまとめに追加されます。

新しい講演

9 月には、ソフトウェアの未来を構築する人々のためのイベントとして、GitHub が GitHub Universe 会議を開催しました。このイベントでは、いくつかの興味深い Electron 講演がありました。

また、12 月 5 日にパリにいる場合は、Zeke がdotJS 2016 で Electron の講演を行います。

新しいアプリ

Pexels完全に無料の写真を検索して、クリップボードにコピーします
Timestampカスタマイズ可能な日付/時刻表示とカレンダーを備えた、より優れた macOS メニューバー時計
HarmonySpotify、Soundcloud、Play Music、およびローカルファイルと互換性のある音楽プレーヤー
uPhoneWebRTC デスクトップ電話
SealTalkRongCloud IM Cloud Service および IM SDK を搭載したインスタントメッセージングアプリ
Infinityプレゼンテーションを簡単にする方法
Cycligent Git ToolGit プロジェクト用のわかりやすいグラフィック GUI
FocoFoco で集中力を維持し、生産性を向上
Strawberryレストラン向けのオールインワンソフトウェアスイートを使用して、生涯の食事客を知り、より良いサービスを提供します。
Mixmaxメールのすべての操作をリアルタイムで確認できます。どこでも作成できます。
Firebase AdminFirebase データ管理ツール
ANoteシンプルで使いやすい Markdown ノート
Tempsシンプルでスマートなメニューバー天気アプリ
Amiumファイルに会話をもたらすワークコラボレーション製品
Soubeシンプルな音楽プレーヤー
(Un)coloredテーマ HTML および Markdown 互換のドキュメントを保存する、次世代のデスクトップリッチコンテンツエディター。Windows、OS X、および Linux 用。
quickcalcメニューバー電卓
Forestpin Analytics企業向けの財務データ分析ツール
LingREST クライアント
Shortexts頻繁にコピーするテキスト、フォルダー、絵文字のショートカット
Front-End Boxフロントエンドコードジェネレーターのセット

2016年8月: 新しいアプリ

·3 分で読めます

8 月にサイトに追加された新しい Electron アプリを紹介します。


このサイトは、コミュニティからのプルリクエストを通じて、新しいアプリミートアップで更新されます。リポジトリをウォッチして、新しい追加の通知を受け取るか、サイトのすべての変更に興味がない場合は、ブログ RSS フィードを購読してください。

Electron アプリを作成した場合、またはミートアップを開催する場合は、プルリクエストでサイトに追加してください。そうすれば、次回のまとめに追加されます。

新しいアプリ

Code RPGifyRPG スタイルのコーディングアプリケーション
PamFaxファックスを送受信するためのクロスプラットフォームアプリ
BlankUp明快さ +1 の Markdown エディター
Rambox一般的な Web アプリケーションを 1 つにまとめた、無料のオープンソースメッセージングおよびメールアプリ
Gordieカードコレクションに最適なアプリ
Ionic Creatorより速く素晴らしいモバイルアプリを構築
TwitchAlerts美しいアラートと通知で視聴者を満足させます
Museeksシンプルでクリーンなクロスプラットフォームの音楽プレーヤー
SeaPigMarkdown から HTML へのコンバーター
GroupMe非公式 GroupMe アプリ
Moeditor万能な Markdown エディター
SoundnodeSoundnode アプリはデスクトップ用の Soundcloud です
QMUI WebQMUI Web Desktopは、QMUI Webフレームワークに基づいたプロジェクトを管理するためのアプリケーションです。
SvgsusSVGを整理、クリーンアップ、変換します
Ramme非公式のInstagramデスクトップアプリ
InsomniaREST APIクライアント
CorreoWindows、macOS、Linux用のメニューバー/タスクバーGmailアプリ
KongDashKong Admin API用のデスクトップクライアント
Translation EditorINTL ICUメッセージ(formatjsioを参照)用の翻訳ファイルエディター
5EClient5EPlay CSGOクライアント
Theme JuiceローカルWordPress開発を簡単に