パルカワ2

最近はFlutterをやっています

ライブラリをつくったときの雑メモ

annotation processor 毎度忘れる。

  • ElementはVariableElementやTypeElementなどにcast出来たりするよ
  • ClassName.get(int.class)できない。
    • TypeName.INTなどがある
  • TypeNameを色々と渡すような実装にしたけど、auto/commonとかTypesUtils, ElementUtilsがあるのでElementを渡すようにしたほうがよかったかも???またはClassName???
  • google/auto/commonなど参考にするとよい
    • DeepLinkDispatchも使ってた
  • debugger でデバッグ出来るようにしておくとよい
  • ProcessingContext, Writer, Definition という役割にクラスを分けるとキレイぽい
    • Ormaがこんな感じだった
  • getAnnotaton().hoge() でClass型取ろうとしても取れない。今回つくったAnnotationExtendでやってるように取るとよい
  • processorではJava8つかうとよい streamが使えてシュッ
  • VariableElement#getConstantValue() は primitive型かStringの値しかとれない それら以外はnullになる
  • TypeElementとかはドキュメントよむ
  • 毎度読んでる気がする Aptを使ったAndroidライブラリの作り方 - Qiita
  • http://qiita.com/opengl-8080/items/beda51fe4f23750c33e9
  • JavaPoet 使い方メモ - Qiita
  • Observable<String>を作りたい場合はこうする ParameterizedTypeName.get(RxJavaTypes.Observable, JavaTypes.String)
  • ClassNameなどをRxJavaTypesやJavaTypesなどに定義しておくと使いまわせてまとめられて便利