SlideShare a Scribd company logo
1 of 16
Download to read offline
Android開発講座
              2月12日

13年2月13日水曜日
§本日の学ぶ事項
 ・Androidコンポーネント


 ・Acticityのライフサイクル


 ・画面遷移とIntent


 ・Android Manifest


 ・イベント処理について


 ・エラーの対処方法




13年2月13日水曜日
§本日のおさらい
                       →Activity, Service,Broadcast receiver, Content
 ・Androidコンポーネント       Providerの4つが存在。一つの画面に対して一つのActivity
                       が対応

 ・Acticityのライフサイクル →Activityが生成されてから、消滅するまでには一定の流れが
                   存在。その中で、onCreate(), onPause()などはライフサイク
                       ルの中で自動的に呼び出されるメソッド

 ・画面遷移とIntent        →IntentはAndroidにおける連絡役。画面遷移やデータの受け渡
                     しなどに使用する。アプリ間での使用も可能


 ・Android Manifest   →プロジェクトの情報を管理している。画面を増や
                     したらManifestへも記載する


 ・イベント処理について →代表例:ボタンのクリックについても複数
                     の処理が存在。

                     →R.javaが存在しない時はXMLファイルのエラー。
 ・エラーの対処方法




13年2月13日水曜日
アプリ開発講座
              ポイント復習

13年2月13日水曜日
§アプリ開発方法のまとめ
   ・アプリ作成の流れ
    →コンセプト、デザイン、コーディング
   ・アルゴリズム
    →入出力、演算、条件分岐、ループetc
   ・オブジェクト指向プログラミング
    →クラス(フィールド、メソッド)




13年2月13日水曜日
§構想から製作まで
   ・アプリ作成の流れ
    →コンセプト、デザイン、コーディング

 作りたいアプリのアイデアは人に説明出来ますか?
 アプリのデザイン、画面遷移は図にできますか?
 必要な処理について洗い出しができますか?


              コンセプト、デザイン、コーディングは
              順番に進めていきましょう


13年2月13日水曜日
§プログラムの実際の処理内容
   ・アルゴリズム
    →入出力、演算、条件分岐、ループetc

 if, switch, for, while文は正しく書けますか?
 処理させたい内容をプログラムに落とし込めますか?

              具体的な処理の実現方法、それらを組み
              合わせて複雑な処理を行わせる方法、両
              方とも出来る必要があります


13年2月13日水曜日
§アプリ開発方法のまとめ
   ・オブジェクト指向プログラミング
    →クラス(フィールド、メソッド)

   オブジェクト指向とは何か?
   オブジェクト、クラス、インスタンスとは何?
   インスタンスのメンバへのアクセス方法は?


              目標:これまで作ってきたアプリのコー
              ドを読めるようにしよう


13年2月13日水曜日
オブジェクト指向とは??                                   分かりやすさ重視で正確な定義などから
                                                    は外れています。ご留意下さい



 ◆抽象的な概念                                   ◆具体的な形式          プログラムに落としこむと…



 オブジェクト… データ と 処理方法 をまとめた集合                クラス… フィールド と メソッド を指定する
 メッセージ…オブジェクト同士が受け渡す情報                     オブジェクトの定義(みたいなもの)
                                           インスタンス…クラスを基に生成される具体的
 →オブジェクトという相互に連絡しあう構成単位で                   なデータの集合( データ と 処理方法 を持っ
 プログラムを組み立てる設計思想の事                         ているので、オブジェクト)


                   オブジェクト
                              メ
                               ッ
                   フィールド          セ
                                   ー
                                      ジ
                                       の
                                          や      オブジェクト
                                           り
      オブジェクト                                取
                    メソッド                     り
                                                 フィールド
       フィールド                                                ◆メッセージの内容
                                                           値の読み取り、書き込み
                                                 メソッド
                                                            メソッドの実行命令
        メソッド
                                                                etc
                            オブジェクト

                            フィールド


                            メソッド




