LoginSignup
3
3

More than 5 years have passed since last update.

DroidKaigi2016メモ:実践!Android Studioプラグイン開発

Last updated at Posted at 2016-02-18

DroidKaigi 2016での@konifarさんによる発表動画はこちらです。

発表者

  • @konifar
  • TapTrip: グローバルSNS
  • TapTripのリニューアルから本格的にAndroid開発に
  • 最初のOSSがAndroid Studioプラグインだった

プラグイン開発の特徴・おさらい

  • IntelliJベース
  • Java7だと動かないのでJava6が必要
  • 詳しくはQiitaに!
  • 問題はここから先で...

プラグインを実際につくるときに役立つ実践的な話をします

覚えておくべきクラスと役割

  • AnActionEvent
    • 右クリックなどのイベントを取得する
    • ファイル別に右クリックメニューの中身を変えたいときとか
  • Project
    • Projectのディレクトリや、SDKのバージョンなどが取得できる
    • ルートパスやファイル一覧も取得できる
  • Editor
    • エディタの内容を取得する
    • 範囲選択中のテキストを取得したり
    • エディタを↓までスクロールしたり
  • Document
    • エディタの内容を検知することもできる(インクリメンタルな動きを作るときに使う?)
  • PsiFile
    • カーソル位置のJavaクラスを取得する

UIの実装

  • Dialog
    • DialogWrapperを使う
    • 呼び出したいところでshow()するだけ
  • HintManager
    • いわゆるヒント吹き出しみたいなやつ
  • Notification.Bus
    • いわゆるtoastみたいなやつ
  • FileChooser
    • ファイル選択のUI

悩んだときの調べ方

  • 公開されているコードを読むのが一番はやい
  • Android Studio Plugin Repository
  • おすすめのプラグイン
    • intellij-sdk-docs
    • android-percelable-intellij-plugin
    • android-drawable-importer-intellij-plugin
    • adb-idea
  • ほんとどうしようもなくなったら...
  • Android Studioのコードを読むと良い。
  • コマンドやバージョン指定はAndroid Project SiteページのBuild Overviewを参考に

まとめ

  • 基本的なクラスは覚えておく
  • UIもDialogやNotificationは標準のやつを
  • 似たようなコードを探してみる
  • IntelliJ Plugin勉強会を近いうちにまた開催します

質疑応答

  • 1つのPluginのコード量的にはどのくらい?
    • クラスの行数10いかないくらい、全体でも1000行くらいなので読むのには苦労しない
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3