Monthly Archives: January 2012

今流行のArctic.jsと、enchant.jsの比較

こんにちは ライセンス云々で話題になっていたArctic.jsですが、スマフォに特化したCanvas Frameworkということで 機能的にどうなのか、というところが大変気になります。弊社では同じゲーム向けのJSFrameworkとして、 enchant.jsを使用しているので機能をざっくり比較してみようと思います。 機能の差 Arctic.js enchant.js サイズ(byte) 90851 88593 圧縮後サイズ(byte) 36696 33570 オブジェクトの描画 canvas上 div毎 License MIT MIT or GPLv3 圧縮後のファイルサイズはenchant.jsのほうが3kbほど少ないですね。 どちらもjs上に継承などを行う擬似クラスを作るためのClass要素があったり、スマートフォン/PC両方で使えるようにtouch系イベントとmouseDown/Move系イベントを判定したり、fps(フレーム数)を設定してフレーム毎のイベントを設定するなどしています。 Arctic.jsだけにある機能としては、Ajax対応(ただしJSONPはサポートしていないので、すべて同ドメインのサーバで処理する必要がある)、FLASHライクなタイムライン指定でのアニメーション機能があります。 反対に、enchant.jsだけにある機能としてはaudio要素への対応としてのSoundオブジェクト、RPGのフィールドマップのようなものを作るMapオブジェクト、あとはプロパティ型の記述ができるのが特徴でしょうか。 label.text = ‘abc’; img.x=12; と書くenchant.jsのほうが、 labe.setText(‘abc’); img.setX(12); とするArctic.jsよりも直感的ですよね。 後発だけあって、Arctic.jsのほうはenchant.jsの機能をパクったenchant.jsにある基本的な機能はだいたいあるような感じですね。 オブジェクトの描画についてですが、Canvasでの描画の方が性能的に有利かもしれませんが、enchant.jsは divタグ毎にオブジェクトに持っていることで利便性をあげています。既存のアニメーション効果をdivタグ単位で 適応することにより、今までのエフェクトを使いまわすことができるのです。 enchant.jsと他のライブラリを合わせて使うサンプルはこちらのブログに具体的な実装方法が書かれていたので、実装方法はリンク先を御覧ください。 スプライトするまでのコードの比較 … Continue reading

Posted in Android, JavaScript, iOS | 1 Comment

MavenからSBTへのビルド環境の移行 依存関係解決

目次へ戻る この項目ではおもに依存関係の解決方法の説明をします。 sbtは内部でApache Ivyを使用しています。 MavenCentralやScala-toolsなどのMavenRepositoryは問題なく使えますが、ローカルのMavenとの連携は多少設定が必要となります。 1. 依存関係の設定 依存関係は、libraryDependenciesのSettingKeyに設定することになります。 libraryDependenciesの受け取る型はSeq[ModuleID]となっており、依存するライブラリを全て列挙することとなります。 javaのライブラリの場合 mavenでは sbtでは のように書きます。 まず、演算子が := では無く、 +=になっていることに注意してください。 := は代入となり、値を全て上書きしてしまいます。+=は新しい要素の追加になります。 ModuleIDはimplicit conversionによって変換されています。演算子には%を使います。書式は “groupID” % “artifactID” % “version” [% "scope"] です。scopeには、”compile”,”test”,”provided”が使用可能です。またscopeは省略可能で、デフォルトでは”compile”とみなされます。 scalaライブラリの場合 scalaのライブラリは慣習的にartifactIDの末尾にscalaのバージョンが付与されます。 このようなscalaライブラリの場合、sbtでは と設定します。注意する点は、groupIDのあとの演算子が % -> %%になっており、artifactIDにscalaVersionをくっつけていないという点です。 このように記述することで、sbtが依存関係の解決を行う際に自動でartifactIDに現在設定しているscalaのバージョンを付与してくれます。 2. 外部Repositoryの設定 デフォルトでMavenCentralRepositoryやScalaToolsが設定されています。 … Continue reading

Posted in Scala, maven, sbt | 2 Comments

MavenからSBTへのビルド環境の移行 プロジェクトの準備

目次へ戻る 1. SBTプロジェクトファイルの準備 今回は、JSONライブラリのGSONを使ってJSONのパースをするプログラムとそのテストを作りたいと思います。 まず、適当に空のディレクトリを作成しそこへ移動してください。 1.1 sbtプロジェクトファイルの用意 projectディレクトリを作成し、Build.scalaというファイルを作成し以下のコードを書いてください。 あとは、sbtを実行(すでに実行している場合は、reloadで再読み込み)を行なってエラーが起きないことを確認してください。 これが、最小構成のsbtのプロジェクトファイルになります。 sbtの思想を簡単に説明しておくと、sbtでは全ての設定がSettingKeyとValueのペアとなっています。この例では、 の部分が設定に相当し、versionというSettingKeyに”0.0.1-SNAPSHOT”というValueを設定しています。その他の設定もこのようにKeyValueのペアとして表現されます。 2. 基本設定 2.1 groupIdやartifactId等の設定 mavenのgroupIdやartifactIdなどの基本情報の設定は以下のように対応します。 これ以外の使用可能なSettingKeyはsbt.Keysに定義されています。 Mavenでのタグ名 SettingKey groupId organization artifactId Project@id + “_” + scalaVersion version version description description はpomファイルの と等価になります。なお、sbtコンソールで コマンドを使用するとpomファイルを生成してくれます。 2.2 scala version sbtではコンパイルに使用するscalaのバージョンと、CrossVersionBuildの設定が簡単に行えます。 現在はデフォルトではscala2.9.1が使用されます。 … Continue reading

