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

Slides:



Advertisements
Similar presentations
アンドロイドの GUI 作成なんて怖くな い! In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 at 2010/07/15(sut) 夜子まま.
Advertisements

Genius Framework について 吉津 卓保( S2 ファクトリー株式会社). 自己紹介.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
2002/2/8 ASUG Conference in PAGE 2002 Mac OS X 開発環境と AppleScript MDOnline 編集長 新居雅行.
講師 松本 章代. 携帯電話のプラットフォーム オープンプラットフォーム Android のアーキテクチャ LiMo のアーキテクチャ 携帯電話用 OS 携帯電話用の自作アプリ事情 2009/11/142.
Curlの特徴.
Windows HPC Server を使ってみる
情報処理3 アプリケーション プログラミング 今井孝明.
ZKプラグインで、Grailsの Viewをリッチに楽しく
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Copyright by Rich & Giro
Java I 第2回 (4/18)
Android:Service 小山 圭.
AndroidとiPhoneに おける開発比較
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
準備しておいて下さい [1] へアクセス [2] project.zipをダウンロード
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
iPhone/iPadユニバーサルアプリ化とデモ
Android Development 白熱道場
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
XcodeとObjectiveC講習会 講師:株式会社 アセンディア 遠藤 豊紀 2010年4月よりiOSアプリの開発に 参画
Hot Pepper for iPod touch
「絵葉書を通じてのハルビンの 街の印象調査」システムUIの iPadアプリ化 谷研究室  飯 祐貴.
アルゴリズムとプログラミング (Algorithms and Programming)
Digital Network And Communication
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
Androidアプリ開発 再教育講習(初心者・ベテランズ)
卒研:データベースチーム 第4回 DOMを使った処理
平成19年5月19日 第3版 東京大学理学部生物化学図書室 前田 朗
Day3 Day4 Day3 Day4.
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
XSL-FO + MathML MathML表示、PDF生成、SVG生成
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
Titanium Studioを使った アプリ開発 Vol.1
Androidアプリの作成 07A1069 松永大樹.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
XNAアプリ→WindowsPhone \(\◇ ̄ )ヘン~(  ̄▽/)ゝシン!!! \(○ `O´ ○)/トゥーー!!
Office IME 2010 を使う.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
わんくま同盟・techbank.jp 夏椰 Insight Technology, Inc. 今川 美保
Webアプリケーションの方向性 データベース論 第13回.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
すぐできるBOOK -基本設定編-.
職務経歴書・スキルシート (職種:職種を記載してください).
『企業と市場のシミュレーション』 井庭 崇 第6回:シミュレーション作成演習①
Androidアプリの作成 情報工学部情報工学科 07A1069 松永大樹.
COM コンポーネント・オブジェクト・モデル.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
Javaによる Webアプリケーション入門 第11回
アンドロイド基盤 WLAN設定・接続UI INFOSIATEC.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
JSFによるWebアプリケーション開発 第3回
Jakarta Struts (1) ソフトウェア特論 第10回.
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
第2回 Webサーバ.
第2回 開発環境とゲーム 05A1030 佐々木 和也.
Microsoft Office Project Server 2007
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
ZendFrameworkで使うためにFilemakerクラスをスクラッチから作ってみる
Presentation transcript:

開発者目線でAndroidとiPhoneを比較してみる 豆蔵 藤田泰介

技術情報 iPhone iPhone Dev Center iPhone Dev Center(日本語) Android   Android - An Open Handset Alliance Project   Android - Open Handset Alliance プロジェクト

OS iPhone   Mac OS Xベース Android   Linuxベース

開発言語/開発環境 iPhone Objective-C 2.0(ガベージコレクションなし) Xcode   Interface Builder(画面デザイン用の開発環境) Android   Java SDK 1.5または1.6相当のもの(SunのJavaとVMが違うのでこのような書き方をしています)   Eclipse   ADT(Eclipseプラグイン)

動作環境 iPhone   Mac OS X 10.5.4以上   Toolchainというオープンソースの開発環境だとUnix/Linux系OSで開発可能 Android   Windows   Mac   Unix/Linux

アーキテクチャ iPhone Android

フレームワーク iPhone Cocoa Foundation(Mac OS X共通) UIKit Android   Java SDK相当のもの   Android Framework

MVCパターンからみた違い(iPhone) Model   任意(Model用の仕組みがない) View   UIKitライブラリ、UIViewのサブクラス   Interface Builerを使ってデザイン   デザインの情報はxibファイルに保存される(中はXML) Controller   UIViewController   UINavigationController   UIImagePickerController   UITabbarController   UITableViewController

MVCパターンからみた違い(Android) Model   ContentProvider View   android.view,android.widgetパッケージにある部品群   レイアウトXMLにデザイン定義を書く   デザインの情報はxmlファイルに保存される Controller   Activity   ListActivity   MapActivity   ExpandableListActivity   TabActivity

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

イベントの仕組み iPhone   Target Action   Responder Chain Android   イベントリスナー

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

ライフサイクル iPhone loadView viewDidLoad viewWillAppear viewDidAppear   viewWillDisappear   viewDidDisappear Android   onCreate   onStart   onResume   onPause   onStop   onDestroy

メモリ領域圧迫時のイベント iPhone   didReceiveMemoryWarning Android   onLowMemory

データ保存の仕組み Androidの場合SQLiteに保存したデータをContent Provider化することで他のアプリとデータベースを共有することができます。iPhoneは今のところデータベースがアプリごとに独立しているので他のアプリと共有することはできないようです。 iPhone   オブジェクトのシリアライズ   プロパティリスト(XML)   SQLite Android

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

グラフィック iPhone 2D Quartz 2D(Mac OS X共通) Core Image(Mac OS X共通) 3D     OpenGL ES   ベクターグラフィック     対応 Android     SGL     android.graphicsパッケージにある部品群     非対応(代わりに9-patchを使う)

アニメーション iPhone Core Animation(Mac OS X共通) Android   android.view.animationパッケージにある部品群

加速度計 iPhone UIAccelerometer(加速度計の管理) UIAccelerometerDelegate(加速度イベント) Android   加速度計に限らずあらゆるセンサーを管理するSensorManagerクラスがありそこで管理されている   SensorManager(センサーの管理)   SensorListener(センサーイベント) 詳細   AndroidとiPhoneの加速度計アプリの実装方法を比較してみる

リソース(iPhone) Resourcesフォルダ以下に保存 NSBundleクラスからmainBundleオブジェクトを取得する // 画像のパスを取得する NSString *imagePath = [NSBundle mainBundle] pathForResource:@"Hoge" ofType:@"png"]; UIImage *image = [UIImage imageAtPath:imagePath];

リソース(Android) Resourcesフォルダ以下に保存 Rクラスの定義を使って取得する // Activityクラスでの取得方法 Drawable drawableb = getResources().getDrawable(R.drawable.hoge)

国際化(iPhone) 言語.lproj(例:Japanese.lproj)フォルダを作成しそこにLocalizable.stringsファイルを格納する Localizable.stringsファイルにローカライズしたメッセージを格納する 文字以外にもプロパティリストやnibファイル、SQLiteデータベースなどもローカライズできる

国際化(Android) 各言語ごとに/res/valuesフォルダを作成しstrings.xmlファイルを格納する 今のところ文字列以外はローカライズできないみたいです。 res |--values-en | `--strings.xml `--values-ja `--strings.xml

ロケーション iPhone Core Location CLLocationManager   CLLocationManagerDelegate   CLLocationManagerを直接インスタンス化できる Android   android.locationパッケージのクラス群   LocationManager   LocationListener   LocationManagerを直接インスタンス化することができない。   Context.getSystemService(Context.LOCATION_SERVICE)メソッドを使ってインスタンスを取得する

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