デブサミ2012【16-d-7】「ios, android, windows...

Post on 19-Oct-2014

14.378 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Developers Summit 2012の【16-D-7】枠で講演した「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」の後半資料です。 前半は以下のリンク先になります。 http://www.slideshare.net/hyoromo/201216d7ios-android-windows-phone

TRANSCRIPT

UIデザインが完成

http://www.flickr.com/photos/mfhiatt/6609228299/

画面構成スプラッシュ

タイムライン

公式アカウント

ハッシュタグ 設定

Web情報

ツイートメンション

ログイン

9画面

iOSの画面仕様

スプラッシュ画面

iOSのローディング画面を利用

iOSの画面仕様

ログイン画面

iOSの画面仕様

タイムライン画面

iOSの画面仕様セグメントUIで切り替え更新ボタン

ハッシュタグ自分のタイムラインデブサミ公式

iOSの画面仕様

タブバーで切り替え

タイムライン メンション 設定 Webページ

iOSの画面仕様

ツイートボタン

ツイート画面

Androidの画面仕様

スプラッシュ画面

Androidではスプラッシュを自分で用意する必要がある

Androidの画面仕様

ログイン画面

ブラウザを起動

Androidの画面仕様

ツイートボタン

タイムライン画面

更新ボタン

Androidの画面仕様

ツイート画面

送信ボタン

Androidの画面仕様

mention画面 デブサミハッシュタグデブサミ公式

Androidの画面仕様

WebViewで直接開く

Webページ画面

Androidの画面仕様設定画面

Windows Phoneの画面仕様

スプラッシュ画面

Windows Phoneではスプラッシュ画面はデフォルトで起動

Windows Phoneの画面仕様

ログイン画面

Windows Phoneの画面仕様

タイムライン画面

ツイートボタン

更新ボタン

Windows Phoneの画面仕様

設定メニュー

アプリケーションバーは上にスワイプするとメニューが表示される

Windows Phoneの画面仕様

左右へフリックする事で画面切り替え

タイムライン メンション デブサミ公式 ハッシュタグ Webページ

Windows Phoneの画面仕様ツイート画面

送信ボタン

画像取得ボタン

画面仕様iOS Android Windows Phone

まったく異なる

さぁ作るかー

まてーい

そ、その声は…

確認すべき事がまだあるやろ

T中さん!!

リソースhttp://www.flickr.com/photos/abielskas/147290816/

スマホアプリの開発において用意する必要のある6つのリソース

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

アイコンiOS Android Windows

Phone

形式 PNG形式 PNG形式 PNG形式

サイズ57*57(3G,3GS)114*114(Ratina)

72*72(iPad)

36*36(ldpi)48*48(mdpi)72*72(hdpi)96*96(xhdpi)

62*62

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

スプラッシュ画像iOS Android Windows

Phone

形式 PNG形式 指定なし PNG形式JPG形式

サイズ 320*480640*960 - 800*480

その他画像iOS Android Windows

Phone

対象 - - ライブタイル

形式 - - PNG形式

サイズ - - 173*173

その他画像iOS Android Windows

Phone

対象 - - ライブタイル

形式 - - PNG形式

サイズ - - 173*173これ

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

文字列リソースiOS Android Windows

Phone

形式 Key-Value形式 XML形式 Key-Value形式

数 サポートする言語の数だけ用意するサポートする言語の数だけ用意するサポートする言語の数だけ用意する

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

画像部品iOS Android Windows

Phone

形式PNG形式JPG形式GIF形式

PNG形式JPG形式GIF形式

PNG形式JPG形式AI形式PSD形式

サイズ 従来とRetinaの2種類ずつ

画面密度に合わせて4種類+画面縦横等

1種類のみ

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

メディアリソースiOS Android Windows

Phone

メディア 動画、画像、音楽、etc...動画、画像、音楽、etc...動画、画像、音楽、etc...

サイズ 制限なし アプリ自体が50MBまで

アプリ自体が225MBまで

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

マーケット用リソースその1iOS Android Windows Phone

マーケットの一覧表示用アイコン - - PNG形式

99×99

マーケットの詳細表示用アイコン

PNG,JPG,TIFF形式512×512 - PNG形式

173×173

PC版マーケット用のアイコン - PNG,JPG形式

512×512PNG形式200×200

アプリのスクリーンショット

PNG,JPG,TIFF形式640×920640×960960×600960×6405つまで

PNG,JPG形式320×480480×800480×8542枚以上

PNG形式800×4808枚まで可能言語別が可能

マーケット用リソースその2iOS Android Windows Phone

