質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Cocos2d

Cocos2dは、二次元のゲームや視覚的なアプリケーションを開発する為のオープンソースのフレームワークです。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

Q&A

解決済

ゲームアプリにおけるお知らせ画面にWebViewが多い理由

HRS_O
HRS_O

総合スコア70

Cocos2d

Cocos2dは、二次元のゲームや視覚的なアプリケーションを開発する為のオープンソースのフレームワークです。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

2回答

1グッド

1クリップ

7735閲覧

投稿2017/05/13 05:54

■目的

ゲーム開発においてWebView実装をするかネイティブ実装するか決めあぐねているので
メリット、デメリットを整理したい。

■問題点

AppStoreやGooglePlayで配信されているような、ネイティブのゲームアプリに関して、
お知らせ画面がWebViewで描画されているものが多いと感じております。

一定のフォーマットであればjsonなどでやりとりし、ネイティブで描画すればよいのでは無いかと思ったのですが、
htmlの記述が使える以外に何かメリットやそうせざるを得ない理由はあるのでしょうか。

■個人的に思いつくWebView表示のメリット・デメリット

メリット

  • 公式サイト等外部で表示する際に同レイアウト表示が出来る
  • 装飾にhtml、cssなどが使えるので簡単に自由度の高い表現が可能

デメリット

  • システムフォントになるなど、他部分とのレイアウトの差異が多少出てくる
  • WebViewで表示する必要が出てくる
Satokingy👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

6

ベストアンサー

メリット、デメリットは大体その通りであると思います。
UXの観点から言えばできるだけネイティブで描画までこなす方が理想的でしょう。(お知らせをタップするたびに下から真っ白なモーダルビューが立ち上がる光景を私もたくさん見てきました)
より作り込まれたアプリケーションを実現するために、可能であるならそうすべきだと私は思います。

ただ、大前提としてお知らせというのは通常ブラウザで見られる公式サイトの中にも置かれていることが多いと思います。
そうすると、公式サイトのお知らせとアプリケーション内のお知らせの同一性を保持するのが一番重要になってくると思います。
「お知らせ」の役割は「知らせること」です。それが達成されてようやく初めてシステムフォントのことなんかを考えることができます。

同一性を保持するためには公式サイトのお知らせとアプリケーション内のお知らせを同じところから引っ張ってくるのが現実的でしょう。
では、公式サイトもjsonから引いてくることにしましょう!
ネイティブアプリの開発をしている人と公式サイトの開発は別の人間でしょうからそういう仕組みを作ってもらえないか頼んでみましょう!
サーバーサイドの人も協力して!json返して!

...もうhtml表示するだけでよくないかな?

これがほとんどの場合だと思います。
「そうせざるを得ない」というよりも「そうするのが楽」という選択でこの世はあふれています。
しかし、物事をできるだけ複雑にしない、ということは保守性にも繋がるのでそれを一概に悪だということもできません。むしろ、その方法が一番良い選択である場合も多々あります。
複雑な構造にするとそれだけメンテナンスの手間も増えます。

しかし、個人レベルの開発であるなら、最終はメリット、デメリットではなく自分の実現したいことに一番近い方法をとればいいと思います。
実装をどのようにするか、は作り手が何を目的にするかに集約されると思います。
アプリケーション内でUXを保ちたい、と思うならそうすべきです。
できる限りシンプルに実装し、サーバーサイドは触りたくない。ならそうすべきです。
いや、その両方を実現できる。では、そうしましょう。
きっとそんな感じです。

※私が個人で開発するならネイティブで実装します。理由は楽しそうだから、です。

投稿2017/05/13 06:46

honami

総合スコア308

Satokingy, HRS_O, palm-t, midomurasaki, umyu, TakeoAsai👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

HRS_O

2017/05/13 12:49

回答ありがとうございます。 webviewで表示する際のホワイトアウト気になるんですよね……。 自分の考えていた概念もそう間違ったものじゃなかったようなので安心しました。 後々のことも考えながら実装します。

4

概ね同意見なのですが、個人的経験から。
WebViewもネイティブ実装も両方やったことがありますが、
圧倒的に「WebViewの方がデザイン的な融通が効くから」という理由が挙げられます。

Unityの場合、画像はImage等、テキストはText等、ボタンはButton等のコンポーネントを使用します。
ネイティブ実装の場合、例えば「ヘッダー画像・テキスト・ボタン・テキスト」という構成にしよう、と決めてこの通り実装したとします(ヘッダー画像とボタン画像はお知らせ毎に変わるとします)。

最初はこれで良くても、運営を続ける内に「やっぱりボタン2つにして」「画像を縦に並べてその隣にテキストを配置したい」「テキストの周囲を画像で囲んで」等の要望が出て来るケースが多いです。
ネイティブ実装の場合、この要望に合わせてUIを変更して、JSONを変更して、JSON解析用のスクリプトを変更して……と修正が多大になります。おまけにiOSならUI変更の度に審査を通す必要があり、公開まで数日掛かります。

これがWebViewなら? HTMLを直すだけでデザインは如何様にも、しかも即座に変えられます。
変わるとしてもせいぜい「このリンクをクリックしたらネイティブ側のこの処理を実行」という要素が増えるぐらいでしょう。

逆を言えば、個人開発等で「デザインは変更しない」「デザインを変えるとしても些細である、自分がちょっと手間を掛ければいい」というなら、実装時の手間は掛かりますがネイティブでも構わないと思います。
WebViewはWebViewで融通が効かない部分もあるので、「どれだけ労力を掛けるか(どれだけ凝った見た目にするか)」次第かなぁとは思います。

投稿2017/05/13 07:27

sakura_hana

総合スコア11411

Satokingy, HRS_O, umyu, TakeoAsai👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

HRS_O

2017/05/13 12:50

回答ありがとうございます。 やはり、デザインに関しての自由度の高さというところはかなりメリット(ないしはネイティブのデメリット)になりますね……。 よく検討して実装していこうと思いますm(_ _)m

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Cocos2d

Cocos2dは、二次元のゲームや視覚的なアプリケーションを開発する為のオープンソースのフレームワークです。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。