Posted in Scala, maven, sbt | Tagged , , | Leave a comment

MavenからSBTへのビルド環境の移行 SBTのセットアップ

目次へ戻る 1. SBTのインストール sbtはこちらから取得できます。 1.1 Windows まず、Setupのinstalling sbtのところからsbt-launch.jarをダウンロードして適当なフォルダに置いてください。 次にjarを保存したディレクトリに以下の内容を書いたsbt.batを作ります。 最後に、コントロールパネルの環境変数でPathにこのsbt.batとsbt-launch.jarをおいたディレクトリを通してください。 以上でSBTを使う準備は完了です。 LinuxとかMacとか だいたい手順は一緒です。書くのがめんどくさいので本家Wikiを参照してください。 2. Hello SBT 2.1 起動 sbtを使うだけならば、コマンドプロンプトから適当なディレクトリで とだけ入力してください。SBTの対話モードが起動します。 2.2 ソースコード sbtのプロジェクトのディレクトリ構成は以下のようになります。 Mavenとソースコードのディレクトリ構成は同じです。 src/main/scalaに以下のようなhellosbt.scalaを入れておいてください。 2.3 コンパイルと実行 実行は次の手順で行えます。 > sbt sbt> reload … sbt> update … [success] … sbt> compile … Continue reading

Posted in Scala, maven, sbt | 1 Comment

MavenからSBTへのビルド環境の移行

この記事は、sbt0.11.X系列の記事です。それ以前のバージョンでは正しく動作しません。 SBTとは Scala(とついでにJava)のためのビルドツールです。ちなみにSimple Build Toolの略です。 特徴としては、設定等全てscalaで書くことができ拡張性が高いビルドツールになっています。 この記事では、Mavenの主要な機能を順次sbtへと移植していきます。 現在ScalaをMavenと連携して使用しているけど、sbtも安定してきた気がするしsbtへ乗り換えてみようかなと思っている人達を対象にしています。 sbtに関しては、使う上での最低限の情報と、Mavenからの移植に必要な部分のみ触れています。 きちんとsbtの使い方を知りたい方は、本家のWikiを読んでください。 目次 SBTのセットアップ 1. SBTのインストール 2. Hello sbt 3. SBTの概要 プロジェクトの準備 1. SBTプロジェクトファイルの準備 2. 基本設定 依存関係解決 1. 依存関係の設定 2. 外部Repositoryの設定 3. MavenLocalRepositoryの設定 4. settings.xmlの置き換え デプロイ Comming soon? share this on:ShareFacebook

Posted in Scala, maven, sbt | 1 Comment

CSSのベンダープリフィックスを自動で追加するテクニックまとめ

こんにちわ!GTEエンジニアの小橋です。 みなさん、CSS3してますか?CSS3によって表現は大幅に広がりましたが、一方で対応状況はブラウザによって様々…。 CSSでベンダープリフィックス(-mozとか、-webkitとか…)を複数記述するのはめんどくさいですよね? というわけで、何とかしてくれる手法をまとめてみました。 Prefixr Prefixr : http://prefixr.com/index.php 入力したCSSに、ベンダープリフィックスを付与してくれるWebサービスです。 こういうCSSを記述すると… こんな形に変換してくれます! また、Prefixrにはcssをワンライナーに圧縮する機能もついています。(”Compress My Code”のチェックを入れるだけ) Webサービスでココまでやってくれるのは嬉しいですね。 vim用のプラグインも有るみたいなので、『CSSはvimで書く!』という人には良いですね。 -prefix-my css -prefix-my css : http://prefixmycss.com/ Prefixrと同じような感じの、ウェブサービス型。 インデント付けてくれるのでPrefixrと比べて見やすい方をお好みで、でしょうか。 ※ background:-webkit-gradient の変換などに差異があり、-webkit-gradientのものはうまく動かないですね。 -prefix-free -prefix-free : http://leaverou.github.com/prefixfree/ javascriptベースでCSSを書き換えてくれます。 このようにjsファイルを読み込むだけで、<style>~</style>で書いたcssや<link rel=”stylesheet” type=”text/css” />で読み込んだcss、DOMエレメントのstyle要素に記述したcssはもちろん、javascript経由で設定するcssまで適用してくれます! ファイルサイズは5KBと軽量なうえ、jQuery等のライブラリに依存することもありません。 なによりすごいのは、javascript経由で設定したstyleまでベンダープリフィックスをつけた形で適用してくれること。 ・・・もっとも、この機能はchromeとoperaで正常に動作しないそうです。 そのため、-prefix-free … Continue reading

Posted in JavaScript, css | Leave a comment