BGMはお好みで 開発編

Java, Groovy, Scalaあたりを頑張るブログです

俺的なGrailsの始め方

何度か失敗してしまったのでメモ程度に書く

  1. http://grails.org/ からGrailsをダウンロード。適当なフォルダに解凍。パッケージ管理ソフトあるならそれでもいい
  2. コマンドラインやIDEからcreate-appして新規でアプリ作成
  3. gitを使うので.gitignoreファイルを作成してくれるコマンドである「grails integrate-with --git」を実行
  4. pluginなどの依存関係はgrails-app/conf/BuildConfig.groovyに書く。IDEに任せてPluginManager的なものでインストールしようとすると、application.propertiesに書き込むので注意
  5. 場合によってはビルドをjenkins先生に任せたいので、pom.xmlファイルを出力してくれる「grails create-pom パッケージ名」を実行
  6. ドメインクラスをガシガシ書く。楽しい\(^o^)/

ネットに落ちているGrailsの資料が古いと混乱しますね(白目

2.2以降に対応したGrails入門の書籍がでることを願います(`;ω;´)

Androidプログラミングにつかれたので、Android + Xtendプログラミングで遊ぶ

気がついたら、Webから離れて、Androidでガリガリプログラミングするようになっていました

Androidの開発は基本的にはJava 6(のような何か)です。いくつかアプリを作ったのですが、やってみた印象としてはWebプログラミングと比べると制約が多いです。同じ感覚でプログラミングすると、Android(Dalvik)の鬼のようなメモリ節約術により簡単にぬるぽで落ちますw 

Javaってこんなめんどくさい言語だったっけ?」

RubyとかPythonとかScalaとかGroovyとかが恋しくなってきました。もうちょっとさくさくプログラミングしたいです。Clickイベントとかクロージャーっぽく書きたいです。ラムダ式ほしいです。型推論もほしいです(´;ω;`)

一応Scalaは使えるのですが、Android SDKがScalaを前提に書かれているわけではないし、調べると色々問題もあるようなので諦めました

そんな中、Xtend 2.4がAndroid対応していたようなので、試してみました

XtendはEclipse製のJava互換言語です。ラムダ式や型推論、拡張メソッドをサポートしつつ、コンパイルするとJavaコードを出力くれるのでAndroidでも安心です^^;

 

最初にEclipseに以下のプラグインをEclipse Market Placeからインストール

インストールが終わったらファイル→新規→その他 から MavenMavenプロジェクトを選択、アーキタイプは xtend-android-archetype を選びます

f:id:digitaljunky:20130906000751p:plain

これで、プロジェクトのひな形が完成です

ターゲットが古くエラーになっている場合はプロジェクトプロパティから修正します

f:id:digitaljunky:20130906002203p:plain

あと、何故かJ2SE-1.5でコンパイルしようとするので、そこをpom.xmlを修正

bulidタグ内のpluginsタグに以下を追加

<plugin>

  <groupId>org.apache.maven.plugins</groupId>

  <artifactId>maven-compiler-plugin</artifactId>

  <version>2.3.2</version>

  <configuration>

    <source>1.6</source>

    <target>1.6</target>

  </configuration>

</plugin>

 あとはプロジェクトを右クリック→Maven→プロジェクトの更新でなんとかなるはず

 

試しに作ってみたのをgithubに上げました

https://github.com/digitaljunky-jp/xtend-basecam

minttyからPlay framework2のコンソールを起動できたよー #play_ja

minttyいいですね!

CygwinMinGW/MSYSを導入してminttyで快適なターミナル環境を構築すると、もう標準の貧弱極まりないコマンドプロンプトを使う気が失せます

ところが、minttyはWindowsビルドのアプリでの対話モードに対応していません

RubyirbとかPlay framework2とかは起動はするものの、文字入力を受け付けてくれません

(ノ`Д´)ノ彡┻━┻

 

せっかく呪縛から解かれたと思ったのに、結局コマンドプロンプト使うわけです

やってられませんね(´・ω・`)

 

しかし、最近になってようやくまともな解決策が出てきたようです

というわけで、winptyを導入してみます

バイナリ頒布

https://github.com/rprichard/winpty/downloads/

Github

https://github.com/rprichard/winpty

とりあえず、バイナリをzipでDLしてくるか、自前でビルドします

zipはcygwin版とmingw版があるので適切なものをDLしてください

 

入手できたら、適当なところにconsole.exe、winpty.dll、winpty-agent.exeを配置します

僕は/build/に置きました

実際、実行してみるとこんな感じになります

f:id:digitaljunky:20130216010046p:plain

/build/console.exe hogehoge みたいな感じで実行すればいいみたいです

試しに、予めパスを通しておいたPlay frameworkのplayコマンドを実行してみます

f:id:digitaljunky:20130216010402p:plain

あ……あれ?エラー?

 

あっ、play.batではなく、シェルスクリプトを実行している?

play.batで実行してみます

f:id:digitaljunky:20130216010722p:plain

できたー!

これでnewしてみましょう!

f:id:digitaljunky:20130216011002p:plain

問題なくnewもできました!

f:id:digitaljunky:20130216011421p:plain

runも問題なし

.bashrcでalias設定すれば、playコマンドだけでいけそうですね

これでコマンドプロンプトからおさらばできそうですヽ(´ー`)ノ

 

Scala IDEでPlay framework2のPluginが出てたので使ってみた。その1 #play_ja

使いやすいIDEサポートがないと、おっかなびっくりにしかプログラミングができないみなさま、こんにちは。

 

何かと話題のScala / Java用WebフレームワークPlay framework2.xのEclipse用プラグインがこっそりと登場していたので使ってみました

 

プラグインをインストールするためのアップデートサイトは以下のwikiにあります

https://github.com/scala-ide/scala-ide-play2/wiki

Getting the plug-inから 、適切なURLを選んでインストールしてください

 

先ほどのwikiにもありますが、このプラグインの主な機能は、Route EditorとTemplate Editorみたいですね

 

適当にプロジェクト作って、play eclipseEclipse用プロジェクトファイル作ってインポート

それと、設定→エディタ→ファイルの関連付けで*.htmlのデフォルトエディタをテンプレートエディタに変更しておきます

 

f:id:digitaljunky:20130214005649p:plain

 

あとは、app/view/内にあるscala.html、もしくはconf/routes を開くと専用エディタで開きます

f:id:digitaljunky:20130214010024p:plain

f:id:digitaljunky:20130214010027p:plain

シンタックスハイライトキタ━━━━(゚∀゚)━━━━!!

コード補完とかもできるようなのですが、今日はここまで。