SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
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開発ライフを!	
  

Contenu connexe

Similaire à Hello androidannotations

ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324Tak Inamori
 
小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変える小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変えるHiroto Igarashi
 
勘違いだらけのAndroid UIデザイン
勘違いだらけのAndroid UIデザイン勘違いだらけのAndroid UIデザイン
勘違いだらけのAndroid UIデザインNobuya Sato
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」techtalkdwango
 
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Masakazu Muraoka
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介Kenichi Kambara
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例Kenichi Kambara
 
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術vaccho
 
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術Yahoo!デベロッパーネットワーク
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーImamura Masayuki
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
Web制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたWeb制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたMasakazu Muraoka
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今健一 辰濱
 
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移まべ☆てっく運営
 
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フローYuki Okada
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションKoji Shigemura
 

Similaire à Hello androidannotations (20)

ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
 
Android0422
Android0422Android0422
Android0422
 
小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変える小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変える
 
勘違いだらけのAndroid UIデザイン
勘違いだらけのAndroid UIデザイン勘違いだらけのAndroid UIデザイン
勘違いだらけのAndroid UIデザイン
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
 
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
 
AppCodeNight testcode
AppCodeNight testcodeAppCodeNight testcode
AppCodeNight testcode
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例
 
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術
 
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
Web制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたWeb制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみた
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今
 
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
 
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
 

Hello androidannotations