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
130
Twitter OAuth vulnerability
nekoruri
0
110
Other Decks in Technology
See All in Technology
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
950
配列に見る bash と zsh の違い
kazzpapa3
3
160
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
130
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
460
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
660
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
210
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
410
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
160
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
160
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
[SF Ruby Conf 2025] Rails X
palkan
1
760
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Marketing to machines
jonoalderson
1
4.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
190
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
Git: the NoSQL Database
bkeepers
PRO
432
66k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
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でそのインスタンスへの「矢印」を変
数に入れます。 変数に入れた矢印を経由して「命令」を送ります。 これが「メソッド」です。