SlideShare a Scribd company logo
コデアル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によるデータストレージ
- 各種センサー
 加速度センサー、傾きセンサー、磁気センサー
 温度センサー、明るさセンサー、接近センサー
 ジャイロスコープ、圧力センサーなど
 
[コデアル][Programming24]Androidアプリ勉強会01
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では、デバイス内のファイルを見ることも可
能です。
必要なファイルの説明
● よく修正するところに限って説明します
● srcフォルダ
Androidアプリを作成するJavaのコードがある場所
● resフォルダ
レイアウトファイル、アイコンなどのリソースがある
場所
● AndroidMnifes.xml
アプリの設定を決めるファイル

More Related Content

Similar to [コデアル][Programming24]Androidアプリ勉強会01 (20)

PPTX
2018/2/20 Kotlin勉強会
虎の穴 開発室
 
PDF
Android道第1回公開用
Takaya Funabiki
 
PDF
Unity2015_No10_~UGUI&Audio~
CHY72
 
PDF
【LiT Leaders】Android0309
Ryo Yamamoto
 
PDF
夜子まま塾講義6(androidでhello world)
Masafumi Terazono
 
PDF
LITメンター研修_Android0212
Ryo Yamamoto
 
PDF
第1回内容の振り返り
skowata
 
PPTX
関数型言語&形式的手法セミナー(3)
啓 小笠原
 
PDF
Processing
Akifumi Nambu
 
PPTX
Enshu8
sudahiroshi
 
PDF
Processingによるプログラミング入門 第4回
Ryo Suzuki
 
PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
Ouka Yuka
 
PDF
Processing によるプログラミング入門 第1回
Ryo Suzuki
 
PDF
BOF1-Scala02.pdf
Hiroshi Ono
 
PDF
BOF1-Scala02.pdf
Hiroshi Ono
 
PDF
BOF1-Scala02.pdf
Hiroshi Ono
 
PDF
Ruby で学ぶプログラミング入門
Ryota Kameoka
 
PPTX
C言語 学習教材
Jun MITANI
 
PDF
Java初心者勉強会(2015/08/07)資料
Toshio Ehara
 
PPTX
Project lambda
Appresso Engineering Team
 
2018/2/20 Kotlin勉強会
虎の穴 開発室
 
Android道第1回公開用
Takaya Funabiki
 
Unity2015_No10_~UGUI&Audio~
CHY72
 
【LiT Leaders】Android0309
Ryo Yamamoto
 
夜子まま塾講義6(androidでhello world)
Masafumi Terazono
 
LITメンター研修_Android0212
Ryo Yamamoto
 
第1回内容の振り返り
skowata
 
関数型言語&形式的手法セミナー(3)
啓 小笠原
 
Processing
Akifumi Nambu
 
Enshu8
sudahiroshi
 
Processingによるプログラミング入門 第4回
Ryo Suzuki
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
Ouka Yuka
 
Processing によるプログラミング入門 第1回
Ryo Suzuki
 
BOF1-Scala02.pdf
Hiroshi Ono
 
BOF1-Scala02.pdf
Hiroshi Ono
 
BOF1-Scala02.pdf
Hiroshi Ono
 
Ruby で学ぶプログラミング入門
Ryota Kameoka
 
C言語 学習教材
Jun MITANI
 
Java初心者勉強会(2015/08/07)資料
Toshio Ehara
 

[コデアル][Programming24]Androidアプリ勉強会01