Weitere ähnliche Inhalte
Ähnlich wie もう怖くないモバイルアプリ開発! (20)
もう怖くないモバイルアプリ開発!
- 2. アジェンダ
• 自己紹介 / 会社紹介
• モバイルアプリ開発が怖いってどういうこと?
• 提案・見積のポイント
• アプリケーション方式のポイント
• ソフトウェア開発方式のポイント
• 設計のポイント
• 製造のポイント
• テストのポイント
• アプリケーション配布のポイント
• もっとソフトウェア開発方式のポイント
• まとめ
• おわりに
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 2
- 3. 自己紹介
• エンバカデロ・テクノロジーズに勤務
• シニア・セールスコンサルタント
• C++ と Java についての豊富な経験
• ブロガー
• いがぴょんの日記
http://www.igapyon.jp/igapyon/
http://d.hatena.ne.jp/igapyon/
• テクニカルライター
• 書籍 / 雑誌 / Web記事の執筆各種
• OSS 開発者
• OSS フレームワーク、翻訳ツール、Eclipse の翻訳など
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 3
- 5. モバイルアプリ開発が怖いってどう
いうこと?
• 見積・提案が怖い
• 社内実績が不足気味
• ハマるポイントが よくわからない
• アプリケーション方式やソフトウェア開発方式
が定まらない
• WBS にブレークダウンできない
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 5
エンタープライズにも、そろそろモバイル
アプリニーズが出てきだした。でも…
ということで工程ごとの注意点を見ていきましょうということで工程ごとの注意点を見ていきましょう
- 6. 提案のポイント
• モバイルデバイスならではのメリットを訴求
• 逆の観点: Web や Windows 等のアプリを “そのまま”
モバイルアプリ化する進め方だと、失敗パターンに
乗ってしまいがち
• “ぼんやり” した要求を、いかに具体化できるか、が
今まで以上に重要
• モバイルアプリ開発における “基準” の提示
• アプリケーション方式、ソフトウェア開発方式、テスト
計画、システム構成など…
• 「弊社の標準的な実装」的サンプルがあるとベター
• 開発環境や教育/初期稼働にまつわる様々なコ
スト計上をお忘れなく
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 6
ショーケースアプリ「おこさまレストラン」をご覧いただきましょう
- 12. アプリケーション方式のポイント
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 12
• アプリケーション方式における「ビッグバン」は避けて
リスクヘッジ
• ポイントとなる新技術採用箇所「以外」は、従来の慣れ親し
んだ方式を踏襲
【既存スキルの
有効活用編】
例: Java や C#.NET によるアプリケーション構築スキルやノウハウが豊富にあるなら、
アプリケーション層は Java および C#.NET を用いて Web サービス(SOAP)として実装する
https
http
https
http
DB I/ODB I/O
SOAPSOAP
プレゼンテーション層:
ネイティブアプリ
プレゼンテーション層:
ネイティブアプリ
アプリケーション層:
Java および C#.NET
アプリケーション層:
Java および C#.NET
データ層:
Oracle や SQL Server 等
データ層:
Oracle や SQL Server 等
既存スキルとノウハウの活用で
クラウド対応も容易に!
既存スキルとノウハウの活用で
クラウド対応も容易に!
サーバ処理サーバ処理
例: Java や C#.NET によるアプリケーション構築スキルやノウハウが豊富にあるなら、
アプリケーション層は Java および C#.NET を用いて Web サービス(SOAP)として実装する
https
http
DB I/O
SOAP
プレゼンテーション層:
ネイティブアプリ
アプリケーション層:
Java および C#.NET
データ層:
Oracle や SQL Server 等
既存スキルとノウハウの活用で
クラウド対応も容易に!
サーバ処理
- 14. ソフトウェア開発方式のポイント
【デバイス毎のバラバラ環境だと…】
• Android(Java)と iOS(Objective‐C)各々のプログラミング言語
や統合開発環境は ずいぶん異なる
• 習熟コスト、開発組織が2倍、3倍になりがち
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 14
findViewById(R.id.button1).setOnClickLis
tener(new OnClickListener() {
@Override
public void onClick(View v) {
((TextView)findViewById(
R.id.textView1)).setText(
"Hello World“
);
}
});
Android (Java)
findViewById(R.id.button1).setOnClickLis
tener(new OnClickListener() {
@Override
public void onClick(View v) {
((TextView)findViewById(
R.id.textView1)).setText(
"Hello World“
);
}
});
Android (Java)
@interface ViewController :
UIViewController
@property (weak, nonatomic)
IBOutlet UILabel *label1;
- (IBAction)OnButton1Click:(id)sender;
@end
@implementation ViewController
- (IBAction)OnButton1Click:(id)sender {
[_label1 setText:@"Hello World"];
}
@end
iOS (Objective‐C)
@interface ViewController :
UIViewController
@property (weak, nonatomic)
IBOutlet UILabel *label1;
- (IBAction)OnButton1Click:(id)sender;
@end
@implementation ViewController
- (IBAction)OnButton1Click:(id)sender {
[_label1 setText:@"Hello World"];
}
@end
iOS (Objective‐C)
:
:
Windows (C#.NET等)
:
:
Windows (C#.NET等)
- 21. 設計のポイント
【モバイルアプリらしさ】
• モバイルデバイスの特徴を考慮した設計
• 画面が小さい
→ 1画面に情報を詰め込みすぎない
• キー入力しづらい
→ そもそもキー入力を極力要求しない
• タッチした時の感触が薄い
→ 何かしらのリアクションを実装に含める
• 画面遷移を基本とする
ダイアログ画面は(ほぼ)使えない、あるいは推奨されない
→ 直感的で見通しのきく画面遷移にしよう!
• GPS、加速度センサー、カメラ等のデバイス機能を有効活用
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 21
- 27. 設計のポイント
【UI / UX】
• 各デバイスの UI デザインガイドライン
• 操作に対するフィードバック
• ぶんぶん、ぶるぶる、ぴかっ
• …サウンドもお忘れなく
• フローが単純であること、結果を予測できること、
元に戻れること
• 一方で、エンタープライズの業務システムに対し
て、何を適用し、そして何を適用しないのかの判
断も重要
• プロトタイプのフィードバックを有効活用
• ドキュメント化における工夫(モックアップ最大活用)
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 27
再びショーケースアプリ「おこさまレストラン」をご覧いただきましょう
- 28. 設計のポイント
【共通化】
• 仕様の共通化による効果
• 統一感
• 規模縮小
• 共通仕様のソフトウェア部品化
• GUI
• 非GUI
• ただし、プレゼンテーション層とアプリ
ケーション層の両方に実装が必要な共
通機能が存在しうる点に注意
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 28
- 30. 製造のポイント
【コーディング】
• モックアップ画面の具体化作業
• マルチデバイス対応機能の作り込み
• OS の違いを吸収したり、アンカー指定や配置レイアウト
指定など画面サイズ由来の各種対応も実装
• プレゼンテーション層について、更にビジュアル層
とローカルロジック層へと適切に分離
• 画面によっては、OS やサイズ (スマホ or タブレット) ごと
にフォームを切り替える可能性があるので重要
• こまめなバージョン管理
• 課題の内容により、すみやかに関連箇所への
フィードバック
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 30
- 31. 製造のポイント
【ユニットテスト:前提条件】
• ユニットテストとテストとの間でテスト観点が適切
に分担 (あるいは意図的に一部重複) されていること
• ユニットテスト対象機種が確定していること
• マルチデバイス・テストが必要なテスト観点が確
定していること
• Web アプリケーションのマルチブラウザ・テストに類似
→工夫が無いと、テスト件数が機種の数だけ必要などと
いう酷いことが… (N倍のワナ)
• テスト・エビデンスの取得方針が確定していること
• ちなみに: スクリーンショット取得に「Reflector Airplay
Receiver」を利用して効率化などを実施する場合には、
別途費用が発生
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 31
- 33. テストのポイント
• ユニットテストに加えてテスト工程でも
マルチデバイステストは必要
• ある程度の実機準備が必要
• テスト観点を絞り込み
• 機種依存の動作相違は存在
• クラウド実機の有効活用
• テスト・エビデンスの取得方針
• スクリーンショット or カメラ撮影?
• ネットワーク状況やアプリ状況に関する試験
• 特に課金にまつわるテスト観点はシビア
• テストの自動化 (クラウド実機による自動化)
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 33
www.scirocco‐cloud.com
- 34. アプリケーション配布のポイント
• アプリ開発と並行してストアへの配布の予行演習
• 開発者登録にまつわる各種手順および費用
• iOS Developer Program に関する 長い待ち時間
• Google Play アプリ登録に関する待ち時間
• App Store アプリ登録に関する 長い待ち時間
• クレジットカードが必要になるタイミングの確認
• ある程度の実機が手元にないと、そもそもアプリ登録
を進めることができない
• 実機登録可能台数の上限
• 必要となる選択肢、説明文および URL、スクリーン
ショット、説明画像の洗い出しおよび準備
• 証明書の有効期限に由来する、再度のストア登
録作業タイミングについての確認
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 34
- 35. もっとソフトウェア開発方式のポイント
• VMware や Parallels のような OS 仮想化ソフト
ウェアのうえに開発環境を構築することを推
奨したい
• 潤沢な CPU, メモリ, ハードディスク容量を期待
• iOS や Mac OS X 向けアプリをビルドする場合
には、Mac OS X + Xcode が別途必要
• Appmethod や RAD Studio を利用する場合には、
Mac OS X 上の OS 仮想環境にインストールされた
Windows に対して導入する構成もおすすめ
• 最低限必要と思われるデバイス実機
• Google Nexus 5, Google Nexus 7 (2013, 2012)
• iPhone 5, iPhone 4, iPad
• 足りない分は scirocco‐cloud.com などを活用
© Copyright 2014 Embarcadero Technologies, Inc. All Rights Reserved 35