Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LITメンター研修_Android0212

443 views

Published on

Published in: Education
  • Be the first to like this

LITメンター研修_Android0212

  1. 1. Android開発講座 2月12日13年2月13日水曜日
  2. 2. §本日の学ぶ事項 ・Androidコンポーネント ・Acticityのライフサイクル ・画面遷移とIntent ・Android Manifest ・イベント処理について ・エラーの対処方法13年2月13日水曜日
  3. 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. 4. アプリ開発講座 ポイント復習13年2月13日水曜日
  5. 5. §アプリ開発方法のまとめ ・アプリ作成の流れ  →コンセプト、デザイン、コーディング ・アルゴリズム  →入出力、演算、条件分岐、ループetc ・オブジェクト指向プログラミング  →クラス(フィールド、メソッド)13年2月13日水曜日
  6. 6. §構想から製作まで ・アプリ作成の流れ  →コンセプト、デザイン、コーディング 作りたいアプリのアイデアは人に説明出来ますか? アプリのデザイン、画面遷移は図にできますか? 必要な処理について洗い出しができますか? コンセプト、デザイン、コーディングは 順番に進めていきましょう13年2月13日水曜日
  7. 7. §プログラムの実際の処理内容 ・アルゴリズム  →入出力、演算、条件分岐、ループetc if, switch, for, while文は正しく書けますか? 処理させたい内容をプログラムに落とし込めますか? 具体的な処理の実現方法、それらを組み 合わせて複雑な処理を行わせる方法、両 方とも出来る必要があります13年2月13日水曜日
  8. 8. §アプリ開発方法のまとめ ・オブジェクト指向プログラミング  →クラス(フィールド、メソッド) オブジェクト指向とは何か? オブジェクト、クラス、インスタンスとは何? インスタンスのメンバへのアクセス方法は? 目標:これまで作ってきたアプリのコー ドを読めるようにしよう13年2月13日水曜日
  9. 9. オブジェクト指向とは?? 分かりやすさ重視で正確な定義などから は外れています。ご留意下さい ◆抽象的な概念 ◆具体的な形式 プログラムに落としこむと… オブジェクト… データ と 処理方法 をまとめた集合 クラス… フィールド と メソッド を指定する メッセージ…オブジェクト同士が受け渡す情報 オブジェクトの定義(みたいなもの) インスタンス…クラスを基に生成される具体的 →オブジェクトという相互に連絡しあう構成単位で なデータの集合( データ と 処理方法 を持っ プログラムを組み立てる設計思想の事 ているので、オブジェクト) オブジェクト メ ッ フィールド セ ー ジ の や オブジェクト り オブジェクト 取 メソッド り フィールド フィールド ◆メッセージの内容 値の読み取り、書き込み メソッド メソッドの実行命令 メソッド etc オブジェクト フィールド メソッド13年2月13日水曜日
  10. 10. クラス:フィールドとメソッド ◆クラス クラスはオブジェクトの設計図として考えることができます。大きく分けてフィールド (メンバ変数)とメソッドから成り立ちます。 実際にオブジェクトを使用する時はクラス(設計図)から、インスタンス(実物)を作成 して、使用します 具体例 TextViewクラス メソッドの形式 Javaの場合 (アクセス修飾子) (戻り値の型) メソッド名 (引数の型 引数名){ フィールド     メソッドの内容 } android:text コードを理解するために(メソッド内の変数) メソッドの中で宣言された変数などは、メソッド内のみ有効 メソッド →クラスの変数とは区別されるので注意 public final void setText (CharSequence text) フィールドの形式 Javaの場合 ・・・ (アクセス修飾子) (型) フィールド名;13年2月13日水曜日
  11. 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. 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. 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. 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. 15. 参考:Objective-cでの表現 クラスの宣言 @interface クラス名:スーパークラス{ メンバ変数 hファイル } メソッド宣言 @end クラスの実装 #import hoge.h @implementation mファイル 各種実装 @end13年2月13日水曜日
  16. 16. 文字列 @ 文字列 cf) オブジェクト名.メソッド名() メッセージ式 [オブジェクト名 メソッド名] オブジェクト間でメッセージを送っている事を表現している ([メッセージの宛先 内容]) メソッド -(戻り値の型) メソッド名 : (引数の型) 引数名 ラベル名 : (引数の型) 引数名13年2月13日水曜日

×