Archives for 4月2015

第1回Electron勉強会でClojureでElectronアプリを作るネタを発表してきた

4/24に行われた、Electron勉強会にて発表してきました。

僕の発表内容は、ClojureScriptベースでElectronアプリを作るというもので、ここずっとこのブログでも取り上げていたdescjopの仕組みやClojureScriptでElectronを使った場合のはまりポイントなどを解説しました。

Clojureってそもそもなによ?っていう人も多いため、前半はそもそもClojureってどういうものか、ClojureScriptとの関係などをメインで話しました。

なので、スライドを見ると、Clojureのこともちょっとわかったりします。

Clojureミニミニ入門資料としてもどうぞ。

   

参加してくれた方、どうもありがとうございました。

Read More

descjopのマイクロサイト裏側&GitHubトレンドに載ったなど

descjopのサイトをオープンした

descjop 0.1.2のサイトをさくっとオープンさせました。 ドメイン取得からちょっとした作業、そしてサーバの公開まで数時間足らずです。

まだ基本情報以外何もないですが、成長わずかな小さいライブラリのサイトはこれくらいシンプルなところからやっていってもいいかもしれないと思っています。

余談ですが、今後、ブログでライブラリのサイトを作っていくこと件についていろいろ思索したことを書いていこうと思っています。

さくっとオープンさせるための初期構成

とりあえず立ち上げるにあたって、UIフレームワークはFoundationをえらびました。

理由は単純で、IntelliJ IDEAのStaticなWebプロジェクトとしてはじめから用意されているからです。

Foundationの他に使ったものは、コードハイライト用のhighlight.jsくらいでしょうか。

構成としては、ドメインをAmazon Web ServiceのRoute53にてホスティングし、それをAmazon EC2にて運用しています。

とくになにもサーバー側アプリケーションは作っていないのでApacheのみです。

今後はClojureベースで作っていこうとおもいますが、まあそれは別の話。

何故すぐにサイトを作るのか

ライブラリに関して、GitHub上にあるドキュメントやソースコードが本質的な価値だとすると、独自ドメインでサイトとしてやるのはもっと広報的な価値としての意味合いが強くなります。

世界観を伝えたり、人がとりあえず来る場所、まず紹介される場所としてサイトがあることは強いです。

これらは、おそらくライブラリの成長とともに充実していくようなものだろうと考えています。

なので、ライブラリのバージョンが0.1.2なのと同様に、サイトのバージョンもまだ0.1.0くらいです。

手っ取り早く世界観を表現できるものとしては、ドメイン名というのがあります。

例えば、hoge.ioというドメインなら、何かしらの入出力に強そうという印象がありますし、hoge.orgならコミュニティドリブンな開発スタイルを重視してそうという印象があります。

ということで、現時点では個人開発だし、最後まで個人開発かもしれませんが、心持ちとして開かれた開発スタイルでありたいという願いをこめてdescjop.orgというドメインにしました。

流行りのGoogleのモバイルフレンドリーテスト

これは余談ですが、Googleのウェブマスター向けモバイルガイドにモバイルフレンドリーテストなるものがあります。ここでは、URLを入力して、判定をみることができます。

特にモバイルのことを考慮しないでつくると、赤いアラートと共にモバイルフレンドリーではないですと出るでしょう。

descjopは、最低限の対応をしているので、一応のモバイルフレンドリーとなりました。

GitHubトレンドに載った

さらに余談ですが、GitHubトレンドってのがありまして、これはGitHubの特定のプログラミング言語ごとに、注目されているものを一覧で出力してくれるサービスがあります。

ここのClojureの一覧で 8位 になりました。

まあちっぽけなライブラリですし、瞬間風速的にランクインしたので来週には圏外へ行ってしまうでしょう。

ただ、著名なオープンソースライブラリと共に一覧に載ったので記念に残しておきます。

Read More

配布用アプリのパス不具合を解決したdescjop 0.1.2をリリースしました&Electronアプリ起動に関する補足情報

昨日に続いて早速descjop 0.1.2をリリースしたんですが、それについての補足情報なども。

どうやってElectronアプリを起動しているか

Electronアプリケーションを開発中は、任意の場所にインストールされたElectronへのパスに、JavaScriptやHTMLを含むディレクトリを指定することでElectronアプリとして起動させることができます。

descjopでは、こんな感じです。

  • プロジェクトディレクトリ以下にelectronというディレクトリを作成し、そこへelectron本体をダウンロード
  • 開発モードで起動する際は、そこへのパスとともに、それにアプリケーションディレクトリappを指定することで起動
  • app以下は、変数名の書き換え対策のexterns.jsとcljsbuild-main.jsというコンパイル時に出力される依存ライブラリ込みのJavaScriptファイルが動的に生成されます
    • それ以外には、プロジェクト作成時に生成されるindex.htmlとエントリポイントとなるmain.js、設定ファイルとなるpackage.jsonが存在しています
  • つまり、Electronアプリに必要なのはappディレクトリ以下のみ

ただ、開発時のような起動方法だとElectronアプリとして配布する場合に面倒な感じになります。

Electronアプリとして配布する場合

そこで、下記

に従い、出力用のパッケージングをします。

具体的にはアプリケーションが自動で読み込める位置にJavaScriptやHTMLを含むディレクトリ(もしくはパッケージされたファイル)を配置することや、アイコン、名称を変更することになります。

対応策

で、その際に、どうもdescjop 0.1.1までのバージョンのテンプレートではパス読み込みの返される結果が変わってしまう現象があり、修正をしました。

上記ドキュメントを参考に相対的にindex.htmlのディレクトリを求めるように書き換えました。

該当箇所のコードは下記のような感じです。

(.loadUrl @∗win∗ (str "file://" (.resolve path (js∗ "__dirname") "../index.html")))

ということで、今後使われる方は0.1.2以降をご利用ください(というかlein newすると自動で最新版が選択されるので、気にする必要はありません)

バージョン0.1系は、現時点の細かなバグフィックスを中心に進めたいと思っています。

一連のブログ記事

Read More