Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2014.10.28 - Android Taipei - Hi AndroidAnnotat...
Search
Yes
October 28, 2014
Programming
1
100
2014.10.28 - Android Taipei - Hi AndroidAnnotations
A brief sharing about AndroidAnnotations at Android Taipei.
Yes
October 28, 2014
Tweet
Share
More Decks by Yes
See All by Yes
2014.04.30 - Android Taipei - Data & PracSong
namejoshua
0
94
Other Decks in Programming
See All in Programming
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
140
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
200
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
690
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
110
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
220
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
910
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
170
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
180
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
200
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
290
Grafana:建立系統全知視角的捷徑
blueswen
0
250
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
WENDY [Excerpt]
tessaabrams
9
35k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
300
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.2k
Building an army of robots
kneath
306
46k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Visualization
eitanlees
150
16k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
210
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Bash Introduction
62gerente
615
210k
Transcript
Hi! AndroidAnnotations 㥮疍 yes ! 2014.10.28 Android Taipei @ PicCollage
Story 1
public class MainActivity extends Activity { ! onCreate() { setContentView(R.id.activity_main);
} ! }
public class MainFragment extends Fragment { onCreateView() { return inflater.inflate(R.layout.fragment_main,
container, false); } ! }
public class MainFragment extends Fragment { onCreateView() { View view
= inflater.inflate(R.layout.fragment_main, container, false); ! TextView textView1 = view.findViewById(R.id.textview1); TextView textView2 = view.findViewById(R.id.textview1); TextView textView3= view.findViewById(R.id.textview1); TextView textView4 = view.findViewById(R.id.textview1); ! textView1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); return view; } ! }
public abstract class AbstractFragment extends Fragment { protected abstract int
setRootViewId(); int[] setOnClickListenerViews() {} } public class MainFragment extends AbstractFragment implement View.OnClickListener @Override protected int setRootViewId() { return R.layout.fragment_main } @Override int[] setOnClickListenerViews() { return new int[] { R.id.button_ok, R.id.button_no } } ! @Override public void onClick(View v) { switch (v.getId) { case R.id.button_ok: … } }
Story 2
Android Studio ;
support-annotations
None
(;ƅшƅʣ
@Efragment(R.layout.fragment_main) public class MainFragment extends Fragment { ! @Click(R.id.button_ok) void
ok() { … } ! ! ! ! ! ! } @LongClick(R.id.button_ok)
Fragment fragment = MainFragment_.builder().position(7).build(); @Efragment(R.layout.fragment_main) public class MainFragment extends Fragment
{ ! @FragmentArgs int position; }
@Receiver(actions = BluetoothLeService.ACTION_DATA_AVAILABLE) void onHeartRateChanged() { startHRVMeasure(); }
@EActivity @OptionsMenu(R.menu.menu_main) public class MainActivity extends Activity { ! !
! ! ! ! ! ! ! } @OptionsItem(R.id.menuitem_refresh) void refresh() { … }
@SharedPref public interface MyPrefs { @DefaultString("yes") String name(); } @EActivity
public class MyActivity extends Activity { @Pref MyPrefs_ myPrefs; String name = myPrefs.name().get(); }
@EActivity MainActivity Java's Annotation Processing Tool MainActivity_ extends MainActivity Compiler
Reference: ! AndriodAnnotations http://androidannotations.org/ ! android-apt https://bitbucket.org/hvisser/android-apt Thanks for your
listening