プロモーション用画像

- PNG,JPG形式180×120 -

プロモーション用動画

アプリの詳細説明内にリンクを含め

る事で可能YouTubeのリンク

アプリの詳細説明内にリンクを含める事で可

宣伝用画像 - PNG,JPG形式1024×500

PNG形式1000×800

マーケット用リソースその3iOS Android Windows Phone

アプリケーション名 255文字 30文字 ある

アプリケーションの解説 4000文字 4000文字 ある

最新の変更 規定なし 500文字 -

プロモーションテキスト - 80文字 -

なるほど!

おさらい

http://www.flickr.com/photos/ores2k/394359583/

スマホアプリの開発において要件定義の段階で聞いておきたい8つの事

1.OSバージョン2.端末の種類3.言語4.タブレット5.テスト端末の確保6.公開予定日7.暗号化の有無8.納品

スマホアプリのUIデザインにおいて意識したい4つの事

1.UI部品の違い2.ハードキーによる操作の違い3.画面遷移の違い4.画面解像度

スマホアプリの開発において用意する必要のある6つのリソース

1.アイコン2.スプラッシュ画像3.文字列リソース4.画像部品5.メディアリソース6.マーケット用のリソース

さぁ作るかー

実装開始!

開発環境

http://www.flickr.com/photos/rmlowe/3281353786/

開発環境の違い

開発機プラットフォーム 開発機 Ver

iOS Mac OS XSnow Leopard

(10.6以上)

Lion(10.7以上)

AndroidWindowsLinux

Mac OS X-

Windows Phone Windows Windows Vista

以上

コーディングプラットフォーム 開発環境 Ver 開発言語

iOS XCode 4.x以上 Objective-CC++、C

Android eclipse + ADT 3.6以上 Java

Windows Phone

Visual Studio

Visual Studio 2010以上

C#、VB

UI作成プラットフォーム 開発環境 開発言語

iOS Interface BuilderStory Board -

Android eclipse + ADT XML

Windows Phone Blend XAML

iOSのUI作成

Interface Builder Story Board

iOS4,5対応 → Interface BuilderiOS5対応 → Story Board

InterfaceBuilder

アプリの1画面毎に作成を行う

Story Board

アプリの全画面作成を行う

Story Board

UI部品へ遷移先を設定できる

AndroidのUI作成

Eclipse+ADT

Graphical Layoutエディタ

AndroidのUI作成

ひたすら記述

AndroidのUI作成

ドラッグ&ドロップ

Windows PhoneのUI作成

Windows PhoneのUI作成

TextBoxを画面上に

ドラッグ&ドロップ

Windows PhoneのUI作成選択中のUI部品の

テキストや背景色変更

レイアウト位置調整

実装

http://www.flickr.com/photos/foolswisdom/44619131/

Twitterライブラリ

Twitterライブラリプラットフォーム ライブラリ

iOSOAuthConsumerJSON Framework

Android Twitter4j

Windows Phone Tweetsharp

リストへの反映

iOSのリスト反映

•UITableViewCellの派生クラス作成•セルのレイアウト作成•リストのレイアウト作成•セルのインスタンス作成

iOSのリスト反映

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

セルを取得するデリゲートメソッド

セルのレイアウトを作成

Androidのリスト反映

行を表すレイアウトXML

データを表示する為のアダプター

Windows Phoneのリスト反映

Twitterデータ自体をドラッグ&ドロップするとUI部品ごとデータ追加される

Windows Phoneのリスト反映

Twitterデータ自体をドラッグ&ドロップするとUI部品ごとデータ追加される

画像キャッシュShared

TransfersShellContentMedia

Root

iOSの画像キャッシュ

•アプリ内領域•カメラロールiOSの内部ストレージ

iOSの画像キャッシュ•NSData dataWithContentsOfURLAPIでアイコンをURL指定でダウンロードします

•NSData writeToFileAPIで画像を保存します

•NSSearchPathForDirectoriesInDomainsAPIでファイルを検索します

iOSのアプリ内領域フォルダ名 説明

tmp 再起動、またはシステム側から不要と判断された時消される。一時保存場所向け。

Library データファイルでは無いファイル(画像等)を保存するためのトップディレクトリ。サブディレクトリも作成可能。iTunesにバックアップされる。

Library/Preferencesアプリケーション設定情報ファイルを保存するディレクトリ。NSUserDefaultsで使われるので操作することは無い。iTunesにバックアップされる。

Library/Caches 一時的に残しておきたい。バックアップしたくないが残しておきたい設定などを保存するディレクトリ。iTunesにバックアップされない。

