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
@nekoruri
November 02, 2013
Technology
0
8.4k
Androidアプリのしくみ
Androidアプリのしくみ
(オブジェクト指向の基礎の基礎)
日本Androidの会 秋葉原支部
コスプレ理系女子普及部
第18回定例会 LT資料
@nekoruri
November 02, 2013
Tweet
Share
More Decks by @nekoruri
See All by @nekoruri
技術系同人誌を書こう #ssmjp
nekoruri
0
120
Twitter OAuth vulnerability
nekoruri
0
110
Other Decks in Technology
See All in Technology
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
230
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.5k
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
190
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
65k
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
750
Modern Linux
oracle4engineer
PRO
0
160
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
380
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
580
Apache Spark もくもく会
taka_aki
0
130
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
250
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.7k
Featured
See All Featured
Facilitating Awesome Meetings
lara
55
6.5k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Rails Girls Zürich Keynote
gr2m
95
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Building Adaptive Systems
keathley
43
2.7k
A better future with KSS
kneath
239
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
How STYLIGHT went responsive
nonsquared
100
5.8k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Gamification - CAS2011
davidbonilla
81
5.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
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でそのインスタンスへの「矢印」を変
数に入れます。 変数に入れた矢印を経由して「命令」を送ります。 これが「メソッド」です。