13年2月13日水曜日
クラス:フィールドとメソッド
 ◆クラス
 クラスはオブジェクトの設計図として考えることができます。大きく分けてフィールド
 (メンバ変数)とメソッドから成り立ちます。
 実際にオブジェクトを使用する時はクラス(設計図)から、インスタンス(実物)を作成
 して、使用します

                具体例

  TextViewクラス                  メソッドの形式          Javaの場合
                               (アクセス修飾子) (戻り値の型) メソッド名 (引数の型 引数名){
              フィールド                メソッドの内容
                               }
          android:text
                               コードを理解するために(メソッド内の変数)
                               メソッドの中で宣言された変数などは、メソッド内のみ有効
               メソッド            →クラスの変数とは区別されるので注意
    public final void setText

     (CharSequence text)       フィールドの形式            Javaの場合
    ・・・                        (アクセス修飾子) (型) フィールド名;




13年2月13日水曜日
インスタンスの作成、関連付け
   TextViewクラス                          クラス名 インスタンス名;
                                       と書くことでインスタンスを
               フィールド                        作成する


              android:text

                                      	 private TextView mTextNumber;
                                      	 private TextView mTextAho;
                メソッド
     public final void setText
                                      	 private TextView mTextRatio;

      (CharSequence text)                  コードを理解するために(基本型と参照型)
                                           変数には基本型(int doubleなど)と参照型という物が存在する。
     ・・・                                   基本型は 値(フィールド) のみ!
                                           参照型はクラスから作られるインスタンスなので、 値 と メソッド を
                                           持っている。どちらもフィールドとして使用可能


       コードを理解するために(インスタンスとXMLオブジェクトの関連付け)

    Javaのフィールド                                XMLのオブジェクト
     mTextNumber = (TextView)findViewById(R.id.textView_number);
     mTextAho = (TextView) findViewById(R.id.textView_aho);
     mTextRatio = (TextView) findViewById(R.id.textView_ratio);
                             キャスト           メソッド名            int型
                        int型からTextView型へ
13年2月13日水曜日
フィールド、メソッドへのアクセス
 ◆インスタンスのフィールド、メソッドの使用方法

 インスタンスはクラス(設計図)が持つフィールド、
 メソッドを使用することができます。


     Carクラス(設計図)
                     フィールドの形式
       int number     Car1.number = 20130212;
  String setText()
                              このコードが書かれているオブジェクトから
                     Car1オブジェクト(インスタンス)に値書き込みのメッセージが渡っている




                     メソッドの形式
     Car1(インスタンス)
                     TextView text1;
       int number
                     text1.setText( Car1.setText() );
  String setText()
13年2月13日水曜日
クラスの継承
◆super, Extends, Implementsとは??

クラスは親子関係をもたせる事が可能です。
子供に親の持つ機能を使わせる事ができるようになります

                                    Javaの全ての親クラス
                                     Java.lang.Object
コードを理解するために(アクセス修飾子)
                                                         コードを理解するために(オーバーライド)
public, private, protectedなどはアクセス
                                                         親クラス(スーパークラス)から継承したメ
修飾子という物です。そのデータに対して、
のアクセス(読み込み書き込みなど)の制限
                                    親クラス                 ソッドの内容を、変更して、新しいメソッド
                                                         内容を作成すること。
を行なっている
                                     MethodA()




              子クラスA           親クラスは一つしか持つこ
                              とができない。それゆえ、                 子クラスB
                              クラスは全て樹形図の様に
          super.MethodA()                               @override
                              繋がっている
           親メソッドの使用                                     MethodA(int number)
             MethodB()                                     オーバーライド
          メソッドの新規作成
13年2月13日水曜日
コードを実際に読んでみよう(ex:カウントアプリ)

                           import:使用するクラスがSDKの中のどこにあるのかを指定


                                        class クラス名 extends 親クラス:Activityクラスを基に
                                        カウントアプリで表示されるActivityを作成する

                           Activityクラスのフィールドを指定:他のクラス(TextView)からインスタンス
                           を作成して、このクラスの変数としている。

                                           onCreate():このActivityのインスタンスが作られ
                                           た時に呼ばれるメソッド


                                           findViewById():Activityの変数とXMLを関連付け


                                purasu():このクラスが持つメソッド。ボタンからのイベントが引数
                                (この場合は実行条件の意味合い)となり、void型なので、戻り値を出
                                さない。



              setText():Text1はこのクラスの変数と同時に、TextViewクラスのインスタンスな
              ので、そのメソッドを呼び出している。表示内容はStringクラスの静的メソッド
              format()によって、int型のnumberから変換した文字列




