2014-01-01から1年間の記事一覧

android-sdk-managerで必要なSDKやビルドツールを自動インストール

https://github.com/JakeWharton/sdk-manager-plugin builtscriptのdependenciesと apply plugin: "android-sdk-manager" の二行だけで、インストールしたばかりのAndroid SDKしかない状態で ./gradlew assemble ができた。設定が必要ないのはうれしい。同種…

iOS quiz: 以下のdispatch_after()を使ったコードが1, 2, 3, 4という順で実行される理由を説明してください

NSLog(@"1"); dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)); // 1 sec. dispatch_after(delay, dispatch_get_main_queue(), ^{ NSLog(@"4"); }); dispatch_after(delay, dispatch_get_global_queue(DISPATCH_QUE…

iOSシミュレーターのログに色付けするios-simulator-logcatというツールを書いた

#potatotips 5でios-simulator-logcatを紹介しました。 https://github.com/gfx/ios-simulator-logcat Androidだと pidcat のようにいい感じに色を付けてくれるツールがあるのにiOS用だとない感じだったので作りました。コンソールにこだわることもないと思…

md2inaoのインストールが簡単になりました

Module::Installをつかっていたり、cartonをつかっていたり依存モジュールがPerl 5.18でコケたりしてPerler以外にとってインストールが難しい状態でしたが、このたび整理してCPANにリリースしました。これでPerler以外にとっても簡単にインストールできるよ…

iPhoneで証明書エラー(SSLエラー)が出るときは本体の時計がずれているかも

iOSアプリでいきなり「このサーバの証明書は無効です」というエラーになるときは、iPhoneの時計が過去になっているかどうか確かめてみるといいかもしれません。無理やり過去に設定すると再現します。Androidでも同じかどうかは未検証です。

Objective-Cでドット記法でメソッドを呼ぶ方法

[]でのメソッド呼び出しは悪くないのですが、メソッドチェインしたいときはどうしてもJavaとくらべて冗長なんですよね。でも工夫すればドット記法で任意のメソッドを呼ぶことができることに気づきました。こんな感じ。 // ... A *a = A.new; a.foo(42).bar(@…

Volleyを使うのがかなり簡単になってた

以前はAndroid Studioで使うのが面倒くさかった volley ですが、最近は簡単にdependenciesに追加できるようになりました。git submodule addしてsubprojectとして設定してdependenciesに加えるだけ。ハマりどころしては、volley/build.gradle に指定している…

Q. JavaのREPLってないの? A. あります!

GroovyはJavaの上位互換言語であり、インタラクティブシェルがあります。なので実質JavaのREPLとして使えます。 $ brew install groovy $ groovysh Groovy Shell (2.2.1, JVM: 1.7.0_45) Type 'help' or '\h' for help. -----------------------------------…

CodeModelでJavaのソースコードを生成する

この頃はgradleでAndroidのビルドを行うようになり、それに伴いJavaのソースコードをビルド時に生成する機会も増えてきたと思います。それでは、Javaのソースコードはどうやって生成するのがいいでしょうか。文字列結合も悪くないのですが、文法の妥当性を保…

Androidのランチャアイコンをデバッグビルド時にモノクロにする

DevFaviconのAndroidアプリ版です。GradleはJavaのフル機能を使えるので、ちょっとした画像処理ならビルド時にやってしまえるのです。また、gradle android pluginではbuild variantsという仕組みを利用してビルド設定ごとに異なるリソースを組み込むことが…

ListよりArrayListのほうが速いって本当?

結論:どちらも同じなので意味的に適切だと思う方を使ってよい発端は以下のツイートだ。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createEl…

Gradleの共通ルーチンをライブラリ化してテストもする

https://github.com/gfx/gradle-android-utils (see .travis.yml, build.gradle, test/test.gradle) Android Studioで開発していてGradleを書いていると共通ルーチンをライブラリ化したくなるわけですが、そうなると当然テストしたりCIしたりしたいですよね…