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

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

ただいまの
回答率

91.45%

  • Unity

    2190questions

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

  • ゲーム開発

    119questions

  • Cocos2d

    22questions

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

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

解決済

回答 2

投稿 2017/05/13 14:54

  • 評価
  • クリップ 1
  • VIEW 697

HRS_O

score 9

 ■目的

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

 ■問題点

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

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

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

 メリット

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

 デメリット

  • システムフォントになるなど、他部分とのレイアウトの差異が多少出てくる
  • WebViewで表示する必要が出てくる
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+5

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

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

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

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

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

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

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

投稿 2017/05/13 15:46

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/13 21:49

    回答ありがとうございます。
    webviewで表示する際のホワイトアウト気になるんですよね……。

    自分の考えていた概念もそう間違ったものじゃなかったようなので安心しました。
    後々のことも考えながら実装します。

    キャンセル

+3

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

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

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

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

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

投稿 2017/05/13 16:27

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/13 21:50

    回答ありがとうございます。

    やはり、デザインに関しての自由度の高さというところはかなりメリット(ないしはネイティブのデメリット)になりますね……。

    よく検討して実装していこうと思いますm(_ _)m

    キャンセル

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

ただいまの回答率

91.45%

関連した質問

  • 解決済

    Androidで、OnClickListenerの使い方が分かりません

    ボタンを使い、クリックしたときの処理を書いたのですが、”○○を変数に解決できません”というエラーメッセージが出てしまい、実行することができません。コードは、下記の通りです。 imp

  • 解決済

    Android Webリンク設定について

    Webリンク方法をご教授下さい。 下記ご覧ください。 ___________ ublic class SamplePagerAdapter extends PagerAdapt

  • 解決済

    スマホサイトをアプリ化したい

    現在、PHP+MySQLを使用したスマートフォンのサイトを運営しております。 このサイトをスマートフォンアプリでも配信するようにという命令が出ましたが、自分はアプリでの開発経験があ

  • 解決済

    iOSゲームアプリの構造について

    アカウントを必要としないゲームアプリはだいたい作れるようになりました。(Swift) 実際、作りたいのは、アカウントを持ったPRGゲームなどです。 例えば下記です。

  • 解決済

    Untiyで全国ランキング機能のついたゲームアプリを作る

    前提・実現したいこと こんにちは。タイトルの通り、Untiyで全国ランキングがついたゲームアプリを作りたいと考えています。 Gamecenterではなく、イメージとしては、LI

  • 受付中

    CSSでTaratailやStackOverFlow等の様な記事一覧の作り方を教えてください

    CSS初心者です。 現在PHPの勉強で掲示板を作っているのですが、スレッド一覧画面で少し困っています。 イメージ的にはタイトルの通りで、スレッド一覧にレス数、タイトル、投稿

  • 解決済

    swift ゲームアプリのスタート画面について

    前提・実現したいこと 簡単なゲームのスタート画面を製作しようとネットから拾ってきたものを、手直ししていました。アプリ開発自体独自では初めてなもので、至らない点が多いいと思いますが

  • 解決済

    ゲームアプリの引き継ぎ方法について

    自主開発したゲームのアプリのユーザーが、機種変更後に、次のマシンへアプリのデータを引き継ぐために、どのような方法があるのでしょうか。 おそらくはサーバーに一旦登録することになる

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

  • Unity

    2190questions

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

  • ゲーム開発

    119questions

  • Cocos2d

    22questions

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