SlideShare ist ein Scribd-Unternehmen logo
1 von 97
Downloaden Sie, um offline zu lesen
コデアルAndroidアプリ勉強会
- Programming 24 -
到達目標
● 人に見せられるAndroidアプリが作成できる
(名刺代わりのアプリ)
(生活を便利するアプリ)
● 現在地をメールするアプリ
Androidアプリの開発に必要な知識を
身につける
1.Androidとは
2.開発環境を準備する
3.Javaの基礎
4.Androidアプリの作成
5.基本的なUI作成
現在地をメールするアプリ
● GPS情報の取得
● プリファレンス(情報の記憶、保持)
● メール送信(インテント)
1.Androidとは
● googleが開発したスマートフォン用のOS
● ライセンスフリーのOS(Linuxカーネル)
● 2014年現在、スマートフォン用のOSとしては、
シェア1位
● 2003年に、Android社設立
● 2005年にgoogleが買収
● 2009年に、開発ツールAndroidSDKr1.5リリース
(この時点から、市場に登場)
● 開発ツール、技術ドキュメント、ソースコードを誰で
も無償で入手することができる
● スマートフォン以外の組み込み分野へ展開されて
いる
例えば、ネットブック、カーナビ、TVレコーダ、デジ
タル家電など
Androidで何ができるのか?
● 次のような機能を利用したアプリを作成できる
- 音声通話(電話)
- フルブラウザによるWebサイト閲覧
- 2D/3Dグラフィックスの描画
- 音声、映像、静止画の表示・再生
- カメラ(静止画、動画)
- Bluetooth、WiFiによるデータ通信
- GPS
- NFC
- SQLiteによるデータストレージ
- 各種センサー
 加速度センサー、傾きセンサー、磁気センサー
 温度センサー、明るさセンサー、接近センサー
 ジャイロスコープ、圧力センサーなど
 
Androidのバージョン
1 Android 1.0 Astro
2 Android 1.1 Bender
3 Android 1.5 Cupcake ←ここから、google
4 Android 1.6 Donut   コードネームがスイーツ名
5 Android 2.0/2.1 Eclair
6 Android 2.2 Froyo
7 Android 2.3 Gingerbread
8 Android 3.x Honeycomb
9 Android 4.0 Ice Cream Sandwich
10 Android 4.1/4.2/4.3 Jelly Bean
11 Android 4.4 KitKat
API Level
● バージョンに対応したAPI Levelが決められてい
る。
● API Levelにより、使える機能が変わる。
● 開発時には、どのAPI Levelを対応するか、決める
必要がある。
● また、開発情報を調べる際にも、どのAPI Levelに
対応した情報かを意識しなければならない。
2.開発環境を準備する
● 開発に必要なもの
1)統合環境
Eclipseまたは、Android Studio
2)AndroidSDK
3)プログラミング言語
 Java
1)と2)は、統合環境に含まれている
  
