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

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

ただいまの
回答率

88.36%

Swiftの開発でstoryboardを使う意味

解決済

回答 3

投稿

  • 評価
  • クリップ 1
  • VIEW 5,598

DaiAoki

score 67

iOSアプリ開発をしたいと思い、xcodeで開発を始め、入門書を一冊読み終えました。
入門書では、基本的にstoryboard上でUIを作成していましたが、
ネットの情報や手元のSwiftポケットリファレンスでは、コード主体でのUIの作り方が記載されています。
そこで、2点ほど疑問に思ったのですが、

⑴storyboardでUIを作るメリット/デメリットは何でしょうか?
storyboardが視覚的にUIを設計できてとても便利だということは承知の上での質問です。

⑵また、ポケットリファレンスではコードベースで記載されているのはなぜでしょうか?
もしもstoryboardが万能だとしたらわざわざコードベースでの説明とせず、図主体のリファレンスの方が扱いやすいように思えてしまいます。

初心者はstoryboardで作成し、上級者になればなるほどかゆいところにも手が届くコーディングベースでの開発となっていくのか、
それとも上級者でもstoryboardとコーディングを使い分けているのか・・・

よろしくお願いします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 3

checkベストアンサー

+3

storyboardでUIを作るメリットはすでに理解されている通りですが、デメリットはいろんな場所に設定が散らばっていて必要な情報が隠れやすく流用がしづらいということだと思います。例えばStoryboardで作られているビューを別のプロジェクトに流用したかったら、とりあえずビューをコピーした後、アウトレット接続等の設定を一度全部見直して再接続したり、制約を再設定したりする必要があります。すべてコードで書かれていたら、そのビューを定義しているファイルをコピーし、そのビューを利用するコードを書けばいいだけです。(その利用するコードを書くのが面倒という話もありますが)

質問にあるポケットリファレンスは見た事ありませんが、おそらく全てコードで説明した方が必要な設定が説明しやすいのだと思います。初心者には図入りのリファレンスの方がわかりやすいと思いますが、ある程度理解している人には、コードで書かれていた方が必要な設定が簡潔にまとめられているので理解しやすいということです。そして、そのコードで書かれた設定をStoryboardで使う場合にはどうしたらいいかという事はだいたい理解しているし、Storyboardで設定できない部分はコードで書けばよいと思っているので、Storyboardで説明してもらう必要がないのです。
たぶん上級者ほどstoryboardとコーディングの使い分けがうまいと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/06/14 23:32

    なるほど、たしかにそうですね。
    入門本よりも少し難易度が高くて、実例が豊富な技術書があればいいなと思いつつ、なかなか見つけられません。
    入門本より難易度が高めの本となると、実例を交えた本というより、swiftの言語仕様そのものに言及したものが多いように思えます。

    何かおすすめの書籍などがあれば教えてください。
    トレーニング日誌アプリを作りたいと考えています。
    (カレンダーやグラフなどを使って、本格的に作ってみたいです。)

    それか、使ったことがありませんが、Githubの方が勉強になるでしょうか?

    キャンセル

  • 2016/06/15 00:28 編集

    > 何かおすすめの書籍などがあれば教えてください。
    > トレーニング日誌アプリを作りたいと考えています。
    > (カレンダーやグラフなどを使って、本格的に作ってみたいです。)

    すみませんが、私はあまり書籍を持ってないのでおすすめを紹介することはできません。
    何かやりたいことがあるなら、とりあえずやってみて、わからないところはネットで調べればいいと思います。
    ただ、ネットには正しくない情報もありますから、実際に自分でやってみて、最終的には
    Appleの公式リファレンスで仕様を確認しておく必要があります。

    GitHubは、何か勉強するために参照するものではなく、何かやりたいことがWebサイトで解説されていて、その解説のサンプルコードやライプラリがGitHubで公開されているなら利用させてもらえばよいと思います。
    カレンダーを作りたいとか、グラフを作りたいとか具体的にやりたいことがあれば、ネットを調べれば最終的にGithubで公開されているサンプルが見つかるかもしれません。

    キャンセル

  • 2016/06/15 12:48

    作ることに主軸を置いて、その都度必要になったら調べるスタンスで進めていこうと思います。
    ご教授いただきありがとうございました。

    キャンセル

+2

個人的というか、プログラムをする会社の1社員として答えさせていただくのであれば、
基本的な部分はstoryboardで作っておくと多少コードが汚くても他の方への引継ぎや見直しが楽になります。
View周りはコードベースで書くのは個人的にとても楽なのですが、よほど綺麗に書いておかないと後が大変です。

後、大きいアプリになってくると、開発途中でもスポンサーやデザイナー等にUI見せて案のすり合わせ等が何度も入ってくるので、storyboardである程度形が見えないと説明が大変です。(絵の準備が大変)

ちいさめのアプリ作ってリリースするというのであれば、コードベースで全然かまわないと思ってます。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/06/13 22:56

    ご回答ありがとうございます。
    たしかに、コードで書くと単純な練習用画面だけでも相当な行数になって見えにくいです。
    自分が作りたいアプリがどのくらいの規模感になるのかまだ検討がつかない状況ですが、
    簡単なUIのコーディングが当たり前に感じるくらい慣れてきたころにstoryboardを使ってみようと思います。(自分のような初心者がstoryboardに頼らずに、逆にコーディングした方が勉強になる気がしています)

    キャンセル

+1

StoryBoard使用派なので偏りがありますが、、、どちらも大切だと思っています。

⑴storyboardでUIを作るメリット/デメリットは何でしょうか? 

・メリット
ビジュアルで見えるので、UIの配置を変更するのが楽(「引き継いだ人もひと目で見て分かりやすい」とか「 デザイナーでも操作に慣れれば見た目を触れる」)
UI部品のプロパティの設定をGUIでできるので楽
画面遷移など画面間の結びつきが分かりやすい
Autolayoutの設定もビジュアルで見えるので分かりやすい(これは意見が別れるかな?)

・デメリット
使い回すときにIBOutlet、IBAction等を設定し直すのが面倒
そもそもUI部品のプロパティの動きが分かっていないとどこで設定されているのか分からない

⑵また、ポケットリファレンスではコードベースで記載されているのはなぜでしょうか? 

StoryboardからUI部品の全てのプロパティの設定できるわけではありません、コードベースでの記述も必要になるので勉強も必要になります。

あわせてStoryboardでの設定はあくまでも初期値を設定しています、ユーザーの操作に応じてプロパティの値を変更するときにはどちらにせよコードでの変更が必要になります。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/06/13 23:02

    ご回答ありがとうございます。
    storyboardはやはりUIを設計する時には便利なんですね。
    現時点では、storyboardで作ったUIや画面遷移などのつながりがコードのどのあたりに反映されているのかが理解できていない状況です。
    このあたりを理解するとstoryboardとコーディングを使い分けられるようになりそうですが、まだまだ勉強が必要そうです。

    値の受け渡しなどのサーバ側での動きはやはりコーディングしないと実装できないのですね。
    ありがとうございます。

    キャンセル

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

  • ただいまの回答率 88.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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