13年2月13日水曜日
参考:Objective-cでの表現

  クラスの宣言      @interface クラス名:スーパークラス{
               メンバ変数
      hファイル    }
               メソッド宣言
              @end

  クラスの実装      #import hoge.h
              @implementation
    mファイル        各種実装
              @end

13年2月13日水曜日
文字列 @ 文字列
                       cf) オブジェクト名.メソッド名()


  メッセージ式       [オブジェクト名 メソッド名]
                    オブジェクト間でメッセージを送っている事を表現している
                           ([メッセージの宛先 内容])




  メソッド
 -(戻り値の型) メソッド名 : (引数の型) 引数名 ラベル名 : (引数の型) 引数名




13年2月13日水曜日

More Related Content

Viewers also liked

SIGARG_はじめての学生謎解きイベント Walkin'事例紹介
SIGARG_はじめての学生謎解きイベント Walkin'事例紹介SIGARG_はじめての学生謎解きイベント Walkin'事例紹介
SIGARG_はじめての学生謎解きイベント Walkin'事例紹介Ryo Yamamoto
 
ライトニングトークの作り方
ライトニングトークの作り方ライトニングトークの作り方
ライトニングトークの作り方Daisuke Masuhara
 
Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介
Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介
Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介Ryo Yamamoto
 
グロースハッカーになろう
グロースハッカーになろうグロースハッカーになろう
グロースハッカーになろうDaisuke Masuhara
 

Viewers also liked (6)

SIGARG_はじめての学生謎解きイベント Walkin'事例紹介
SIGARG_はじめての学生謎解きイベント Walkin'事例紹介SIGARG_はじめての学生謎解きイベント Walkin'事例紹介
SIGARG_はじめての学生謎解きイベント Walkin'事例紹介
 
Design 4 everyone
Design 4 everyoneDesign 4 everyone
Design 4 everyone
 
LTスライドSample
LTスライドSampleLTスライドSample
LTスライドSample
 
ライトニングトークの作り方
ライトニングトークの作り方ライトニングトークの作り方
ライトニングトークの作り方
 
Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介
Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介
Unity勉強会 / ライトニングトーク - ゲーム開発書籍紹介
 
グロースハッカーになろう
グロースハッカーになろうグロースハッカーになろう
グロースハッカーになろう
 

Similar to LITメンター研修_Android0212

pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングkunihikokaneko1
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity FrameworkVSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity FrameworkAtsushi Fukui
 
Javaについて学んだこと2
Javaについて学んだこと2Javaについて学んだこと2
Javaについて学んだこと2iPride Co., Ltd.
 
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法Mitsuru Katoh
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
Android DEX Format & DIFF (第4回マルウェア解析勉強会)
Android DEX Format & DIFF (第4回マルウェア解析勉強会)Android DEX Format & DIFF (第4回マルウェア解析勉強会)
Android DEX Format & DIFF (第4回マルウェア解析勉強会)雅太 西田
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義JPCERT Coordination Center
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる増田 亨
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシン人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシンHirotaka Hachiya
 
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum NovemberDDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November増田 亨
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
詳解Dexファイルフォーマット
詳解Dexファイルフォーマット詳解Dexファイルフォーマット
詳解DexファイルフォーマットTakuya Matsunaga
 

Similar to LITメンター研修_Android0212 (20)

pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
 
Unityで覚えるC#
Unityで覚えるC#Unityで覚えるC#
Unityで覚えるC#
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
Swim_2013_02_19_jpn
Swim_2013_02_19_jpnSwim_2013_02_19_jpn
Swim_2013_02_19_jpn
 
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity FrameworkVSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
 
Thinking in Cats
Thinking in CatsThinking in Cats
Thinking in Cats
 
Javaについて学んだこと2
Javaについて学んだこと2Javaについて学んだこと2
Javaについて学んだこと2
 
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
Android DEX Format & DIFF (第4回マルウェア解析勉強会)
Android DEX Format & DIFF (第4回マルウェア解析勉強会)Android DEX Format & DIFF (第4回マルウェア解析勉強会)
Android DEX Format & DIFF (第4回マルウェア解析勉強会)
 
Cpp v3
Cpp v3Cpp v3
Cpp v3
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミングこれからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシン人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシン
 
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum NovemberDDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
詳解Dexファイルフォーマット
詳解Dexファイルフォーマット詳解Dexファイルフォーマット
詳解Dexファイルフォーマット
 

