2014-01-01から1年間の記事一覧
WEB+DB PRESS Vol.84作者: 藤吾郎,桑野章弘,福永亘,谷井靖史,野村晋之介,蛭川皓平,岡田友輔,藤本真樹,伊藤直也,宮崎靖彦,佐藤健太,高橋俊幸,佐藤太一,海野弘成,佐藤歩,泉水翔吾,渡邊恵太,舘野祐一,中島聡,橋本翔,はまちや2,竹原,伊賀敏樹,WEB+DB PRESS編集部…
Androidのビルドシステムには、BundlerとかCartonみたいに推移的な依存関係*1のバージョンを固定するものがありません*2。これをなんとかしたいと思っています。で、メモ。Gradleには「ビルドスクリプトの依存関係(Gradle plugins)」と「モジュールの依存…
このあたりで一度まとめておこうと思ったのでいい機会でした。@moznionさん、ありがとうございました。なお、スライド中の「arity」は、この直前のトークで「ASTのnodeの種類を表すのにarityという単語を使っているのは意味が違うのではないか」と質問された…
There's an absolutely great news for Swift developers: The Travis CI Blog: Status update on the Xcode 6 and iOS 8 rolloutMeaning that now Swift libraries can be tested on Travis. Here is a Swift library with working .travis.yml: https://gi…
Perlを書かなくなるなどの理由でCPANモジュールをメンテしなくなるということはあるもので、そういう場合は App::PAUSE::Comaint を使うと簡単にcpan authorをcomaintに加えることができます。 comaint UNIVERSAL::DOES SYOHEX 私のCPANモジュールも最近は積…
Facebookが adb shell の改良版を開発しているみたい。https://github.com/facebook/fb-adb"adb"とつけてはいるけど、実際には"adb shell" と "adb rcmd" だけを処理して他のサブコマンドはadbにフォワードしているだけ。改良したところはREADMEによれば以下…
More and more TypeScript toolchains emerge in these days but unfortunately it was not true in the Ruby world: typescript-rails didn't work on Rails4.Now it works on Rails4. typescript-rails, which provides us with the power of TypeScript i…
以下のトークが採択されました。2日目の藤原洋記念ホールにて、15:20からです。Mobile First Development for Perl Mongers最近はPerlはあまりやっていないのですが、サーバーサイドとクライアントサイド(モバイルアプリ)をいい感じに協調して働くための仕…
Androidのエコシステムをなんとかしないといけないとの思いから、maven repository serverを作り始めた。https://github.com/android-frontier/tiny-maven-repository要は、特定のパスにPUT(bodyはjarなどのbinaryがそのまま渡る)でアップロードし、GETでP…
Androidアプリケーションにはアプリケーションのメソッド数が65kを超えられないという制限があるのだけど、その詳細を知らなかったので調べた。参考: Does the Android ART runtime have the same method limit limitations as Dalvik?まとめると メソッド数…
Google I/O 2014が来週に迫った今日このごろですが、I/Oの前日に発売されるWEB+DB Vol.81に同僚たちとAndroidの特集記事を寄稿しました。私の担当はAndroid Studio+Gradleについてです。とにかく変化の早いAndroid開発環境ですが、この一年で開発環境周りは…
すべてMaven Centralに公開している。 https://github.com/gfx/android-power-assert-plugin Androidでpower assertするためのgradle plugin 出力フォーマットはまだそんなにわかり易くないが、すでに欠かせないものになっている https://github.com/gfx/Jav…
curl -L https://raw.githubusercontent.com/android/platform_development/master/ide/intellij/codestyles/AndroidStyle.xml > ~/Library/Preferences/AndroidStudioPreview/codestyles/AndroidStyle.xml これでAndroidStyleを使えるようになる。XMLのイン…
Mobile First Development at COOKPAD ブランチングモデルの話で、頻繁にデプロイするweb appではgithub-flowを、リリース間隔が長いmobile appではgit-flow(を簡略化したもの)を使ってるという話です。このへんはウェブかアプリかというよりは、kazuhoさ…
Mid 2011からの乗り換えなので快適。とあるAndroidプロジェクトをビルドしてみたところ、2011機だと30秒かかるビルドが2014機だと20秒で終わった。これは効率上がりそう。もっとも、2014機は本当にマイナーチェンジのようで、型番はMid 2013と変わらないらし…
結論:groupIdはプロジェクト名を含めるべきPOM referenceには以下のように書いてあります。 groupId: This is generally unique amongst an organization or a project. For example, all core Maven artifacts do (well, should) live under the groupId o…
potatotips #7 で、 Travis-CIのandroid supportが始まったことを知った。 いまさら Travis CI Android Build Support Now in Beta (2014-05-07) そこで、werckerを使っていたプロジェクトをtravisに乗り換えることにした。理由は、Chrome extensionのMy Tra…
https://github.com/gfx/gradle-plugin-template こんな感じの構成だと、実際のAndroid app/lib moduleで `apply plugin` をしつつプラグインの開発ができる。実際に、android-power-assert-pluginは上記構成をとっている、というかgradle-plugin-templateは…
potatotips #7 at DeNA を開催しました! 今回も面白い話が多く大変勉強になりました。 さて!私はここ二週間ほど開発していたAndroid Power Assertについて発表しました。 https://speakerdeck.com/gfx/jun-hapower-assertwozhi-tuteiruka-number-potatotip…
Android のライブラリプロジェクトを爆速で Maven Central にデプロイする をやってみたが、手順が複雑すぎて心が折れる。しかも、初回だからPGPの鍵を作ったり設定をいろいろ調べたりと作業は多かったが、それを差し引いても手作業でしなければならないこと…
Getting Started with Javassist Javassistはバイトコードを操作するもの 細かな操作はExprEditorで行う。この時操作できるのは、以下の式だけ。これらは副作用を起こしうる式にほぼ相当する。言い換えると、副作用を起こさない int z = x + y のような式はE…
参考: LevelDB入門 (基本編) - from scratch AndroidにおけるLevelDB bindingは複数あるようだけど、今回はMaven Centralに上がっていてかつ読み書きAPIがわかりやすい以下のものを使った*1。 https://github.com/googolmo/Leveldb-Android dependencies { c…
三行まとめ JavassistはJavaのクラスファイル(バイトコード)を操作するライブラリ バイトコード注入をJava風の構文で行えるのが特徴 Androidでも、Gradleに仕込みをすることでJavassistを使うことができる 詳細 Gradleはビルドプロセスのカスタマイズがし…
Facebook (Parse) が開発している Bolts-Android は asyn.js のように、ネストしたコールバック呼び出しをウォーターフォールで記述できるライブラリである。コールバックのネストをウォーターフォールで記述できるというのもありがたいが、処理をTaskに分割…
(追記: 最初targetCompatibilityを1.6, sourceCompatibilityを1.7にするのがベストだと考えたが、ビルドできなかったので修正)Android Studio (as of 0.5.5) で新規プロジェクト作成のとき、Java7を選ぶことができる。しかし、Java7に対応しているのは And…
Manipulating Java Class Files with ASM 4 - Part One : Hello World! をAndroidのプロジェクトにやってみた。 https://github.com/gfx/Android-AsmExample まず /buildSrc/build.gradle *1 に ASM の依存を書く。 apply plugin: 'groovy' repositories { m…
以下のやりかたでできました (Android 4.1.1 GenyMotion)。わりと簡単にできるので、検証端末は常にenabledでよさそう。 adb shell setprop debug.assert 1 # enable assert adb shell setprop debug.assert 0 # disable assert
iOS7特集と題しつつも、iOSの一般的なことにも触れている。特に、実機へのインストールやPUSH通知についての説明がうれしい。全体的には、iOS開発のチュートリアルを何か一つ終えたあたりに読むと良さそうだ。ところで、特集内ではバックグラウンドスレッド…
tips - Improving Build Server performance. : The Gradle based build system has a strong focus on incremental builds. One way it is doing this in doing pre-dexing on the dependencies of each modules, so that each gets turned into its own de…
短い答え:コミットする。長い答え:以下参照Chapter 61. The Gradle Wrapper The wrapper is something you should check into version control. By distributing the wrapper with your project, anyone can work with it without needing to install Grad…