Hello AndroidAnnotations
2013.10.26	
  名古屋Androidつくる部	
  LT
•  高木翔一
•  @fly1tkg
•  http://b.fly1tkg.com
•  最近、勢いでCookie Clicker Camera
というアプリをつくりました。(制作時
間3時間くらい)
AndroidAnnotaionsとは?	
•  Code	
  Diet	
  
•  AndroidAnnota7onsはAndroidアプリ開発をス
ピードアップするためのフレームワークです。	
  
•  このフレームワークが水面下でサ...
AndroidAnnotaionsとは?	

AndroidAnnota7onsをつかってダイエットしましょう	
  
AndroidAnnotaionsとは?	
•  現在2.7.1がリリースされている	
  
•  もうすぐ3.0.0がでる	
  
•  いったいどんなことが出来るの?
@ViewById	
•  Viewメンバ変数にfindViewByIdの結果を入れ
といてくれる	
  
•  IDの指定が無ければメンバ変数名から推測し
てくれる	
  
// findViewById(R.id.image)の結果を入れてく...
@Click	
•  @Clickがついた関数は指定したIDのViewがッ
クリックされたときに呼ばれる	
  
•  IDの指定が無ければ関数名から推測してくれ
る	
  
@Click
void button() {
// R.id.but...
@Background	
•  関数をバックグラウンドで実行してくれる	
  
•  Callbackが必要なければ、これで投げっぱな
しにするの便利	
  

@Background
void backgroundTask() {
// 何か...
@UIThread	
•  関数をUIThreadで実行してくれる	
  
•  Viewの操作とかに便利(UIスレッド以外で操
作すると怒られる)	
  

@UIThread
void setImage() {
imageView.setI...
AndroidAnnota7onsが使える所	
•  @EAc7vity	
  @EFragment	
  @EView	
  
@EViewGroup	
  @EBean	
  などのアノテーション
がついたクラス	
  

@EActivi...
@EAc7vity	
•  レイアウトIDを指定することでonCreate時に適
用してくれる	
  
•  @ExtraでIntentExtraつくれる	
  
•  IntentBuilderをつくってくれる	
  
@EActivity(...
仕組み	
•  @EAc7vityなどがついたクラスのサブクラスのコードを生成し、そ
のクラス内でAnnota7onを元に処理を追加していきます。	
  
•  生成コードは.apt_generatedに入っているので、バグった時とか挙
動がよ...
仕組み	
@UIThread
void setImage() {
imageView.setImageBitmap(mBitmap)
} // 元ソース	

@Override
void setImage() {
runOnUiThread(n...
メリット、デメリット	
• 
• 
• 
• 

メリット	
  
コード量が減る(大正義!)	
  
デメリット	
  
Annota7onsを使ったクラスは他のクラスから
アンダースコア(_)付で使わなきゃいけない。
(AndroidMan...
実力はまだまだこんなものじゃない	
•  AndroidAnnota7onsはちゃんとかゆい所に手
が届くフレームワークです。学習する価値あり	
  
•  AndroidAnnota7onsのCookBookが参考になり
ます	
  
•  ...
Upcoming SlideShare
Loading in …5
×

Hello androidannotations

984
-1

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
984
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Hello androidannotations

  1. 1. Hello AndroidAnnotations 2013.10.26  名古屋Androidつくる部  LT
  2. 2. •  高木翔一 •  @fly1tkg •  http://b.fly1tkg.com •  最近、勢いでCookie Clicker Camera というアプリをつくりました。(制作時 間3時間くらい)
  3. 3. AndroidAnnotaionsとは? •  Code  Diet   •  AndroidAnnota7onsはAndroidアプリ開発をス ピードアップするためのフレームワークです。   •  このフレームワークが水面下でサポートする ことで開発者は本当に重要なものに集中でき ます。   •  コードをシンプルにすることでメンテナンスを しやすくします   •  h9p://androidannota7ons.org/ より
  4. 4. AndroidAnnotaionsとは? AndroidAnnota7onsをつかってダイエットしましょう  
  5. 5. AndroidAnnotaionsとは? •  現在2.7.1がリリースされている   •  もうすぐ3.0.0がでる   •  いったいどんなことが出来るの?
  6. 6. @ViewById •  Viewメンバ変数にfindViewByIdの結果を入れ といてくれる   •  IDの指定が無ければメンバ変数名から推測し てくれる   // findViewById(R.id.image)の結果を入れてくれます @ViewById ImageView image; // findViewById(R.id.button)の結果を入れてくれます @ViewById(R.id.button) Button mButton;
  7. 7. @Click •  @Clickがついた関数は指定したIDのViewがッ クリックされたときに呼ばれる   •  IDの指定が無ければ関数名から推測してくれ る   @Click void button() { // R.id.buttonが押されたときに呼ばれる } @Click(R.id.okButton) void onOkButtonClick() { // R.id.okButtonが押されたときに呼ばれる }
  8. 8. @Background •  関数をバックグラウンドで実行してくれる   •  Callbackが必要なければ、これで投げっぱな しにするの便利   @Background void backgroundTask() { // 何か時間のかかる処理 }
  9. 9. @UIThread •  関数をUIThreadで実行してくれる   •  Viewの操作とかに便利(UIスレッド以外で操 作すると怒られる)   @UIThread void setImage() { imageView.setImageBitmap(mBitmap) }
  10. 10. AndroidAnnota7onsが使える所 •  @EAc7vity  @EFragment  @EView   @EViewGroup  @EBean  などのアノテーション がついたクラス   @EActivity public class AnnotationsActivity extends Activity { @ViewById ImageView image; }
  11. 11. @EAc7vity •  レイアウトIDを指定することでonCreate時に適 用してくれる   •  @ExtraでIntentExtraつくれる   •  IntentBuilderをつくってくれる   @EActivity(R.layout.activity_main) public class AnnotationsActivity extends Activity { @Extra String id; } new AnnotationsActivity_.IntentBuilder().id(id).start();
  12. 12. 仕組み •  @EAc7vityなどがついたクラスのサブクラスのコードを生成し、そ のクラス内でAnnota7onを元に処理を追加していきます。   •  生成コードは.apt_generatedに入っているので、バグった時とか挙 動がよくわからないときはソースを見ることが出来ます。   @EAc7vity     public  class  Annota7onsAc7vity  extends  Ac7vity  {   } public  class  Annota7onsAc7vity_          extends  Annota7onAc7vity  {   }
  13. 13. 仕組み @UIThread void setImage() { imageView.setImageBitmap(mBitmap) } // 元ソース @Override void setImage() { runOnUiThread(new Runnable() { @Override public void run() { super.setImage(); } } } // AndroidAnnotationsが元ソースを継承して生成したソース
  14. 14. メリット、デメリット •  •  •  •  メリット   コード量が減る(大正義!)   デメリット   Annota7onsを使ったクラスは他のクラスから アンダースコア(_)付で使わなきゃいけない。 (AndroidManifestに登録するAc7vityも_をつ けてください)  
  15. 15. 実力はまだまだこんなものじゃない •  AndroidAnnota7onsはちゃんとかゆい所に手 が届くフレームワークです。学習する価値あり   •  AndroidAnnota7onsのCookBookが参考になり ます   •  h9ps://github.com/excilys/ androidannota7ons/wiki/Cookbook   •  よいAndroid開発ライフを!  

×