• 検索結果がありません。

勉強用資料 Android

N/A
N/A
Protected

Academic year: 2018

シェア "勉強用資料 Android"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

開発者目線で Android と

iPhone を比較してみる

豆蔵 藤田泰介

(2)

技術情報

• iPhone

   iPhone Dev Center

   iPhone Dev Center( 日本語 )

• Android

   Android - An Open Handset Alliance Project

   Android - Open Handset Alliance プロ ジェクト

(3)

OS

• iPhone

   Mac OS X ベース

• Android

   Linux ベース

(4)

開発言語 / 開発環境

• iPhone

   Objective-C 2.0( ガベージコレクションなし )    Xcode

   Interface Builder( 画面デザイン用の開発環境 )

• Android

   Java SDK 1.5 または 1.6 相当のもの (Sun の Java と VM が違うのでこのような書き方をしていま す )

   Eclipse

   ADT(Eclipse プラグイン )

(5)

動作環境

• iPhone

   Mac OS X 10.5.4 以上

   Toolchain というオープンソースの開発 環境だと Unix/Linux 系 OS で開発可能

• Android

   Windows    Mac

   Unix/Linux

(6)

アーキテクチャ

• iPhone

• Android

(7)

フレームワーク

• iPhone

   Cocoa Foundation(Mac OS X 共通 )    UIKit

• Android

   Java SDK 相当のもの    Android Framework

(8)

MVC パターンからみた違い

(iPhone)

• Model

  任意 (Model 用の仕組みがない )

• View

   UIKit ライブラリ、 UIView のサブクラス    Interface Builer を使ってデザイン

  デザインの情報は xib ファイルに保存される ( 中は XML)

• Controller

   UIViewController

   UINavigationController    UIImagePickerController    UITabbarController

   UITableViewController

(9)

MVC パターンからみた違い

(Android)

• Model

   ContentProvider

• View

   android.view,android.widget パッケージにある部品群   レイアウト XML にデザイン定義を書く

  デザインの情報は xml ファイルに保存される

• Controller    Activity    ListActivity    MapActivity

   ExpandableListActivity    TabActivity

(10)

View の実装方法

AndroidとiPhoneのViewの実装方法を比較する

(11)

イベントの仕組み

• iPhone

   Target Action

   Responder Chain

• Android

  イベントリスナー

(12)

イベントの実装方法

• AndroidとiPhone

のイベントハンドラの実装方法を比較す る

(13)

ライフサイクル

• iPhone

   loadView    viewDidLoad    viewWillAppear    viewDidAppear    viewWillDisappear    viewDidDisappear

• Android    onCreate    onStart    onResume    onPause    onStop    onDestroy

(14)

メモリ領域圧迫時のイベント

• iPhone

   didReceiveMemoryWarning

• Android

   onLowMemory

(15)

データ保存の仕組み

• Android の場合 SQLite に保存したデータを Content Provider 化することで他のアプリとデータベース を共有することができます。 iPhone は今のところ データベースがアプリごとに独立しているので他 のアプリと共有することはできないようです。

• iPhone

  オブジェクトのシリアライズ   プロパティリスト (XML)

   SQLite

• Android    SQLite

(16)

バックグラウンドプロセス

• iPhone

  不可 ( 音楽など一部例外あり )

• Android

   Service

(17)

グラフィック

iPhone    2D

     Quartz 2D(Mac OS X 共通 )      Core Image(Mac OS X 共通 )    3D

     OpenGL ES

  ベクターグラフィック     対応

Android    2D

     SGL

     android.graphics パッケージにある部品群    3D

     OpenGL ES

  ベクターグラフィック

    非対応 ( 代わりに 9-patch を使う )

(18)

アニメーション

• iPhone

   Core Animation(Mac OS X 共通 )

• Android

   android.view.animation パッケージにあ る部品群

(19)

加速度計

• iPhone

   UIAccelerometer( 加速度計の管理 )

   UIAccelerometerDelegate( 加速度イベント )

• Android

  加速度計に限らずあらゆるセンサーを管理する SensorManager クラスがありそこで管理されている    SensorManager( センサーの管理 )

   SensorListener( センサーイベント )

詳細

   Androidと iPhone の加速度計アプリの実装方法を 比較してみる

(20)

リソース (iPhone)

• Resources フォルダ以下に保存

• NSBundle クラスから mainBundle オブジェ クトを取得する

// 画像のパスを取得する

NSString *imagePath = [NSBundle mainBundle] pathForResource:@"Hoge" ofType:@"png"]; UIImage *image = [UIImage imageAtPath:imagePath];

(21)

リソース (Android)

• Resources フォルダ以下に保存

• R クラスの定義を使って取得する

// Activity クラスでの取得方法

Drawable drawableb = getResources().getDrawable(R.drawable.hoge)

(22)

国際化 (iPhone)

• 言語 .lproj( 例: Japanese.lproj) フォルダを 作成しそこに Localizable.strings ファイルを 格納する

• Localizable.strings ファイルにローカライズ したメッセージを格納する

• 文字以外にもプロパティリストや nib ファ イル、 SQLite データベースなどもローカ ライズできる

(23)

国際化 (Android)

• 各言語ごとに /res/values フォルダを作成 し strings.xml ファイルを格納する

• 今のところ文字列以外はローカライズで

きないみたいです。

res

|--values-en

| `--strings.xml

`--values-ja `--strings.xml

(24)

ロケーション

• iPhone

   Core Location

   CLLocationManager

   CLLocationManagerDelegate

   CLLocationManager を直接インスタンス化できる

• Android

   android.location パッケージのクラス群    LocationManager

   LocationListener

   LocationManager を直接インスタンス化することができない    Context.getSystemService(Context.LOCATION_SERVICE) メソッ

ドを使ってインスタンスを取得する

(25)

参照

• 開発者目線で Android と iPhone を比較し てみる

参照

関連したドキュメント

また、手話では正確に表現できない「波の音」、 「船の音」、 「市電の音」、 「朝市で騒ぐ 音」、 「ハリストス正教会」、

 本研究では,「IT 勉強会カレンダー」に登録さ れ,2008 年度から 2013 年度の 6 年間に開催され たイベント

[r]

添付資料-4-2 燃料取り出し用カバーの構造強度及び耐震性に関する説明書 ※3 添付資料-4-3

添付資料-4-2 燃料取り出し用カバーの構造強度及び耐震性に関する説明書 ※3 添付資料-4-3

添付資料-4-2 燃料取り出し用カバーの構造強度及び耐震性に関する説明書 ※3 添付資料-4-3

添付資料-4-2 燃料取り出し用カバーの構造強度及び耐震性に関する説明書 ※3 添付資料-4-3

添付資料-4-2 燃料取り出し用カバーの構造強度及び耐震性に関する説明書 ※3 添付資料-4-3