SlideShare ist ein Scribd-Unternehmen logo
1 von 60
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では、デバイス内のファイルを見ることも可
能です。
必要なファイルの説明
● よく修正するところに限って説明します
● srcフォルダ
Androidアプリを作成するJavaのコードがある場所
● resフォルダ
レイアウトファイル、アイコンなどのリソースがある
場所
● AndroidMnifes.xml
アプリの設定を決めるファイル

Weitere ähnliche Inhalte

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

条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化Takuya Ueda
 
12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用Miwa Iwatsuki
 
Mobile Perfect SP 紹介
Mobile Perfect SP 紹介Mobile Perfect SP 紹介
Mobile Perfect SP 紹介mpdemo
 
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
 
ソフトウェア開発の心得
ソフトウェア開発の心得ソフトウェア開発の心得
ソフトウェア開発の心得Hiroki Tanioka
 
Androidアプリでの儲け方の考え
Androidアプリでの儲け方の考えAndroidアプリでの儲け方の考え
Androidアプリでの儲け方の考えHidekazu Ichige
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上Tatsuya Ishikawa
 
20200930 CDLE LT#2_COD_AkihiroITO
20200930 CDLE LT#2_COD_AkihiroITO20200930 CDLE LT#2_COD_AkihiroITO
20200930 CDLE LT#2_COD_AkihiroITOAkihiro ITO
 
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界Makoto Nishimura
 
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」Osamu Shimoda
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流Rakuten Group, Inc.
 
どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発Yuya Yamaki
 
クロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめクロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめYuki Yazaki
 
AndroidWear勉強会
AndroidWear勉強会AndroidWear勉強会
AndroidWear勉強会Tadaaki Akai
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことleverages_event
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用Takaya Funabiki
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜Yusuke SAITO
 

Ähnlich wie [コデアル][Programming24]Androidアプリ勉強会01 (20)

条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用
 
Mobile Perfect SP 紹介
Mobile Perfect SP 紹介Mobile Perfect SP 紹介
Mobile Perfect SP 紹介
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
ソフトウェア開発の心得
ソフトウェア開発の心得ソフトウェア開発の心得
ソフトウェア開発の心得
 
Android Wear
Android WearAndroid Wear
Android Wear
 
Androidアプリでの儲け方の考え
Androidアプリでの儲け方の考えAndroidアプリでの儲け方の考え
Androidアプリでの儲け方の考え
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
20200930 CDLE LT#2_COD_AkihiroITO
20200930 CDLE LT#2_COD_AkihiroITO20200930 CDLE LT#2_COD_AkihiroITO
20200930 CDLE LT#2_COD_AkihiroITO
 
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界
 
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流
 
どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発
 
クロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめクロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめ
 
AndroidWear勉強会
AndroidWear勉強会AndroidWear勉強会
AndroidWear勉強会
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用
 
リモート・スマホ・レンタル
リモート・スマホ・レンタルリモート・スマホ・レンタル
リモート・スマホ・レンタル
 
[xDNCL] 配布資料
[xDNCL] 配布資料[xDNCL] 配布資料
[xDNCL] 配布資料
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 

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