Android Studio本を書きました

市ヶ谷のほうから「出版しました記事を書け」という思念を受け取ったので書いてみた。

書籍の内容は、かつてgihyo.jpで連載していたAndroid Studio最速入門をベースにしています。相変わらずAndroid開発のことにはほとんど触れていないので「それでもいい」と思える方は手にとって頂けるとありがたいです。

ただ、ちょっとした注意事項がありまして、私の力不足で1冊の本にまとめることができなくて、あふれた分が別冊の『書籍補完版・サポート編』になっています。こちらは電子版限定でGihyo Digital Publishingでのみ入手できます。電子版は、このサポート編の他に、書籍版とサポート編を合わせた完全版があります。整理すると、次の3種類が存在します。

  • 書籍版:『Android Studio本格活用バイブル』(576ページ)
  • 電子版:『Android Studio本格活用バイブル【書籍補完版・サポート編】』(224ページ)
  • 電子版:『Android Studio本格活用バイブル【電子増補・完全版】』(797ページ)


Androidアプリの開発始めたくてAndroid Studioをインストールしたのに、IDEの使い方にハマって、本来の目的にさっぱりたどり着けないって人たちの助けになれば幸いです。別の言い方をすれば、Android SDKAndroidアプリ開発の情報が圧倒的に足りてないので、合わせてこちらの本もお買い上げいただけるとなお良いです。

ps.
書き始めたときはAndroid Studio v1.2ベースでしたが、なんだかんだで1年くらいかかっていたので、終盤にAndroid Studio v1.4に合わせました。v1.4とv1.5の差はあまりないので、その辺は平気です。IDEA15ベースになるAndroid Studio v2.0も極端に変わる点は少ないので、即役立たずにはならないでしょう(たぶん)。
#なんつうかAndroid Studioの名を借りたIntelliJ platformの本なんで...。:-)

ダイソーのソフトクレイでマリオの敵キャラ作った

子どもの誕生日にWiiUマリオ3Dワールド上げたら一瞬で虜になり、気がついたらS.H.フィギュアーツ スーパーマリオ買っていた。



思った以上に完成度高くて、父ちゃんもテンション上がるんだけど、プレイセットA, B, Cがちょいアコギだなと。んで、こんくらいなら自作できるだろ、とダイソーでソフトクレイ買ってきて作ってみた。モデナかレジンで、とも考えたんだけど、さすがにコストパフォーマンス悪いだろと目が覚めた。



子どもは鎧武で仮面ライダー卒業したので、もうこの手の自作モノもおしまいかと思ったら、そうじゃなかった。あと、たぶんルイージも買う。いや、絶対w

IDEA14.1のIDE Scripting Consoleって何ね?って聞いたら教えてもらった

Toolsメニューにある「IDE Scripting Console」。思わせぶりにあるのにHelpにもWhat's Newにも載ってないので「何これ?」って聞いてみた。


そしたら,これを教えてもらった。


超かんたんに説明するとLivePlugin本歌取り。まだだいぶ荒削りなので使える機能とは言い難い。

わかった事はこう。

  • IDE Scripting Consoleを使うとIDEの内部処理にちょっかいかけられる(マクロより強力で,プラグインより手軽)。
  • IDE Scripting Consoleに記述したコード片はCtrl+Enterで評価される。何も選択してなければ現在行,選択していれば,その内容が評価対象になる。
  • IDE Scriptingと同じディレクトリに.profile.language-extensionというファイルを用意しておくと(IDE起動時かな)自動的に読み込まれる。


教えてもらったgistにあるコード:

action("TryMe!", "alt shift P") { e->
  e = PSI_ELEMENT.from(e)
  res = e != null &&  finds.canFindUsages(e)
  IDE.print("can find usages of '" + e +"'? " + (res ? "Yes!" : "Nope"))
}

これらは,同じgist内にある.profile.groovyが用意されている前提で動く。個人的には,せめてこいつくらいは標準で用意しておいて欲しい。

名前からだいたい機能は想像していたのだけれど,また完成度ではLivePluginに軍配が上がる感じ。これから様子みてIDEA15あたりで花咲くんだろうか...。