Documents ドキュメントやアプリケーションデータを保存するディレクトリ。iTunes、iCloudバックアップ対象ディレクトリ。

Androidの画像キャッシュ内部ストレージ

外部ストレージ

ファイルキャッシュ

ファイルキャッシュ

他アプリも扱える

他アプリは扱えない内部ストレージ

外部ストレージ

Androidの画像キャッシュ

Contextクラス

Androidの画像キャッシュ

getDir() getCacheDir() getExternalCacheDir() getExternalFilesDir (String type)

Environmentクラス

Androidの画像キャッシュ

getExternalStorageState()getExternalStorageDirectory()getDownloadCacheDirectory()

これらは端末別に保存先が異なるケースを吸収するために存在している

Windows Phoneの画像キャッシュ

内部ストレージ

外部ストレージ

Windows Phoneの画像キャッシュ

Pictureハブ

アプリ内

他アプリも扱える

他アプリは扱えない

Windows Phoneの画像キャッシュ

Pictureハブ

アプリ内

他アプリも扱える

他アプリは扱えない

Windows Phoneの画像キャッシュ内部ストレージ -アプリ内

SharedTransfersShellContentMedia

Root

Windows Phoneの画像キャッシュ内部ストレージ

SharedTransfersShellContentMedia

Root

Cash フォルダ作成

Windows Phoneの画像キャッシュ

•WebClient APIを利用してTwietterのアイコン画像URLから画像ダウンロードします

•IsolatedStorageFile APIを利用してアプリ内に保存します

プログレス

iOSのプログレス

•networkActivityIndicatorVisible•UIActivityIndicatorView•UIProgressBar

networkActivityIndicatorVisible

•UIApplicationのプロパティです。•YES,NOで表示、非表示を行います。

iOSのプログレス

UIActivityIndicatorView•くるくる回ります•別スレッドにしないとアニメーションし始めません

iOSのプログレス

UIProgressBar•進捗を表すことができます

Androidのプログレス

回転する

他にも

進捗を表す

Windows Phoneのプログレス

「Loading...」表記と丸い玉が左から右へ流れるアニメーションが行われます

Windows Phoneの通信中アナウンス

他にも進捗を表すプログレスバーもあります!

画像の取得

iOSの画像の扱いUIImagePickerControllerでカメラロールまたはカメラを起動する

選択または撮影した画像はNSData(バイナリ)形式で取得

Androidの画像の扱い

画像を選択

Intentで画像を取得できるアプリ

を起動

結果を取得

Windows Phoneの画像の扱い

Pictureハブ起動

起動時のオプションでカメラ撮影の可否を設定

非同期処理

iOSの非同期処理

•NSOperationクラス

•NSThreadクラス

•通信はNSURLConnectionクラスのconnectionWithRequestメソッド

Androidの非同期処理応答なし

強制終了

アンインストール

星一つ ★☆☆☆☆

Androidの非同期処理

AsyncTask

Thread+Hadler

AsyncTaskLoader

便利

これからはコレらしい

Windows Phoneの非同期処理

WebClient APIのダウンロード完了した時などに呼ばれる処理は非同期なので、開発者は意識する必要が無いです

テストhttp://www.flickr.com/photos/leeander/4132537169/

テストで気にする事

OSバージョン端末の種類

ユニットテスト負荷試験

互換性

実際どうテストするかは

http://www.flickr.com/photos/travelourplanet/6301870056/

マーケット配信

マーケット配信

•アカウント取得•アカウント費用と期間•アカウント取得にかかる時間•アプリ公開の為の審査、審査期間•アプリのリジェクト•アプリケーションのファイル容量

アカウント取得プラットフォーム アカウント

iOS Apple ID

Android GoogleアカウントWindows Phone App Hubアカウント

マーケット配信

•アカウント取得•アカウント費用と期間•アカウント取得にかかる時間•アプリ公開の為の審査、審査期間•アプリのリジェクト•アプリケーションのファイル容量

アカウント取得と期間プラットフォーム 価格 期間

iOS 8400円 1年間

Android US$25 無期限

Windows Phone 9800円 1年間

マーケット配信

•アカウント取得•アカウント費用と期間•アカウント取得にかかる時間•アプリ公開の為の審査、審査期間•アプリのリジェクト•アプリケーションのファイル容量

アカウントの取得にかかる時間プラットフォーム 時間

iOS 1週間程度

AndroidGoogle Checkoutでの決済が完了次第

1日程度

Windows Phone

個人はすぐ法人は一週間程度

マーケット配信