開発ツールダウンロード1
● ここでは、Eclipseを使います。実はAndroid
Studioの方が評判が良いのですが、今のとこ
ろ、Eclipseの方がメジャーのため。
● SDKダウンロード
http://developer.android.com/sdk/index.html
MACの場合は、
[DOWNLOAD FOR OTHER PLATFORMS]をクリック
開発ツールダウンロード2
● Java SE 7 Development Kit (JDK)ダンロード
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
● Pleiadesプラグインダウンロード
Eclipseを日本語化するためのプラグイン
http://mergedoc.sourceforge.jp/
開発環境インストール1
● JDKのインストール
デフォルト設定のままインストール
注意)統合環境が64Bit版の場合は、64Bit版の
JREが必要になります。
● Android SDKのインストール
AndroidSDKのzipを適当なフォルダーで解凍。
フォルダーをADTとリネームしてCドライブのルート
直下に移動。
開発環境インストール2
● Eclipseの日本語化
● Pleiadesプラグインを導入
● ダウンロードしたpleiades.zipを解凍
● 解凍したファイルを全てEclipseのフォルダーの下
に移動
開発環境インストール3
● eclipseフォルダーの中にあるeclipse.iniファイルを
編集。eclipse.iniの末尾に
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=default.splash
という記述を付加。
● Eclipse.exeを実行 
↑これで、準備完了!
Javaの基礎
● Javaを使って、Androidアプリを作成するため。
● Javaの基礎を学ぶ。
● よく使いそうな部分だけ、抜粋して説明。
Javaの基礎
● Androidアプリ用に、準備した開発環境で、Javaの
基礎を学ぶために、コンソールアプリで試す。
● コンソールアプリは、ちょっとしたコードを試すの
に、便利です。
● Androidアプリを開発するときも、小さい機能を試
すときに、コンソールアプリで試すことは、よくあり
ます。
Javaの基礎
● Androidアプリ用に、準備した開発環境で、Javaの
基礎を学ぶために、コンソールアプリで試す。
● コンソールアプリは、ちょっとしたコードを試すの
に、便利です。
● Androidアプリを開発するときも、小さい機能を試
すときに、コンソールアプリで試すことは、よくあり
ます。
● Eclipseを起動します
● ファイルメニューの新規で、Javaプロジェクトを選択
します。(Androidアプリの場合とは異なります)
● Javaプロジェクトの作成画面が開きます
● プロジェクト名を入力(任意の名称)
● 完了をクリック
●
プロジェクトを選択して、右クリックメニューから
新規を選び、その中のクラスを選択
● クラスの作成画面が表示されます
Eclispeでコンソールアプリ
● 名前(クラス名)を入力します(任意の名前)
説明をわかりやすくするため、「Sample」としておき
ましょう。
● public static void main()の欄にチェックを入れる
● Sample.javaというファイルが作成され、
ファイル内には、Sampleクラスがあり、メソッドとし
て、main()ができています。main()次の中カッコの
中に、プログラムを書いていきます。
最初のプログラム
● main()の下にある、todoの次の行に、プログラムを
書いていきます。
● 「syso」と入力して、CTRL+スペースを押してくださ
い。(コード補完のショートカット)
● System.out.println()というコードが書かれます
● System.out.println()の()の中に、文字を書きま
す。””で囲った中に好きな文字を入力してくださ
い。名前などで構いません。
● メニューの実行から、実行を選びます。
● 文字が、画面下のコンソールに出力されます。
最初のプログラム
● 問題がなければ、文字が出力された思います。
● 問題があった場合は、エラーとなっています。
●
エラー原因を取り除いて、再度、実行しましょう。
● 下部の問題というタブを除くとエラー要因が書かれ
ています。
● エラーの修正は、慣れるまでは、とても大変な作業
です。
エラーの修正のコツは(重要!)
● 1行目のエラーに注目すること。
2行目以降のエラーは、1行目が原因で出ているこ
とがあるので、1行目を無視してはいけない。
● 小さく作って、小さく試す。
たくさんのコードを一度にコンパイルすると、エラー
が多すぎて、探しにくいです。
● 行数の多いコードのエラーを見つけるには、2分探
索を用いると早く原因にたどり着けます。
● エラー内容をコピーして、googleで検索。
変数とは
● 値を入れる箱のようなもの
● 型がある。箱のサイズ、種類が決まる
● とりあえず、int型とboolean型を覚えよう。
● プリミティブ型(基本的な型)
● intは、整数を扱う型。
(-2147483648~2147483647)
● booleanは、ture(真)かfalse(偽)
変数の使い方1
● 宣言方法
型名 変数名;
● 変数名は、AからZ、aからz、0から9、アンダーバー
(_)が使える。但し、先頭に数字は使えない。
任意の名前をつけることができる。
わかりやすい名前をつけた方が後で読みやすい。
● 例
int abc01;
boolean a_flag;
変数の使い方2
● 変数に値を代入する
● 例
int temp;
temp = 10;
boolean flag;
flag = false;
変数の使い方3
● 変数の値を表示してみる
● 最初に使ったSystem.out.println()を使って。
int temp = 100;
System.out.println(temp);
● 上記を先ほど書いたプログラムのmain()の中に書
いて動かしてください。
●
以下の文を追記して、動かしてください。
System.out.println(“Valude = “ + temp);
int temp = 100;
演算子
● コンピュータなので、当然計算ができます。
● 計算の時に使うのが演算子です。
四則演算+剰余の演算。
● + 足し算
● - 引き算
● * 掛け算
● / 割り算
● % 剰余
演算子を使う
● 以下の演算で、temp3の値がどうなるか試すこと。
● int temp1 = 100;
int temp2 = 30;
int temp3 = 0;
temp3 = temp1+temp2;
temp3 = temp1-temp2;
temp3 = temp1*temp2;
temp3 = temp1/temp2;
temp3 = temp1%temp2;
制御構文(if文)
● 分岐をするための構文
int money = 100;
if(money >= 120){
System.out.println(“缶ジュース”);
} else {
  System.out.println(“購入不可能”);
}
moneyの値を変えて、「缶ジュース」を表示してくだ
さい。
制御構文(for文)
● 繰り返しを行うための構文
for(int i=1;i<=10;i++) {
System.out.println(“繰り返し:” + i);
}
● Money >= 120、i<=10は、条件式
● >=、i<=は、比較演算子。等しいは、==
● if文、for文ともに、入れ子可能
演習
● 二つの変数(int)を準備し、大きい方の数を
if文で判定し、表示しなさい。
(数値の値を変えても動作が正しいこと)
● 1から100までの奇数を表示
(forとifの組み合わせ)
奇数の判定は、剰余を使うと簡単。
関数
● 入力を与えて、出力を得る
● 入力のことを引数という
●
出力を戻り値という
● function(x,y)=x+yは、
int plus(int x,int y){
return x+y;
}
関数
● 前のページのままでは、コンパイルが通りません。
public static int plus(int x,int y){
return x + y;
}
● この関数の呼び出しは
int a = 10;
int b = 90;
int answer = plus(a,b);
関数
● 関数の定義
型名 関数名(型名 仮引数名) {
// 処理
}
● 関数の呼び出し
関数名(実引数名);
● 戻り値がない場合は、型名をvoidとする。その場合
は、returnが不要となる。
演習
● 割引計算関数 discount();を作成
● 引数に元の値段を与えて、値引き後の値段を得る
(割引率は30%)(*整数演算だけで行う)
元の値段が100なら、値引き後は、70が得られ
る。
Int result = discount(100);
● 割引率を2つめの引数として関数を作成。
*割引率も整数
オブジェクト指向
● クラス
変数定義(フィールド)とメソッド定義からなる設計
書。(レシピのようなもの)
● メソッド
関数定義と同様。
● インスタンス生成
クラス(設計書)を元に、実体を作ること。
(レシピを見て、実際の料理を作るイメージ)
オブジェクト指向
● クラス
変数定義(フィールド)とメソッド定義からなる設計
書。(レシピのようなもの)
● メソッド
関数定義と同様。
● インスタンス生成
クラス(設計書)を元に、実体を作ること。
(レシピを見て、実際の料理を作るイメージ)
クラスの書き方(例:Dogクラス)
class Dog
{
private String Name; // Stringは、文字列型
public void setName(String n){
Name = h;
}
public void showProfile(){
System.out.println(“名前は、” + Name + “です”);
}
}
クラスの使い方
● インスンタンスの生成
● 先ほどのDogクラスを使ってみる
// インスンタンスの生成
Dog myDog = new Dog();
myDog.setName(“たろう”);
myDog.showProfile();
演習
● 例題のDogクラスに、次の内容を追加してください
年齢を保持するint型のフィールドを定義。
● 年齢を設定するメソッド、SetAge。
● ShowProfileメソッドで名前、年齢を表示するようにする。
● 修正したDogクラスを使用して次のプログラムを作成しなさ
い。
● Dogクラスのインスタンスを作成する。
● 名前、年齢を設定する。
● プロフィールを表示する。
配列とコレクションクラス
● 配列は、あまり使わずにコレクションクラスを使うこ
とが多いので、あえてコレクションクラスを一緒に説
明します。
● 配列とは、複数の変数を同じ名前でまとめて扱え
るようにしたもの。
● 例えば、Seito01,Seito02,Seito03,Seito04のよう
に、4つ変数で4人分のデータを表現する代わりに
● int Seito[] = new int[4]; これで、4人分のデータを
定義できる。使い方は、Seito[0]、Seito[1]のよう
に、カッコの中に数値を入れてアクセスする。
配列の使いづらい点
● int Seito[] = new int[4];のようにした場合
● Seito[4] = 100; とすると配列の範囲をこえるので、
エラーとなる。(プログラムが落ちる)
● 最初の要素数を超えた場合、後で、要素数を拡張
しようとしてもできない。
コレクション(ArrayList)クラス
● 書き方
ArrayList<型> 変数名 = new ArrayList<型>();
● 先ほどの配列をArrayListにしてみる
ArrayList<Integer> Seito
      = new ArrayList<Integer>();
