連載:.NET中心会議議事録

第4回 スマートフォン時代の.NET開発を考える

デジタルアドバンテージ 一色 政彦
2010/12/10
Page1 Page2

パネル・ディスカッション『スマートフォン時代×.NET開発者』

 パネル・ディスカッションでは、「スマートフォン時代に.NET開発者はどのように取り組めばよいか? 各スマートフォン向けの開発に関して、.NET開発者は、現在、どのような開発手法/技術を用いるべきか?」について、スマートフォン開発にお詳しい方々にご意見を伺った。登壇していただいたのは、下記の方々である(以下、敬称略)。

パネリスト マイクロソフト
高橋 忍
(前述のため省略)
ユビークリンク
北村 雄騎
2007年ごろから、携帯電話向けの総合ナビゲーション・サービス「全力案内」の企画・開発をしている。ドコモのiアプリ、ソフトバンクのS!アプリ、au by KDDIのBREW(EZアプリ)、Windows Mobile、iPhone、最近ではAndroidなど、各プラットフォーム向けにネイティブ・アプリを提供している
シグマコンサルティング
菅原 英治
ASP.NETによるWebアプリを開発する.NET開発者。ガラケー(=スマートフォン以外の日本市場向けの多機能携帯電話)向けのサイトをASP.NETで開発した実績があり、2007年に「.NETでモバイル・サイト開発を始めよう」という記事を執筆している
デジタルアドバンテージ
遠藤 孝信
2009年までの約9年間、Insider.NETで編集長として.NET開発者向けの記事編集・執筆をしてきた。現在は、記事編集と社内向け開発(C#言語)にも従事しているが、2010年7月ごろからのメイン業務としてはiPhoneアプリ開発を行っており、「カフェマップ」「牛丼マップ」などのアプリ開発の実績を持つ
飛び入り講師 グレープシティ
八巻 雄哉
グレープシティのエバンジェリスト。今回は、グレープシティが提供するiPhone向けのWebサイトをASP.NETで構築するためのコンポーネント「ComponentOne Studio for iPhone-UX 2011J」についてお話を伺うため、飛び入りでご登壇いただいた
モデレータ デジタルアドバンテージ
一色 政彦
@IT Insider.NET編集長であり、.NET開発者中心の記事編集・執筆・企画などを行っている。スマートフォン開発の経験としては、iPhoneアプリや、HTML5によるスマートフォン向けのWebサイトなどのサンプルを開発した
登壇者のプロフィール

パネル・ディスカッションの風景

 以下に、その要点を個条書きにした(筆者が特に重要だと感じた個所)。

スマートフォンとアプリ

―― Android/iPhone/WP7は「スマートフォン」とひとくくりにされるが、それぞれの違いは?

  • 北村「デバイスの多様性でいうと、現状、iPhoneは比較的統一されているが、AndroidやWP7はデバイス・メーカーごとに使える機能が少しずつ異なっている。OS機能面でいうと、企業ユースのサポートが異なる。例えばiPhoneはVPNやExchangeサーバをサポートしているが、Androidはそういった面は未成熟(Android 2.2からは、Exchange連携についていくつかのサポートが開始されている)。」

―― ネイティブ・アプリとWebアプリは、どちらを採用すればよいか?

  • 北村「カメラやマイクなど、デバイス・ハードウェアに依存する機能を実装するケースでは、ネイティブ・アプリを採用することになる。このほか、画面の描画でOpenGLを使いたい場合など、ゲーム・メーカーが提供するようなアプリではWebアプリは難しい。」

  • 北村「また、ネイティブ・アプリなら、マーケット(iPhoneのApp Storeなど)にアプリを登録して一般のユーザーにアプリを販売できるので収益化しやすい。Webアプリの場合、宣伝・広告や課金システムなどを自前で作成する必要がある。」

  • 菅原「弊社ではいま、すでに各スマートフォン向けにネイティブ・アプリを提供している米国のある顧客から、スマートフォンのWebブラウザ向けにWebアプリを作りたいという要望を受けている。この顧客が目的にしているのは、『いかに簡単にユーザーにアプリを使ってもらうか』であり、ネイティブ・アプリのインストールが障害になっている。Webアプリにはこういうメリットもある。」

―― 社内の特定ユーザー向けの業務アプリなら、どちらを採用すればよいか?

  • 北村「アップルでは、一般開発者向けライセンスのほかに、エンタープライズ開発者向けのライセンスが年間3万3800円で用意されている。このライセンスには、例えば社内(in-house)向けのメール閲覧アプリや勤怠管理アプリなどを企業のユーザーだけに導入できる仕組みがある。このため、社内向けのアプリであれば、セキュリティも確保できるネイティブ・アプリが好ましいだろう。ただし、既存資産があり、UI(ユーザー・インターフェイス)を少し変更して使いたいというケースでは、Webアプリでもよいかもしれない。」

  • 北村「Androidでは、iPhoneのような社内配布の仕組みがいまのところ提供されていないので、どこかのWebサーバにアプリを配置して、何らかの認証の下で配布することになる。ただし、推奨された方法ではない。」

  • 高橋「Windows Phoneでも、現状、社内配布の仕組みはまだ用意されていないため、マーケット・プレイスを使う必要がある。ただし、特定企業ユーザーや特定企業向けのマーケット・プレイスを提供しようと計画しているという話はある。具体的には、企業内にプライベート・クラウドを用意して、そこに特定ユーザー向けのマーケット・プレイスを構築するという仕組み。」

  • 高橋「UIのパフォーマンスなどのユーザビリティや、操作感などのユーザー体験は、やはりネイティブ・アプリの方が圧倒的に高い。一番良いものを提供したければ、ネイティブ・アプリをお勧めする。」

スマートフォン向けのネイティブ・アプリ開発

―― Android/iPhone/WP7などの各スマートフォン向けの開発言語や開発環境としては、パネリストの皆さんは実際に何を使っているか?

  • 北村「弊社の開発テーマは、リアルタイムのナビゲーション。そこではパフォーマンスを要求されるため、推奨された環境の一択しかない。具体的には、iPhoneであればObjective-C言語+Xcode、AndroidであればJava言語+Eclipse。プラットフォームが用意する純正の開発環境を、きっちり使うことがベストだと考えている。」

―― iPhoneアプリがC#で作れるMonoTouchや、AndroidアプリがC#で作れるMonoDroidは利用しない方がいいのか?

  • 遠藤「純正以外の開発技術を使うと、突然の規約変更などで『リジェクト(=アプリの受付拒否)』される可能性があったり、最新の環境にライブラリが対応していなかったりという問題がある。」

  • 高橋「Androidのアプリ・マーケットへの審査は緩いらしいので、MonoDroidに関してはリジェクトされる心配はあまりないかもしれない。」

―― PCの場合はクライアントが基本的にWindows OSだったので、開発技術は自由に選択できた。しかし、スマートフォンではOSが多様化しており、開発技術は選べない。さまざまなスマートフォンに対応するには、それぞれの開発技術を使いこなさないといけない。そういった状況で、.NET開発者が最初に手を付けるべき開発技術は何か?

  • 菅原「わたしの経験では、Objective-C言語にはなかなか慣れられなかった。やはりWP7向けならSilverlightベースのアプリなので、C#/VB(Visual Basic)言語+Visual Studioで開発できて、.NET開発者が最初に取り組むには最適。もちろん現実的には、顧客が求めるスマートフォンから順に、開発技術を習得していくのが適切。」

  • 高橋「現実的には、そういった外的要因によって開発技術は決まる。」

  • 遠藤「わたしの考えでは、C#やVBを習得していれば、オブジェクト指向にも慣れているはずなので、Objective-CやJavaを習得するのはそう大変ではない。」

  • 高橋「WP7開発の場合は、基本的にSilverlight開発になるが、WindowsフォームやC++のMFCの開発者にとっては、XAML言語やExpression Blendが独特に感じられる場合があり、そこには壁があるかもしれない。それらを活用するための情報がまだまだ欠けているので、今後、拡充していこうと考えている。」

―― Android/iPhone/WP7などで開発生産性が高いのはどれか?

  • 北村「iPhone。機種が限られているので、実機テストが楽だから。ただし、Androidの場合、XMLで記述する画面の定義ファイルのようなものがあり、高/中/低解像度向けなどのディレクトリを作成しておくと、Androidの方でよしなに画面レイアウトを切り替えてくれる仕組みがあるので、Androidの機種が多様だから大変かというと、そうでもないという印象がある。」

  • 高橋「いまのWP7では、スクリーン解像度は基本的に800×480と決められているので、解像度の違いを気にした作り込みやテストなどは必要ない。」

―― Android/iPhone/WP7向けのデータベースはあるか?

  • 北村「iPhoneやAndroidではSQLiteがローカル側で使える。」

  • 高橋「WP7では、SQL Server Compactなどにはまだ対応していない。現状では、XMLとLINQを使って擬似的にデータ・ストアを構築してほしい。」

スマートフォン向けのWebアプリ開発

―― 「iPhone-UX」ということだが、今後、「Android-UX」や「Windows Phone 7-UX」は提供されるのか?

  • 八巻「動作保証としてiPhone&iPadになっているが、実質的にWebKitベースのブラウザであれば、表示はほぼ同等になるので、ComponentOneを使って作ったWebサイトをAndroidで閲覧することは可能。ただし、iPhoneのネイティブUIに沿ったページ表示にしているので、Androidで閲覧してもiPhone風のページが表示される。もちろんAndroid風のページ表示が欲しいというニーズが高ければ、別製品で対応ということになるだろう。WP7に関しては、グレープシティとしては、Silverlightベースのネイティブ・アプリを推進していくことになる。なぜなら、ComponentOneは.NET開発者がiPhoneなどに対応する際のサポートとして提供しているものであり、.NETが使える環境であればそのまま使っていただきたいから。」

―― ComponentOneには、業務アプリに使えるコントロールがそろっているのか?

  • 八巻「業務アプリの機能を、スマートフォンだけでフルに対応するのは現実的ではない。やはり母艦となるフル機能のアプリがPC向けなどに提供されており、その一部の機能にスマートフォンから手軽にアクセスしたいというケースがほとんどだろう。そういう利用ケースにおいては、さまざまな用途に活用できる十分なコントロールがそろっている。」

―― .NET開発者が各スマートフォン向けにWebアプリを作る技術として、ASP.NET Webアプリケーションを使えるのか?

  • 菅原「使える。もちろんASP.NET MVCを使っても実現できるが、(HTML5など)スマートフォン向けに表示を変えるだけなのでASP.NETでも問題ない。」

―― しかしASP.NETの場合、HTMLコードをカスタマイズするのが大変なのではないか?

  • 菅原「大変だが、カスタマイズするしかない。この機会にASP.NET MVCを採用することも考えたが、そうするとポストバックした後に呼び出されるUIのロジックを使い回せないという問題がある。そういった既存資産を生かしたい現状では、ASP.NET MVCではなく、ASP.NETでスマートフォン向けWebアプリを開発することになる。」

―― Android/iPhone/WP7に標準搭載されているブラウザは何が違うか?

  • 高橋「WP7は、Internet Explorer 7(以降、IE7)がベースになっているので、IE7と同等の表示になる。」

  • 北村「AndroidやiPhoneは、WebKitがベースになっているので、AndroidとiPhoneでのWebページの表示(見た目)はほぼ同じになる。」

  • 高橋「その結果、AndroidとiPhoneのブラウザはHTML5への対応も同様に行われている。」

―― WP7はIE7ベースなのでHTML5は使えないが、今後、対応していくのか? 最近、ベータ版などが頻繁に更新されているIE9ではHTML5に積極的に対応しているので、やはり対応していくのではないか?

  • 高橋「スケジュールは未定。ブラウザ単体でのアップデートはあり得るので、いずれIE9ベースの機能も入ってくる可能性もある。」

―― 米国の開発者向けカンファレンス「PDC10」において、IE9でHTML5に積極的に投資することが明言されたが、その割にHTML5の開発サポートに関する情報は出ていないのはなぜか?

  • 高橋「HTML5は仕様が完全に固まっていないので、開発環境としてはまだ提供できない。HTML5の仕様策定を待っている状況。」

―― iPhoneでFlashが動かないことは有名で、Androidでは最近のOSでFlashに対応している。Android/iPhone/WP7ではSilverlightは動くのか?

  • 高橋「スマートフォン向けブラウザでは、Silverlightは動作しない。現段階では、あくまでネイティブ・アプリ向け。」

―― 先ほどのComponentOneでは、iPhone風のデザインを採用することで、スマートフォン向けのWebサイトを実現していた。これを見ると、PC向けと同じデザインでWebサイトを制作しても、スマートフォン向けにはならないのではないか?

  • 北村「わたしの経験では、例えばiPhone向けのUIを用意しているサイトと、そうではないPC向けなどのサイトを比べると、PC向けサイトは最初小さく表示されるので、ピンチアウトして表示を拡大する必要がある。このようにネイティブ・アプリと同じ感覚で使えない場合、目的のアクションまでに時間が掛かったり、外観のギャップにエンド・ユーザーが戸惑ったりする可能性がある。従って、スマートフォン向けのUIを作り込んだ方が良いものに仕上がるだろう。」

―― わたしも、今回のセミナーに備えてHTML5でWebページをいろいろ作成してみたが、(HTML5に限らず)通常のHTMLコードでは文字が異常に小さく表示されるという問題があった。調べてみると、<meta>タグで「name="viewport"」を指定する必要があった(例: 「<meta name="viewport" content="width=device-width,user-scalable=yes,initial-scale=1.0,maximum-scale=3.0" />」。参考:「minimo:【iPhone】<meta name=”viewport”>について」。iPhoneやAndroidで利用可能。ただしAndroidでは未検証)。これによって、解像度に合わせて大きさをスケールしてくれるようになった。

  • 北村「そういった対応を1つ、入れるか入れないかで、ルック&フィールが全然違ってくる。そのあたりを、個別のHTMLコードで対応するか、jQuery MobilejQTouchなどのJavaScriptライブラリで対応するか、ComponentOneなどのUIコンポーネントで対応するかなど、手段はいくつかある。いずれにしても、やはりスマートフォン向けのUI対応は必須だろう。」

ひと言「スマートフォン開発の技術選択と戦略」

  • 遠藤「スマートフォン開発は楽しい。理由としては、ハードウェア性能が高く思い通りアプリが作れることや、アプリ・マーケットがあるのでユーザーの反応がすぐに分かったり、世界中にアプリを提供できたりすることなどがある。また、WP7を触ったところ、予想以上に動作がスムーズなので、今後、実機が登場してから開発できることを楽しみにしている。」

  • 菅原「いますぐWP7を作って売り出したいと考えている。米国でのある顧客の例では、iPhoneアプリの開発には1年ぐらい掛かっていたのに、WP7アプリはWP7が登場から間もないのにすでにリリースしている。やはりSilverlightでの開発は簡単なので、すぐにアプリを開発・公開できるというメリットがある。Visual Studioの開発生産性は高いので、ライバルはすぐに増えそう。早めに開発に着手することをお勧めする。」

  • 北村「開発戦略としては、スモール・スタートがよいと強く感じている。機能をてんこ盛りにしてリリースすると、ユーザーから評価を受ける段階になって、『こうすればよかった』『ああすればよかった』と後悔することになるので、社内向け業務アプリにしても、一般公開アプリにしても、小さく作ってユーザーの意見を聞きながら仕上げていくのが大事。技術選択は、現実的な外的要因の影響を受けて決まるが、アップルやグーグルやマイクロソフトが出しているUIガイドラインに準拠したデザインに丁寧に仕上げるのが大事(各スマートフォン向けUIガイドライン(いずれも英語)は、次の各リンク先で閲覧/ダウンロードできる:iPhoneAndroidWindows Phone 7)。また、スマートフォン開発で気にしなければならないのが節電で、電池の持ちが悪くなるアプリは嫌われていくので気を付けてほしい。」

  • 高橋「WP7でSilverlightによるネイティブ・アプリ開発をぜひ試していただきたい。今日は見栄えのよいデモを行ったが、実際に開発を始めると、『アプリ間連携ができない』『PCからファイル転送できない』など、ぶつかる問題がたくさん出てくるだろう。従って、北村さんと同じ意見になるが、スモール・スタートで開発を実践してほしい。WP7は、作っていて楽しいプラットフォーム。アニメーションも含めて画面がクリアで見やすい。画面がコンパクトなので作りやすい。なので、この機にSilverlight開発を始めて、作るという『クリエイティビティ(創造)』をもう一度楽しんでいただきたい。また、WP7開発で足りない機能があれば、メールやTwitterなどでマイクロソフトに伝えてほしい。」

 そのほか、パネル・ディスカッションの全体的な内容については、以下のプレゼン資料とUstream中継された動画を閲覧・視聴してほしい。

パネル・ディスカッションのプレゼン資料

【配信終了】パネル・ディスカッションのUstream中継された過去動画
個別のテーマに関するものだけを視聴したい場合は、下記の「開始」時刻の位置に再生スライダーを動かしてほしい。
  • スマートフォンとアプリ (開始:7分00秒〜)
  • スマートフォン向けのネイティブ・アプリ開発 (開始:26分30秒〜)
  • スマートフォン向けのWebアプリ開発 (開始:59分00秒〜)
  • Usteam中継での質問に対する返答 (開始:1時間33分50秒〜)
  • ひと言「スマートフォン開発の技術選択と戦略」 (開始:1時間38分00秒〜)

 師走の忙しい時期にもかかわらずご足労いただいた参加者の皆さんや、パネリスト、関係スタッフに対し、今回も盛況のうちに無事終えられたことを感謝したい。

  2009年9月のリニューアル以来、継続してきた「.NET中心会議」セミナーは、おかげさまで第4回まで実施できた。今後も、このペースで、.NET開発者の関心に答えるセミナー・イベントを開催したいと考えている。その情報については、@IT/.NET開発者中心コーナーのトップ・ページ、もしくはTwitter公式アカウント「@devchu」でお知らせする予定なので、これらも定期的にウォッチ/フォローしていただけるとうれしい。@devchuでの過去つぶやきログはtwilogページで参照できる。End of Article


 INDEX
  [連載] .NET中心会議議事録
  第4回 スマートフォン時代の.NET開発を考える
    1.基調講演『スマートフォン時代の到来と.NET開発』
  2.パネルディスカッション『スマートフォン時代×.NET開発者』

インデックス・ページヘ  「.NET中心会議議事録」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH