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
Androidアプリのしくみ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
@nekoruri
November 02, 2013
Technology
8.4k
0
Share
Androidアプリのしくみ
Androidアプリのしくみ
(オブジェクト指向の基礎の基礎)
日本Androidの会 秋葉原支部
コスプレ理系女子普及部
第18回定例会 LT資料
@nekoruri
November 02, 2013
More Decks by @nekoruri
See All by @nekoruri
技術系同人誌を書こう #ssmjp
nekoruri
0
130
Twitter OAuth vulnerability
nekoruri
0
110
Other Decks in Technology
See All in Technology
Harnessing the Power of Mocks and Stubs in PHPUnit / #laravellivejp
asumikam
0
320
Agentic AI時代における メルカリのAIガバナンスとガードレール実装
naoichihara
15
14k
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
3
770
checker.tsにチキンレースを仕掛けてみた:型エラー(TS2589)が発生する境界線を求めて
hal_spidernight
1
200
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
2
340
まだ道半ば、AI-DLCを歩み始めている話
news_it_enj
2
170
TSKaigi 2026 - 10秒のビルドを1秒へ:tsdownが切り拓く2026年のTypeScriptライブラリ開発
teamlab
PRO
2
250
大規模環境でどのように監視を実現する?
yuobayashi
1
130
シンデレラなんかになりたくない!ガラスの靴が割れた時代にどう歩く?
nomizone
0
190
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
14
11k
ジュニアエンジニアはSREとどう向き合うべきか
nrinetcom
PRO
1
120
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
3
2k
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
510
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
300
Scaling GitHub
holman
464
140k
エンジニアに許された特別な時間の終わり
watany
107
240k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
580
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Fireside Chat
paigeccino
42
3.9k
Designing for Performance
lara
611
70k
Transcript
日本Androidの会 秋葉原支部 コスプレ理系女子普及部 第18回定例会
今まで書いてきたプログラムを、 「外側」 から説明してみます。
なんとなくでいいので イメージ を掴めると理解がすすむ 今まで書いてきたプログラムを、 「外側」 から説明してみます。
なんとなくでいいので イメージ を掴めると理解がすすむ はず! 今まで書いてきたプログラムを、 「外側」 から説明してみます。
public class MainActivity extends Activity { @Override protected void onCreate(Bundle
savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } アプリを起動したら、 onCreateを呼ぶよ!
実はonCreate以外にも呼んでるよ! 削除したonCreateOptionsMenuとかね! たくさんの「基本的な動き方」が、ひな形( Activity )に書かれています。 いつも最初に削除するonCreateOptionsMenuもです。 それを呼んでいるのが「 super.onCreate 」です。 public
class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
Activity Androidアプリの基本的な動き方が 書かれています MainActivity 自分のアプリ独自の部分を書きます MainActivityに書かれていないことは、 Activityに書いてあることをやるよ!
public class MainActivity extends Activity { (onCreateは省略) public void onClick1(View
v){ setContentView(R.layout.self_introduction); } } ボタンがクリックされたら onClick1を呼ぶよ! そしたら、setContentViewするよ!
setContentViewしろって言われたけど、 MainActivityには書いていないから、 Activityに書いてある内容を実行するね! 実は、setContentView の内容は Activity に書かれています。 そういう、呼ぶと何かしてくれる「メソッド」がたくさん定義されています。 public class
MainActivity extends Activity { (onCreateは省略) public void onClick1(View v){ setContentView(R.layout.self_introduction); } }
公式ドキュメントを見てみよう http://developer.android.com/reference/android/app/Activity.html 「Public Methods」がメソッドの一覧
public class MainActivity extends Activity { TextView tv; public void
onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); } ボタンがクリックされたら textView1の文字を 「実はスポーツマン」に変えるよ!
public class MainActivity extends Activity { TextView tv; public void
onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); } textView1を変数 tv に入れて、 tvのsetTextメソッドを呼ぶよ!
レイアウトファイルを読んで、 ボタンと文字の 「インスタンス」を作るよ! レイアウトファイル 「文字列の表示方法」 「ボタンの表示方法」 「ボタンが押されたら onClick1を呼ぶ」 こんにちは! onClick1
ボタンが押されたら、 onClickを呼ぶよ! ボタン 文字列の「インスタンス」に setTextで文字を変えるよう 命令するよ!
public class MainActivity extends Activity { TextView tv; public void
onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); } こんにちは! ボタン findViewByIdを使って、 Androidが作ってくれたインスタンスをさす 矢印を変数にいれます この矢印を通してメソッドを呼んで、 「命令」をインスタンスに送ります レイアウトファイル に従って作られた 画像やボタンの 「インスタンス」
public class MainActivity extends Activity { TextView tv; public void
onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); tv = (TextView) findViewById(R.id.textView2); tv.setText(“わたしの戦闘力は53万です。”); } こんにちは! ボタン 自己紹介
public class MainActivity extends Activity { TextView tv; public void
onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); tv = (TextView) findViewById(R.id.textView2); tv.setText(“わたしの戦闘力は53万です。”); } こんにちは! ボタン 自己紹介 同じ変数に 「別のインスタンスをさす矢印」 をいれなおすこともできます
やっぱり公式ドキュメントを見てみよう! http://developer.android.com/reference/android/widget/TextView.html
Androidのプログラム(MainActivity)は、既にある 「ひな形」(Activity)の上に作っていきます。 レイアウトで置いたボタンや文字は、 プログラム開始時にAndroidが作ってくれます。 それぞれを「インスタンス」と言います。 findViewByIdでそのインスタンスへの「矢印」を変
数に入れます。 変数に入れた矢印を経由して「命令」を送ります。 これが「メソッド」です。