● 型は,プリミティブ型が使えない。
●
データの追加は、
Seito.add(10);
コレクション(ArrayList)クラス
● データの取得
int temp = Seito.get(0);
● 要素数の取得
int count = Seito.size();
● 要素の検索
int index = Seito.size(100);
●
要素のさくじょ
Seito.remove(1);  // 任意の場所
Seito.clear(); // 全ての要素のクリア
●
ソート
Collections.sort(Seito);
● コード例
ArrayList<Integer> Seito = new ArrayList<Integer>();
Seito.add(300);
Seito.add(250);
Seito.add(400);
Seito.add(100);
Collections.sort(Seito);
// Seito.remove(2);
// Seito.clear();
for(int i=0;i<Seito.size();i++) {
System.out.println(Seito.get(i));
}
Stringクラス
● 文字列を扱うクラス
String temp = “ab,cde,fg”;
● 長さを取得
int len = temp.length();
● 文字列の検索
int posi = temp.indexOf(“cde”);
● 文字列の分割
String temp2[] = temp.split(“,”);
●
コード例
String aaa = "ab,cde,fg";
System.out.println(aaa.length());
System.out.println(aaa.indexOf("cde"));
String abc[] = aaa.split(",");
for(int i=0;i<abc.length;i++) {
System.out.println(abc[i]);
}
●
コード例
String aaa = "ab,cde,fg";
System.out.println(aaa.length());
System.out.println(aaa.indexOf("cde"));
String abc[] = aaa.split(",");
for(int i=0;i<abc.length;i++) {
System.out.println(abc[i]);
}
Androidアプリの作成
● いよいよAndroidアプリの開発に入ります。
● プロジェクトの作成
今までは、ファイルメニューの新規で、Javaプロ
ジェクトを選択していましたが、今回から、Android
アプリケーション・プロジェクトを選択します
● 新規Androidアプリケーションダイアログが表示さ
れます。
新規Androidアプリケーション
● アプリケーション名
アイコンに表示する名前
●
プロジェクト名
このプロジェクトにつける名前
(アプリケーション名と同じで構わない)
● パッケージ名
アプリの名前の衝突をさけるための名称
Javaの慣習として、ドメイン名を利用することが多
い。
次に
● その他は、初期値のまま。
●
ここまでの作業で、空のアプリができています。
動作確認
● 実機につないで動作確認でも良いのですが、
まずは、エミュレータで実行します。
● そのために、Android仮想デバイスを作成します。
Android仮想デバイスの作成
● ウィンドウメニューから、Android仮想デバイスマネ
ジャーを選択
● 新規ボタンをクリック
● AVD名は、任意
● デバイスの選択は、ターゲットの画面サイズにより
選択
● Skinは、「Skin with dynamic hardware controls」
を選択
Android仮想デバイス
● 作成が完了したら、エミュレータを動かしてみる
● かなり遅いです。PCが遅いと数分かかる。
● 起動すると、Androidの画面が表示される
● 画面の機能確認であれば、十分に使えます。
● 特に、Androidは、画面サイズがたくさんあるので、
すべての装置を準備できない場合は、エミュレータ
だけで確認することがあります。
アプリの動作確認
● 実行画面より、実行を選択すると
エミュレータ上に、先ほど作成したアプリの画面が
表示されます。
実機での動作確認
● 実機を持っている人は、実機で動作させる方が、動
作確認が早い。
● 実機以外に必要なもの
USBケーブル(通信用)
*間違えて、充電を使っても動作しません。
● 対象の実機用のADB用USBドライバをインストー
ルする必要があります。これは、対象の実機によっ
て変わります。対象の実機のサイトでダウンロード
することになります。(Windowsの場合)
実機の接続確認
● 実機のUSBデバッグを有効にする必要があります
実機のバージョン、機種によって、設定箇所が異な
ります。
● Eclipseで、DDMSを選ぶとデバイスが繋がってい
る場合は、デバイス一覧に名称が表示されます。
● DDMSでは、デバイス内のファイルを見ることも可
能です。
USB デバッグを有効にする
● [設定|開発者向けオプション]で[USB デバッグ]
オプションをオンにします。
● Android 4.2 以降では、[開発者向けオプション]が
デフォルトで非表示になっています。
● [設定|<デバイス種別>情報]を開き、下部の[ビ
ルド番号]を 7 回タップすると、[設定|開発者向
けオプション]が使用可能になります。
● [スリープしない]オプションをオンにした方が開発
しやすい。
必要なファイルの説明
● よく使うファイル・フォルダに限って説明します
● srcフォルダ
Androidアプリを作成するJavaのコードがある場所
● resフォルダ
レイアウトファイル、アイコンなどのリソースがある
場所
● AndroidMnifes.xml
アプリの設定を決めるファイル
とりあえず、動かしたい
● 主要コンポートの説明の前に、動かしている実感
が湧くアプリを書いてみましょう。
● モチベーションを維持するために、とりあえず動し
てみます。
● プロジェクトの作成
Androidアプリケーション・プロジェクトを選択
新規Androidアプリケーション
アプリケーション名、プロジェクト名、パッケージ名
は、好きな名称をつけてください。
● 最小必須SDKを、API 14 
Android4.0(IceCreamSandwich)に設定。
● テーマをNoneに設定。
●
それ以外は、初期値のまま完了まで進んでくださ
い。
*最小必須SDKを、API 14したのは、余分なコー
ドが作成されないようにするためです。
余分なコードを消す
● onCreateOptionsMenu()を削除
● onOptionsItemSelected()を削除
● class PlaceholderFragment()を削除
● if (savedInstanceState == null){のブロックを削除
● setContentView()の引数をnullに。
ビルドが通ることを確認してください。
*このまま実行しても、動作しません。
Viewクラスの作成
● クラスの作成機能を使って、Viewクラスを作成しま
す。
● クラス名は、「SampleView」としておいてください。
名前に意味はありません。説明をしやすくするため
です。
● スーパークラスをandroid.view.Viewにしてくださ
い。(ここは、重要です)
● これで、作成してください。
SampleViewクラス
● SampleViewメソッドを追記してください。
public SampleView(Context context){
super(context);
setBackgroundColor(Color.WHITE);
}
● クラスと同じメソッドをコストラクタと言います。
SampleViewクラス
● onDraw()メソッドをオーバーライドしてください。
@Override
public void onDraw(Canvas canvas){
canvas.drawText("Hello", 100, 100, paint);
}
● フィールドに、次の変数を定義してください。
private Paint paint = new Paint();
ビルドと実行
● それでは、再度ビルド、実行してください。
● 「Hello」と表示されたはずです。
● これでは、コンソールと変わらないので、次は、
● テキスト表示の部分を図形に変えて見ます。
● canvas.drawText()を削除。
● canvas.drawCircle(100,100,5,paint);を記述。
● 座標(100,100)に円の描画を実施
●
実行して、円が表示されることを確認してください。
描画を拡張
● 円の色を変えてみます。
● canvas.drawCircle()の前に、
paint.setColor(Color.RED);を記述
● 実行して、赤い円が描かれることを確認してくださ
い。
*座標の原点は、左上です。
タッチイベントの取得
● onTouchEvent()をオーバーライドしてください
@Override
public boolean onTouchEvent(MotionEvent
event)
{
}
● ビルドが通ることを確認
タッチイベント動作確認
● タッチイベントの動作確認をします。
onTouchEvent()内に、
Toast.makeText(getContext(), "Touchされまし
た", Toast.LENGTH_SHORT).show();
を記述してください。
●
実行してください。タッチするたびに、画面に
「Touchされました」と表示されたと思います。
円がタッチされたら、色を変える
● タッチイベントの判定
public boolean onTouchEvent(MotionEvent
event){
int action = event.getAction();
if((action & MotionEvent.ACTION_MASK)
== MotionEvent.ACTION_DOWN){
// タッチされたことを判定
}
}
座標を取得
// タッチされた座標
int ex = (int)event.getX();
int ey = (int)event.getY();
円と点の衝突判定
円(bx,by,R)点(ex,ey)
R:円の半径
● if((bx - ex)*(bx - ex)+(by - ey)*(by - ey) <= R*R){
// 衝突
}
円の色を変える
● colorというフィールドを定義
● color = Color.RED; // Color.BLUE
● 円を描く際に
paint.setColor(color);
● で色指定すること
● colorをセットしたら、
invalidate();を呼んでおくこと。再描画させるため
タイマーで、円を移動
● MainActivityのフィールドに
private Handler handler = new Handler();
を記述。
● onCreate()でタイマー作成
タイマー作成
Timer timer = new Timer(false);
timer.schedule(new TimerTask(){
public void run(){
handler.post(new Runnable(){
public void run(){
view.invalidate();
}
});
}
},0,30); // 30msec毎に、viewを再描画させる
●
このコードが理解できたら、脱初心者です。
●
キーワード(抽象クラス、匿名クラス、インタフェース、スレッド間通信)
onDraw()で座標更新
● 左端、右端、上端、下端に来たときの処理を記述。
● 例)左端の処理 bx:円の中心 dx:移動量
(正で右へ、負で左へ移動)
if (bx < 0 ) {
dx = 2;
}
bx = bx + dx; // 座標更新
線と矩形描画
● 線の描画
● canvas.drawLine(x1,y1,x2,y2,paint);
● x1,y1 始点座標 x2,y2 終点座標
● 矩形描画
● canvas.drawRect(x1,y1,x2,y2,paint);
● x1,y1 左上座標 x2,y2 右下座標
画像描画
● フィールドにビットマップ保存用の変数を定義
● private Bitmap item;
● viewのコンストラクタで、ビットマップを読み込む
● Resources res = context.getResources();
● item = BitmapFactory.decodeResource(res,
R.drawable.ic_launcher);
● onDraw()で描画
● canvas.drawBitmap(item, 100, 200, null);
復習
● ここで、Javaの復習
● 継承、コンストラクタ、オーバーロード、
オーバーライド、superなどの要素が出てきたの
で、コンソールアプリを使って、ひと通り説明しま
す。
応用
● ここまでの要素を組み合わせれば、ブロック崩し、
インベーダー、テトリス、オセロなどが作成可能で
す。
● 何でも良いので、作ってみましょう。
● 次は、Androidの主要コンポーネントについて
● アプリの作成方法は、レイアウトファイルを主体とし
たやり方です。
主要コンポーネント
● アプリの主要な機能を実現するためのコンポーネ
ント
● Activity ・・・ ユーザーインターフェース
● Intent  ・・・ コンポーネント間通信
● Content Provider ・・・ データアクセス
● Broadcast Receiver ・・・ イベントトリガー
● Service ・・・ バックグランド実行
*今回の勉強会では、ActivityとIntentを使いま
す。
Activity(アクティビティ)
● 画面の元になるコンポーネント
● アクティビティの上にボタン、チェックボックスなどの
部品をを配置して画面を作成する
● 基本的に1画面は、1つのアクティビティで構成され
る。
● アクティビティは、実行中、一時停止などの状態を
持つ。(ライフサイクル)
View(ボタン)を配置
● アクティビティにViewを配置する
まず、ボタンを配置してみる
● GUIデザイナで、ボタンを配置
● XMLファイルに書かれる
● コードでは、XMLファイルを指定することで、View
を指定することができる。
ボタンを使うコード
● コード上でボタンを呼び出す処理
findViewById()
● 取得したオブジェクトに設定を行う
● イベントを設定
トーストを表示するコード
*トースト、画面上に短い間メッセージを表示する
仕組み。警告メッセージなどを表示する場合などに
使う。
ログ出力
● コードが複雑になってくると、プログラムが思い通り
動いているか、検証したくなります。
● 毎回、デバッガで動かすのも面倒なので、よく使う
テクニックとして、気になる箇所にログを仕込みま
す。
● Log.d("TAG", "message");
● ログレベルによって、「v/e/d/w/i」を使い分ける
● ログは、Logcatというツールで見ることができま
す。
テキストViewを配置
● GUIデザイナで、テキストViewを配置
● ボタンが押されたイベントに、テキストViewに文字
を出力するコードを記述
エディットテキストを配置
● GUIデザイナでエディットテキストを配置
● ボタンクリックのイベントでエディットテキストから
文字列を読んで、テキストViewに出力するコードを
書いてみる
CheckBoxを配置
● GUIデザイナでCheckBoxを配置する
● ボタンクリックのイベントで、CheckBoxの状態を取
得し、状態によって、ダイアログを出し分けるコード
を書いてみる。
Activityのライフサイクル
ライフサイクルに関連するメソッド
メソッド名 呼ばれるタイミング
● onCreate() Activityが初めて作られたとき
● onStart() Activityが開始されたとき
● onResume() Activityが表示されたとき
● onRestart() Activityが再度開始されたとき
● onPause() 別のActivityが表示されるとき
● onStop() Activityが表示されなくなったとき
● onDestroy() Activityがメモリから開放される直前
Intent(インテント)
● コンポーネント間通信の仕組み
● ここでいうコンポーネントとは、アクティビィティ、
サービス、ブロードキャストレシーバ。
● 具体例
アクティビィティ1からアクティビィティ2を起動(画面
遷移)
外部アプリのメールソフトを起動、ウェブブラウザを
起動など。
Intent(インテント)
● コンポーネント間通信の仕組み
● ここでいうコンポーネントとは、アクティビィティ、
サービス、ブロードキャストレシーバ。
● 具体例
アクティビィティ1からアクティビィティ2を起動(画面
遷移)
外部アプリのメールソフトを起動、ウェブブラウザを
起動など。
Intentを試す
● Activityを作って画面遷移
● ブラウザ起動
● Mailアプリ起動(目標アプリの一機能)
画面遷移
● アクティビティを追加して、画面遷移を実現
● 新たなアクティビティのクラスを追加
● マニフェストファイル(AndroidManifes.xml)に追記
● メイン画面から、ボタンクリックで画面遷移するよう
にコードを記述。

Weitere ähnliche Inhalte

Andere mochten auch

職業プログラマに必要な意識について
職業プログラマに必要な意識について職業プログラマに必要な意識について
職業プログラマに必要な意識についてakimichi Yamada
 
小学生でもできるAndroidアプリ開発
小学生でもできるAndroidアプリ開発小学生でもできるAndroidアプリ開発
小学生でもできるAndroidアプリ開発shunXnegi
 
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツYusuke Ando
 
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer Kunimasa Noda
 
モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会Shoichi Kakizaki
 
成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》
成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》
成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》Katsuaki Sato
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)Hiroyuki Kusu
 
