Maven Centralが依存ライブラリの "3.+" のようなバージョン表記を認めなくなってた
http://central.sonatype.org/articles/2014/Oct/28/enforcing-valid-dependency-versions/
2014年10月の話ですが、これのせいで手元のライブラリのアップロードが失敗するようになってました。これからは、依存ライブラリのバージョンは "3.+" ではなく"[3,4)" (3以上4未満)などのような数学的範囲表記(mathematical range syntax)をしなければならない、ということです。詳しくは上記エントリを参照のこと。
変更例:
https://github.com/gfx/android-power-assert-plugin/commit/01d9cdcb0a3f61a12779c92ef977c880eec29006
理由は+表記(dynamic version)が依存関係の仕組みを壊すからだということですが、それが+表記を禁止しなければならないほどなのかどうかはちょっとわかりませんでした。ともかく、maven centralにアップロードする際は新しいルールに従わなければいけません。
AndroidエンジニアとJavaの関係
Androidエンジニアは初心者に対して「Javaくらいできるよね、さてそれではAndroidについて学ぼうか」みたいな態度をとってしまうことがよくあります。しかし実際にはAndroidアプリケーションを書くにはJavaの知識が必要不可欠で、Javaについては学ばなければならなくて、これがわりと奥が深くて大変だったりするのですよね。
自分はどうやって学んだのだったかなと振り返ると、発展的な内容はだいたい「Javaメモ」で学んだと思います。デザインは古いですが内容はアップデートされているし、細かな点までよく説明していて、読み物としても面白いのでおすすめです。
そういうわけで、AndroidエンジニアとJavaの関係を考える機会が最近いくつかあって、 DroidKaigiでそういうネタがないかなと思っているのでした。
DroidKaigiのトーク応募は2/25まで!自分が当然と思っていることも、他人にとってはそうとも限らないし、ぜひ知見の共有の機会に使っていただければと思います。
Swift訳語集をつくった
https://github.com/gfx/swift-words
WEB+DBのSwift特集を書くときに訳語を決める必要があったので作ったものです。順次改定しているので必ずしも特集記事と一致しているわけではないですが、今後日本語でSwiftの記事を書くときはこれに従うつもりです。
WEB+DB PRESS Vol.84にSwiftの入門記事を書きました
- 作者: 藤吾郎,桑野章弘,福永亘,谷井靖史,野村晋之介,蛭川皓平,岡田友輔,藤本真樹,伊藤直也,宮崎靖彦,佐藤健太,高橋俊幸,佐藤太一,海野弘成,佐藤歩,泉水翔吾,渡邊恵太,舘野祐一,中島聡,橋本翔,はまちや2,竹原,伊賀敏樹,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2014/12/23
- メディア: 大型本
- この商品を含むブログ (2件) を見る
Swiftはまだ出て間もない言語で、いますぐ採用すべきかというとなかなか難しい所はあります。ただプログラミング言語としてはOptional型やパターンマッチング*1など面白い機能が豊富で、学ぶ価値のある言語だと思います。今回の特集がSwiftに触れるきっかけになれば幸いです。
Android依存ライブラリバージョン固定システムの構想
Androidのビルドシステムには、BundlerとかCartonみたいに推移的な依存関係*1のバージョンを固定するものがありません*2。これをなんとかしたいと思っています。
で、メモ。Gradleには「ビルドスクリプトの依存関係(Gradle plugins)」と「モジュールの依存関係」があって、どちらのバージョンも固定する必要があります。
バージョンの固定は、まず依存関係を解決した依存グラフをつくり、そのライブラリを持ったローカルなmaven repoを作ってそちらを参照するようにすればいいはず。このあたりはCartonを参考にすればいいと思っています。
依存関係の可決についてはAndroid用だと"androidDependencies"というタスクが依存グラフを出してくれます。これはDependencyReportTask.groovyが実体なのでこのあたりから掘っていけばいいはず。Gradleスクリプトについては未調査です。
$ ./gradlew androidDependencies :app:androidDependencies debug +--- com.google.android.gms:play-services:6.1.71 | \--- com.android.support:support-v4:20.0.0 | \--- LOCAL: internal_impl-20.0.0.jar \--- com.android.support:appcompat-v7:20.0.0 \--- com.android.support:support-v4:20.0.0 \--- LOCAL: internal_impl-20.0.0.jar (snip)
ちなみに素のGradleにはgradle-dependency-lock-pluginというのがあるけどちょっとイメージが違うしAndroid用には使えなそうです。
See Also
Template Engine Nightで「Xslate振り返り」をしました
このあたりで一度まとめておこうと思ったのでいい機会でした。@moznionさん、ありがとうございました。
なお、スライド中の「arity」は、この直前のトークで「ASTのnodeの種類を表すのにarityという単語を使っているのは意味が違うのではないか」と質問されたので急遽いれたものです。これは、『ビューティフル・コード』でDouglas Crockfordが演算子優先順位構文解析法によってJavaScriptのparserを実装しており、その中でtokenの種類を表すのにarityという単語を使っていたからなのでした。Xslateはそのparserをもとにしているのでarityという言葉を使っています。
ビューティフルコード (THEORY/IN/PRACTICE)
- 作者: Brian Kernighan,Jon Bentley,まつもとゆきひろ,Andy Oram,Greg Wilson,久野禎子,久野靖
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/04/23
- メディア: 大型本
- 購入: 30人 クリック: 617回
- この商品を含むブログ (190件) を見る