Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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行くらいなので読むのには苦労しない
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away