Androidアプリで日商100万円達成した時にやったこと
Androidアプリで日商100万円達成した時にやったことAndroidアプリで日商100万円達成した時にやったこと
Androidアプリで日商100万円達成した時にやったことKatsuaki Sato
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarHTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarkujirahand kujira
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
Javaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツJavaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツKiyotaka NAKAYAMA
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーションyy yank
 
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Takuya Ueda
 
これだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろ
これだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろこれだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろ
これだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろschoowebcampus
 

Andere mochten auch (14)

職業プログラマに必要な意識について
職業プログラマに必要な意識について職業プログラマに必要な意識について
職業プログラマに必要な意識について
 
小学生でもできるAndroidアプリ開発
小学生でもできるAndroidアプリ開発小学生でもできるAndroidアプリ開発
小学生でもできるAndroidアプリ開発
 
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツ
 
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
 
モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会
 
成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》
成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》
成功するスマートフォンアプリ戦略とは?マーケティングからマネタイズまで《基礎編》
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
 
Androidアプリで日商100万円達成した時にやったこと
Androidアプリで日商100万円達成した時にやったことAndroidアプリで日商100万円達成した時にやったこと
Androidアプリで日商100万円達成した時にやったこと
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarHTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminar
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
Javaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツJavaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツ
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
 
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
 
これだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろ
これだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろこれだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろ
これだけは知っておけ!はじめてのAndroidアプリデザイン〜9-patch編 先生:秋葉 ちひろ
 

Ähnlich wie Programming24 第2回androidアプリ勉強会

条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化Takuya Ueda
 
[DevSummit2013S]Android_Multi-Version_Multi-Device
[DevSummit2013S]Android_Multi-Version_Multi-Device[DevSummit2013S]Android_Multi-Version_Multi-Device
[DevSummit2013S]Android_Multi-Version_Multi-DeviceKenichi Kambara
 
UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章yaju88
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎ken_kitahara
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介Shinya Okano
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...Unity Technologies Japan K.K.
 
Unityの夕べ in Fukuoka
Unityの夕べ in FukuokaUnityの夕べ in Fukuoka
Unityの夕べ in FukuokaShinobu Izumi
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~Fujio Kojima
 
UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章yaju88
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Yuki Higuchi
 
Unity C#3からC#6に向けて
Unity C#3からC#6に向けてUnity C#3からC#6に向けて
Unity C#3からC#6に向けてonotchi_
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Masahiko Mizuta
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜Yusuke SAITO
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Takashi EGAWA
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことleverages_event
 
Arduinoでプログラミングに触れてみよう
Arduinoでプログラミングに触れてみようArduinoでプログラミングに触れてみよう
Arduinoでプログラミングに触れてみようHiromu Yakura
 
UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章yaju88
 

Ähnlich wie Programming24 第2回androidアプリ勉強会 (20)

条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
[DevSummit2013S]Android_Multi-Version_Multi-Device
[DevSummit2013S]Android_Multi-Version_Multi-Device[DevSummit2013S]Android_Multi-Version_Multi-Device
[DevSummit2013S]Android_Multi-Version_Multi-Device
 
UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
 
AndroidでDIxAOP
AndroidでDIxAOPAndroidでDIxAOP
AndroidでDIxAOP
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
 
Unityの夕べ in Fukuoka
Unityの夕べ in FukuokaUnityの夕べ in Fukuoka
Unityの夕べ in Fukuoka
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
 
UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章
 
C#6.0の新機能紹介
C#6.0の新機能紹介C#6.0の新機能紹介
C#6.0の新機能紹介
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
Unity C#3からC#6に向けて
Unity C#3からC#6に向けてUnity C#3からC#6に向けて
Unity C#3からC#6に向けて
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
 
Arduinoでプログラミングに触れてみよう
Arduinoでプログラミングに触れてみようArduinoでプログラミングに触れてみよう
Arduinoでプログラミングに触れてみよう
 
Titanium勉強会
Titanium勉強会Titanium勉強会
Titanium勉強会
 
UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章
 

Mehr von codeal

20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料codeal
 
20150802 codeal androidアプリを作ろう(おみくじアプリ編)
20150802 codeal androidアプリを作ろう(おみくじアプリ編)20150802 codeal androidアプリを作ろう(おみくじアプリ編)
20150802 codeal androidアプリを作ろう(おみくじアプリ編)codeal
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会codeal
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3codeal
 
iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2codeal
 
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1codeal
 

Mehr von codeal (6)

20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
 
20150802 codeal androidアプリを作ろう(おみくじアプリ編)
20150802 codeal androidアプリを作ろう(おみくじアプリ編)20150802 codeal androidアプリを作ろう(おみくじアプリ編)
20150802 codeal androidアプリを作ろう(おみくじアプリ編)
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3
 
iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2
 
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
 

Programming24 第2回androidアプリ勉強会