Asciidoc試してみた

markdownより表現力あって、Sphinx(ReST)以外のマークアップ方法ないかなと思ってasciidocを試してみた。

asciidocそのものはPython実装らしく、MacだとHomebrewでインストールできる(Ruby実装のasciidoctorてのもあって、こっちはgemからインストール可。


Windowsだとインストールめんどいのかなぁ」と調べていたらGradleのプラグインを発見した。
GitHub - asciidoctor/asciidoctor-gradle-plugin: A Gradle plugin that uses Asciidoctor via JRuby to process AsciiDoc source files within the project.


これ使うと、Gradleの実行環境さえあればすぐasciidoc使える事がわかった(内部で、JRubyつかってasciidoctor呼んでるみたい。


こんな build.gradleと。

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.2'
  }
}

apply plugin: 'org.asciidoctor.convert'


asciidoctor {
  backends = [ 'html', 'html5', 'docbook' ]
  resources {
    from(sourceDir) {
      include 'images/**'
    }
  }
}

こんなディレクトリを用意する。


あとは、こんなコマンド実行すればドキュメントを生成してくれる。手軽で大変便利。

$ ./gradlew asciidoctor


asciidoc、markdownより表現力あって興味を惹かれたのだけれど、以下の部分でsphixに敵わなかった。

  • book styleの構成の作り方がわかんなかった
  • text生成が、htmlをlynxw3m使ってるので物理改行だらけで実用的じゃ無い。

そんなわけで、今度はRe:VIEWに挑戦してみる(どれもダメならsphinxに戻れば良し。

[IDEA] Mac版IntelliJのJREバンドル版を調べてみた

Windows版のみJREバンドル版があるのだけれど、実はEAPページにMac版もJREバンドル版があるのだよ。いろいろあって「Experimental(実験)」扱いなんだけど。


IDEA EAP 14.0.2RCが出たついでに、どんなもんかと中身を確認してみたら、こんなだった。


Windows版と同じく、jreディレクトリに起動用JREが入っているのだけれど、そこはMac版、Windowsよりちょっと構造がメンドくさい。既存のJDKから自作するのは、ちょっと手間かも。


Info.plistの中身もみたら、JREバンドル版のJVMOptionsのJVMVersionはこうなってた。

<key>JVMOptions</key>
<dict>
    :
  <key>JVMVersion</key>
  <string>1.6+</string>
    :


通常版は1.6*なので、この設定もあってはじめて自前のJREが使われるのだろう。ちなみにバンドルされてるJREは1.8だった。


この場所にJRE置くと起動用に使うってのは、IntelliJ(とその類型IDE)の仕様なので、Windowsに限らずLinuxとかでも似たような事すりゃ使えるんだと思う。Linux版なら、ほぼWindowsと同じ構成でいけるんじゃないかな(やったことないけど)。

IDEA14のProject Settings、どこいったん?


EAPではだいぶ前からProject Settingsは無くなってます。
IntelliJ IDEA 14 EAP 138.1980.1 is Out | IntelliJ IDEA Blog


去年の今頃、こんなエントリ書いて「その次のIDEA14からはモニタを縦置きにしないとスクリーンショットも撮れなくなるかもしんない。:-P」とか言ってただけに「そう来たかw」な対応だった。
IntelliJの設定画面の歴史 - marsのメモ

んで、これがIDEA14の設定画面。


とは言え、長年 Project Settingsに慣れているから、今のPreferencesが使いづらいったらない。設定項目名だいたい覚えているから検索して難を逃れているけど、最近使いはじめたユーザにとっては迷惑千万な話だろうなーと。

ps.
他のJetBrains系IDEがどうなってるのか把握しきれていないけど、そのうちIDEA14に追従してくはずなのでお楽しみに。:-)

逆方向へのインクリメンタルサーチは無いです

標準の機能ではできません。心当たりのあるプラグインも無かったはず。
「Edit → Find → Find...」で検索ワードをタイプしている間は順方向へのインクリメンタルサーチにしかならない。