ImageMagickを使って画像サイズを取得する

$ identify -format "%w x %h" ./hogehoge.jpg 1000 x 1333

ImageMagickを使って画像の種類を判別する

ImageMagickのidentifyコマンドを使って画像の判定ができる。 拡張子はJPGと言いながら実はPNGだった例 $ identify -format %m ./path/to/image-file.jpg PNG 特定のディレクトリ以下のすべてのファイルの種類を表示するならこんな感じ for imagefile in $(f…

Androidプロジェクトをシュッと開く

Androidプロジェクトを開く時、Android Studioのメニューから開くのはとてもめんどうくさい。File -> Open... と選択してからプロジェクトの在り処を選択する必要がある。めんどうだ。マウス操作めんどう。 実はコマンドラインからプロジェクトをAndroid Stu…

adb-pecoを書き直しました

複数デバイスが接続されていたときにデバイスを選択する支援をしてくれる adb-peco ですが、この度、Rubyでコードを書き直しました。 通常だとmore than one device/emulator と出力されるようなシチュエーションでも、こんな風にコマンド実行時にデバイス選…

Androidアプリのビルドが終わったらにゃーんと猫の声が聞こえるようにする

Androidアプリのビルドはターミナル派でしょうか、それともAndroid Studio派でしょうか。 最近はInstant Runや、接続されているデバイスの情報から不要なリソースを削ることでビルドの高速化されるなど、Android Studioでのビルドは魅力的なところが多いので…

Androidエンジニアは自分専用のDockerイメージを作るべきだと思った

初めてDockerイメージを作ったのでエントリに書いておきます。タイトルはすこし言い過ぎな感じはありますが、CIにDocker使っている人は自分でDockerイメージ作った方がいいよねって話です。 私とCI CIという言葉もかなり広まり、会社で使うだけではなく個人…

RoundRectShapeの引数について調査した

角丸画像をコードから生成したくて、ShapeDrawableを使うことになった。 角丸にするにはRoundRectShapeをShapeDrawableに食わせるんだけど、その引数がドキュメントだけだと分からなかったので検証した。 RoundRectShape(float outerRadii, RectF inset, flo…

ObjectAnimatorでTextViewの内容を書き換える

ObjectAnimatorおもろいなー setNumber(int)を持つNumberTextViewというクラスを作り public class NumberTextView extends AppCompatTextView { public NumberTextView(Context context) { super(context); } public NumberTextView(Context context, Attri…

ProgressBarの値をアニメーションで変更する

↑こういうことやりたいんだけど、ProgressBar#setProgress(:int)だとアニメーションしてくれない。 そうだ、ObjectAnimatorを使ってアニメーションを実現しよう。 <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".activity.MainActivity" > </layout>

Androidエミュレータにテキストをペーストする

Androidエミュレータは母艦とクリップボードの共有がされないので、パスワードなどの複雑なテキストを毎回手打ちしなくてはならなくて面倒でした。 そこで、簡単にコピペできるような関数を作りました。 function paste_in_android() { e=$(pbpaste | sed -e…

コマンドラインから特定のクラスのみテストする

次のコマンドで実現できる ./gradlew connectedAndroidTest -Pcom.android.tools.instrumentationTestRunnerArgs=class=com.example.Util com.android.tools.instrumentationTestRunnerArgsにはいろんなオプションが指定でき、どんなオプションがあるかは次…

キーが重複するハッシュをマージする

2つのハッシュをマージするときにキーが重複するとレシーバを優先されてしまう $ pry [1] pry(main)> h1 = {a: [1, 2, 3], b: [1, 2, 3]} => {:a=>[1, 2, 3], :b=>[1, 2, 3]} [2] pry(main)> h2 = {a: [10], c: [10,11]} => {:a=>[10], :c=>[10, 11]} [3] p…

Array#shuffleで同じ結果を得る

shuffleの引数に同じRandomオブジェクトを渡せば何度シャッフルしても同じ結果になる $ pry [1] pry(main)> Array(1...10).shuffle(random: Random.new(473)) => [6, 4, 9, 5, 8, 3, 2, 1, 7] [2] pry(main)> Array(1...10).shuffle(random: Random.new(473)…

配列の重複を取得する

@tomorrowkey ブログ読んでて気になったんですけど、Arrayは&&をoverloadしてるのでこれで重複要素取れます! https://t.co/dkNFp9fW5Y https://t.co/5vChxCdXdF— ぎぎにゃん@脱北者 (@giginet) November 7, 2015 たしかに〜 $ pry [1] pry(main)> Array(1..…

Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`

rails newして、herokuにデプロイしてアクセスしたけど、以下のメッセージが表示される Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml` 以下のファイルを.gitignoreからコメントア…

簡単にモザイクがかけられるSketch3 Pluginを作りました

今作っているアプリのリソースを作っているところ。アプリのスクリーンショットを撮影して、広告はそのままだとアレだからモザイクかけたいなーと思っていろいろ調べてたら、いつのまにかプラグイン作っていました。 github.com Sketch3でモザイクのかけかた…

Gradle Pluginでresourcesディレクトリからファイルを読み込む

いままではこういう風に書いていたんだけど public MyPlugin extends Plugin<Project> { @Override void apply(Project project) { URL url = ClassLoader.getResources("resource.file") assert url != null // fail } } 返ってくるURLはnullになってしまう。 こう書</project>…

ぼくのびるどはにゃあとなくプラグインを作りました

前回「ぼくのびるどはにゃあとなく」というタイトルで、ビルド完了したことを開発者に知らせるテクニックを紹介しました。 ぼくのビルドはにゃあとなく | 明日の鍵 http://tomorrowkey.hatenablog.jp/entry/2014/05/15/000000 なかなか評判がよさそうだった…

ぼくのビルドはにゃあとなく

potatotips7で「ぼくのビルドはにゃあとなく」というタイトルでLTしました。 私以外の発表スライドはこちらから見れます... potatotips 7 · potatotips/potatotips Wiki https://github.com/potatotips/potatotips/wiki/potatotips-7 ぼくのビルドはに…

LOG_TAGを生成するプラグインを作りました

LOG_TAG フィールドを生成するAndroid Studio用のプラグインを作りました。 JetBrains Plugin Repository :: Inject LOG_TAG Plugin http://plugins.jetbrains.com/plugin/7393?pr=androidstudio 初めて作ったプロダクトが公開されるってとてもテンションあ…

Plugin SDKにソースコードをアタッチする

プラグインを作るための環境構築を紹介したページにはIntelliJのソースコードをSDKにアタッチするという項目があります。 Check out the sources of IntelliJ IDEA Community Edition as described in Check Out & Build Community Edition In the Sourcepat…

IntelliJ Pluginの実行でAndroid Studioを起動する方法

Android Studio向けにプラグインを作ろうと思いますが、IntelliJでプラグインを作り実行するとIntelliJが起動してしまいます。 Android StudioはIntelliJをベースに作られたIDEですが、意外と互換性のない部分もあり、Android Studio向けにプラグインを作る…

IntelliJ IDEA Pluginの作り方

IntelliJ PluginのHello, World.ということで、Hello Pluginというプラグインを作ってみましょう。 ボタンを押すとHello!というNotificationが表示されるプラグインです。 目次 IntelliJ IDEAのダウンロード SDKの設定 プロジェクトの作成 Actionの作成 Noti…

Android4.4 Storage Access Framework解説

「Android 4.4 KitKat 冬コミ原稿リレーを開催」の11/10担当のtomorrowkeyです。 本記事ではAndroid 4.4で追加されたStorage Access Frameworkの解説と、どう実装すればいいのか実際にアプリケーションを作りながら学びます。