Hello androidannotations
Upcoming SlideShare
Loading in...5
×
 

Hello androidannotations

on

  • 1,205 views

 

Statistics

Views

Total Views
1,205
Views on SlideShare
1,159
Embed Views
46

Actions

Likes
3
Downloads
3
Comments
0

2 Embeds 46

https://twitter.com 36
http://iamemustan.com 10

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Hello androidannotations Hello androidannotations Presentation Transcript

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