Recently uploaded

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラムKochi Eng Camp
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Recently uploaded (8)

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

LITメンター研修_Android0212

  • 1. Android開発講座 2月12日 13年2月13日水曜日
  • 2. §本日の学ぶ事項 ・Androidコンポーネント ・Acticityのライフサイクル ・画面遷移とIntent ・Android Manifest ・イベント処理について ・エラーの対処方法 13年2月13日水曜日
  • 3. §本日のおさらい →Activity, Service,Broadcast receiver, Content ・Androidコンポーネント Providerの4つが存在。一つの画面に対して一つのActivity が対応 ・Acticityのライフサイクル →Activityが生成されてから、消滅するまでには一定の流れが 存在。その中で、onCreate(), onPause()などはライフサイク ルの中で自動的に呼び出されるメソッド ・画面遷移とIntent →IntentはAndroidにおける連絡役。画面遷移やデータの受け渡 しなどに使用する。アプリ間での使用も可能 ・Android Manifest →プロジェクトの情報を管理している。画面を増や したらManifestへも記載する ・イベント処理について →代表例:ボタンのクリックについても複数 の処理が存在。 →R.javaが存在しない時はXMLファイルのエラー。 ・エラーの対処方法 13年2月13日水曜日
  • 4. アプリ開発講座 ポイント復習 13年2月13日水曜日
  • 5. §アプリ開発方法のまとめ ・アプリ作成の流れ  →コンセプト、デザイン、コーディング ・アルゴリズム  →入出力、演算、条件分岐、ループetc ・オブジェクト指向プログラミング  →クラス(フィールド、メソッド) 13年2月13日水曜日
  • 6. §構想から製作まで ・アプリ作成の流れ  →コンセプト、デザイン、コーディング 作りたいアプリのアイデアは人に説明出来ますか? アプリのデザイン、画面遷移は図にできますか? 必要な処理について洗い出しができますか? コンセプト、デザイン、コーディングは 順番に進めていきましょう 13年2月13日水曜日
  • 7. §プログラムの実際の処理内容 ・アルゴリズム  →入出力、演算、条件分岐、ループetc if, switch, for, while文は正しく書けますか? 処理させたい内容をプログラムに落とし込めますか? 具体的な処理の実現方法、それらを組み 合わせて複雑な処理を行わせる方法、両 方とも出来る必要があります 13年2月13日水曜日
  • 8. §アプリ開発方法のまとめ ・オブジェクト指向プログラミング  →クラス(フィールド、メソッド) オブジェクト指向とは何か? オブジェクト、クラス、インスタンスとは何? インスタンスのメンバへのアクセス方法は? 目標:これまで作ってきたアプリのコー ドを読めるようにしよう 13年2月13日水曜日
  • 9. オブジェクト指向とは?? 分かりやすさ重視で正確な定義などから は外れています。ご留意下さい ◆抽象的な概念 ◆具体的な形式 プログラムに落としこむと… オブジェクト… データ と 処理方法 をまとめた集合 クラス… フィールド と メソッド を指定する メッセージ…オブジェクト同士が受け渡す情報 オブジェクトの定義(みたいなもの) インスタンス…クラスを基に生成される具体的 →オブジェクトという相互に連絡しあう構成単位で なデータの集合( データ と 処理方法 を持っ プログラムを組み立てる設計思想の事 ているので、オブジェクト) オブジェクト メ ッ フィールド セ ー ジ の や オブジェクト り オブジェクト 取 メソッド り フィールド フィールド ◆メッセージの内容 値の読み取り、書き込み メソッド メソッドの実行命令 メソッド etc オブジェクト フィールド メソッド 13年2月13日水曜日
  • 10. クラス:フィールドとメソッド ◆クラス クラスはオブジェクトの設計図として考えることができます。大きく分けてフィールド (メンバ変数)とメソッドから成り立ちます。 実際にオブジェクトを使用する時はクラス(設計図)から、インスタンス(実物)を作成 して、使用します 具体例 TextViewクラス メソッドの形式 Javaの場合 (アクセス修飾子) (戻り値の型) メソッド名 (引数の型 引数名){ フィールド     メソッドの内容 } android:text コードを理解するために(メソッド内の変数) メソッドの中で宣言された変数などは、メソッド内のみ有効 メソッド →クラスの変数とは区別されるので注意 public final void setText (CharSequence text) フィールドの形式 Javaの場合 ・・・ (アクセス修飾子) (型) フィールド名; 13年2月13日水曜日
  • 11. インスタンスの作成、関連付け TextViewクラス クラス名 インスタンス名; と書くことでインスタンスを フィールド 作成する android:text private TextView mTextNumber; private TextView mTextAho; メソッド public final void setText private TextView mTextRatio; (CharSequence text) コードを理解するために(基本型と参照型) 変数には基本型(int doubleなど)と参照型という物が存在する。 ・・・ 基本型は 値(フィールド) のみ! 参照型はクラスから作られるインスタンスなので、 値 と メソッド を 持っている。どちらもフィールドとして使用可能 コードを理解するために(インスタンスとXMLオブジェクトの関連付け) Javaのフィールド XMLのオブジェクト mTextNumber = (TextView)findViewById(R.id.textView_number); mTextAho = (TextView) findViewById(R.id.textView_aho); mTextRatio = (TextView) findViewById(R.id.textView_ratio); キャスト メソッド名 int型 int型からTextView型へ 13年2月13日水曜日
  • 12. フィールド、メソッドへのアクセス ◆インスタンスのフィールド、メソッドの使用方法 インスタンスはクラス(設計図)が持つフィールド、 メソッドを使用することができます。 Carクラス(設計図) フィールドの形式 int number Car1.number = 20130212; String setText() このコードが書かれているオブジェクトから Car1オブジェクト(インスタンス)に値書き込みのメッセージが渡っている メソッドの形式 Car1(インスタンス) TextView text1; int number text1.setText( Car1.setText() ); String setText() 13年2月13日水曜日
  • 13. クラスの継承 ◆super, Extends, Implementsとは?? クラスは親子関係をもたせる事が可能です。 子供に親の持つ機能を使わせる事ができるようになります Javaの全ての親クラス Java.lang.Object コードを理解するために(アクセス修飾子) コードを理解するために(オーバーライド) public, private, protectedなどはアクセス 親クラス(スーパークラス)から継承したメ 修飾子という物です。そのデータに対して、 のアクセス(読み込み書き込みなど)の制限 親クラス ソッドの内容を、変更して、新しいメソッド 内容を作成すること。 を行なっている MethodA() 子クラスA 親クラスは一つしか持つこ とができない。それゆえ、 子クラスB クラスは全て樹形図の様に super.MethodA() @override 繋がっている 親メソッドの使用 MethodA(int number) MethodB() オーバーライド メソッドの新規作成 13年2月13日水曜日
  • 14. コードを実際に読んでみよう(ex:カウントアプリ) import:使用するクラスがSDKの中のどこにあるのかを指定 class クラス名 extends 親クラス:Activityクラスを基に カウントアプリで表示されるActivityを作成する Activityクラスのフィールドを指定:他のクラス(TextView)からインスタンス を作成して、このクラスの変数としている。 onCreate():このActivityのインスタンスが作られ た時に呼ばれるメソッド findViewById():Activityの変数とXMLを関連付け purasu():このクラスが持つメソッド。ボタンからのイベントが引数 (この場合は実行条件の意味合い)となり、void型なので、戻り値を出 さない。 setText():Text1はこのクラスの変数と同時に、TextViewクラスのインスタンスな ので、そのメソッドを呼び出している。表示内容はStringクラスの静的メソッド format()によって、int型のnumberから変換した文字列 13年2月13日水曜日
  • 15. 参考:Objective-cでの表現 クラスの宣言 @interface クラス名:スーパークラス{ メンバ変数 hファイル } メソッド宣言 @end クラスの実装 #import hoge.h @implementation mファイル 各種実装 @end 13年2月13日水曜日
  • 16. 文字列 @ 文字列 cf) オブジェクト名.メソッド名() メッセージ式 [オブジェクト名 メソッド名] オブジェクト間でメッセージを送っている事を表現している ([メッセージの宛先 内容]) メソッド -(戻り値の型) メソッド名 : (引数の型) 引数名 ラベル名 : (引数の型) 引数名 13年2月13日水曜日