•アカウント取得•アカウント費用と期間•アカウント取得にかかる時間•アプリ公開の為の審査、審査期間•アプリのリジェクト•アプリケーションのファイル容量

アプリ公開の為の審査、審査期間プラットフォーム 審査の有無 審査期間

iOS あり 約5営業日

Android なし -

Windows Phone あり 約3営業日

マーケット配信

•アカウント取得•アカウント費用と期間•アカウント取得にかかる時間•アプリ公開の為の審査、審査期間•アプリのリジェクト•アプリケーションのファイル容量

アプリのリジェクト-iOS

アプリ審査のガイドライン(公式)https://developer.apple.com/appstore/resources/approval/guidelines.html

Reject Database(有志)http://iphone-rejectdb.appspot.com/

アプリのリジェクト-Android審査が無いので公開前のリジェクトはない

アダルトマルウェア

著作権違反

海賊版

審査が無いので公開前のリジェクトはない

後からリジェクトあり

アプリのリジェクト-Android

アプリのリジェクト-Windows Phone

•年齢制限による引っかかりやすいコンテンツ•翻訳漏れ•アプリ挙動がおかしい•GPS利用許諾

アプリのリジェクト-Windows Phone

Reject database for Windows Phone Marketplacehttp://rejectdb.pin2wp.jp/

http://msdn.microsoft.com/ja-jp/library/hh184843(v=vs.92).aspx

MSDN アプリケーション認定の要件

マーケット配信

•アカウント取得•アカウント費用と期間•アカウント取得にかかる時間•アプリ公開の為の審査、審査期間•アプリのリジェクト•アプリケーションのファイル容量

アプリケーションのファイル容量プラットフォーム 容量 備考

iOS - 20MB以上でWi-FiオンリーでのDLとなる

Android 40MB 25MB以上でWi-Fi推奨になる

Windows Phone 225MB -

無事完成

http://www.flickr.com/photos/tomashallenberg/2827955927/

アプリをお客様に見せにいきましょう!!

発注元からのコメント

S戸氏

発注元からのコメント

お、ツイートできてるやん!

※個人の感想です

発注元からのコメント

プラットフォーム毎に見た目も動きも特徴合ってええな

※個人の感想です

そうそう、こういうのが

欲しかったんだよ!

※個人の感想です

ごくろう

無事リリース!http://www.flickr.com/photos/reinoutvanrees/481980827/

fin...

後日...

超やばい案件が遂に終わったチーム鰤太郎。次の案件はちょっと余裕を持ってやりたいよね、と話していた矢先、

営業のF田さんより「おいしい案件」の話が舞い込んで来ました。

後日...このチーム

楽したいわー

超やばい案件が遂に終わったチーム鰤太郎。次の案件はちょっと余裕を持ってやりたいよね、と話していた矢先、

営業のF田さんより「おいしい案件」の話が舞い込んで来ました。

後日...この人

このチーム

チョロい仕事がありますよー

「いいねー」

æææææææææ›æææ∩─éÇ æææ;;;; ææææææææææ ›‹æ●æÇ] À– ææ;;;;;; æææææææææææ- ›&æ●æ ● zつ æææææææææææzææ V]入]]ノ æ ミææææææææææææææ Çæ&œ‹æææノæ-⌒j æææææææææææ -›œœœノºœ-æ -ææ;;;;; æææææææææ æ Ôææææææææ œ]ノææ;;;; æææææææææææ ›æ›œææææ› ææææææææææææ曜]]Ëæææææ›æææ;;;;;;æææ&´⌒ ææææææææææææææææ›ææ œœ] ›œœææ&´⌒99&´⌒99 æææææææææææææææææ ›œœœËœœœË&´99⌒æ &´⌒99ææズザザザ

コミュニティ

活動-iOS-

•情報:Apple DevCenterStack Overflow

•コミュニティ:すまべん、 iPhoneアプリ開発者 グループ、iPhone Dev Sapporo

  iPhone Dev Tohoku、南東京iPhone開発者勉強会

  西東京iPhone開発者勉強会、

  これから始める人のためのiPhone,iPadアプリ開発勉強会

活動-Android-

•情報:Tech Booster弊社のAndroidブログとか...

•コミュニティ:日本Androidの会

活動-Windows Phone-

•情報:MSDNTwitter #wp7dev_jp ハッシュタグAppHubフォーラム弊社のWindows Phoneブログとか...

•コミュニティ:Arch, すまべん, WP7もくもく会

お知らせ

本の紹介

•iOS/Android/Windows Phoneの比較本を執筆中です

•青葉実る季節頃に出版予定

ご清聴ありがとうございました。

top related