Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "開発者目線でAndroidとiPhoneを比較してみる"— Presentation transcript:

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 以上   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

16 バックグラウンドプロセス iPhone   不可(音楽など一部例外あり) Android   Service

17 グラフィック iPhone 2D Quartz 2D(Mac OS X共通) Core Image(Mac OS X共通) 3D
    OpenGL ES   ベクターグラフィック     対応 Android     SGL     android.graphicsパッケージにある部品群     非対応(代わりに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] 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を比較してみる


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

Similar presentations


Ads by Google