Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
†黒魔術† @_kaiinui
Slide 2
Slide 2 text
=
Slide 3
Slide 3 text
結論から? (▰╹◡╹▰)
Slide 4
Slide 4 text
@PotatoTip をつけるだけでトースト
Slide 5
Slide 5 text
Java の黒魔術: Annotation
Slide 6
Slide 6 text
Java の黒魔術: Annotation どうみても黒魔術
Slide 7
Slide 7 text
Java の黒魔術: Annotation Annotation as a code?
Slide 8
Slide 8 text
良さ? ・宣言的さ ・コードと「宣言」を分離出来る ・コードが短くなったり ・ミスを防止したり(@Nullable)
Slide 9
Slide 9 text
・ButterKnife の @InjectView ・Support Annotation の @NonNull ・AndroidAnnotations の @UiThread ・Rails の has_many 「する」と「である」を分ける
Slide 10
Slide 10 text
良い例: ButterKnife の @InjectView
Slide 11
Slide 11 text
する textView = (TextView) findViewById(R.id.text); である @InjectView(R.id.text) textView;
Slide 12
Slide 12 text
する runOnUiThread(new Runnable {...}); である @UiThread public void showToast() {..};
Slide 13
Slide 13 text
さて
Slide 14
Slide 14 text
Bring your own Annotation!
Slide 15
Slide 15 text
ツール ● AspectJ ● java.lang.annotation
Slide 16
Slide 16 text
初級編 Annotation を普通に使う(AspectJ じゃない)
Slide 17
Slide 17 text
1. Annotation をつくる(カンタン)
Slide 18
Slide 18 text
2. 黒魔術
Slide 19
Slide 19 text
3. 出来た
Slide 20
Slide 20 text
4. 完成 BananaKnife
Slide 21
Slide 21 text
中級編 AspectJ でアスペクトを織り込む
Slide 22
Slide 22 text
1. Annotation をつくる(カンタン)
Slide 23
Slide 23 text
2. AspectJ で黒魔術
Slide 24
Slide 24 text
@PotatoTip をつけるだけでトースト
Slide 25
Slide 25 text
AspectJ の良い例: Hugo
Slide 26
Slide 26 text
AspectJ の良い例: Hugo あまりに便利なので iOS 版もつくった kaiinui/KILogInjector
Slide 27
Slide 27 text
一言で? ・Annotation で @Hoge がついたメソッド、フィー ルド、クラスとかを弄れたりする ・AspectJ で処理をフックしてほげほげ、といった 処理がカンタンに書ける。 (▰╹◡╹▰)
Slide 28
Slide 28 text
きみだけのさいきょう @Annotation をつくろう!
Slide 29
Slide 29 text
「モデルと API 辛い」周りの話がしたかった あと自分で作るとかどうでもいいので既にある Annotation をまず使おう (▰╹◡╹▰) 最後に