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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

8456閲覧

storyboardとSwiftUI

pegy

総合スコア243

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

1クリップ

投稿2020/03/02 01:55

本当に初学者です。
新しいパソコンにxcode 11.3を導入したのですが、調べてみると本バージョンでは既存のstoryboardと呼ばれるもの以外にSwiftUIにより構築することもできることがわかりました。

また、調べると2019年あたりからSwiftUIが導入されている様ですが、これを利用して構築する記事等がまだそう多くはないことと今後はSwiftUIがスタンダードになるということがわかりました。(諸々の記事を参考にしているので全てが事実であるかはまだ確信がないですが、)

さて、ここで現時点で初学者という地点にいる前提ですが、SwiftUIでの構築から始めるべきなのか、storyboardで構築することから始めるべきなのかアドバイスをいただきたく投稿させていただきました。

storyboardで作成するために記事は多く出てくるため、検索しながらすすめられそうですが、SwiftUIはあまりまだ見つけることができないことから書籍を購入しようか迷っています。

storyboardの理解がなければSwiftUIを手をつけるべきではないとう一般的なご意見があればお願いいたします。

なお、現時点において特定のアプリを作成したいという物はなく触りながら考えていこうと思っています。

よろしくお願い申し上げます。

ttoo👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

以前もここで回答したような気もしますが、Storyboard/UIKit系は過去の情報や資産(オープンソースなどの他者が作ったものを含む)が活かせるので、アプリリリースを目標とするのであれば、こちらの方が今の所イージーかなと思います。

SwiftUIはまだまだ高度成長期だと思いますので、一応並行してSwiftUIも勉強しておいて、実用に耐えられるとなったときに(部分的にでも)使っていくのが良いのではないかと思います。

ちなみに自分でアプリの仕様まで考えるのであれば「SwiftUIの中でしかできないことしかやらない」という方針で作るのも有りっちゃ有りです。
請負の仕事とかですと、「SwiftUIだと出来ないんですよー」という言い訳がしづらいので、結果UIKitをつかわざるを得ないという背景もあります。

投稿2020/03/02 02:31

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2020/03/02 02:44

大変よく分かりました。一点だけ、確認させて下さい。 現時点では、両者はレイアウトに関連するフレームワーク違いのようなイメージなのですが、両者は学ぶことで双方の助けになるものですか?それとも概ね独立したものとしてそれぞれ学ぶイメージでしょうか? 宜しくお願い申し上げます。
takabosoft

2020/03/02 02:52

回答内でも少し触れましたが、一応混在での開発もできるようですので、SwiftUIで楽ができそうなところだけ部分的に使うという手もあります。 例: SwiftUI と UIKit 混合環境で開発を行うときの tips 集 https://qiita.com/AkkeyLab/items/732887517da9abab6634 まあ混在はともかくまずは別個に勉強してく感じで問題ないと思います。 細かい制御は間違いなくStoryboard/UIKitの方が(頑張れば)できます。
pegy

2020/03/02 03:01

大変よく分かりました! まずはStoryboard/UIKitで初めてみようと思います。 改めて御礼を申し上げます。
TsukubaDepot

2020/03/02 03:07

「詳細! SwiftUI iPhoneアプリ開発入門ノート iOS 13 + Xcode11対応」という書籍のChapter7にもUIKit(MapKitの例)との連携は記述してありますので、お手にする機会があれば見てみるのも良いかと思います。
guest

0

まずは過去問検索が良いかと思います。

teratailの「SwiftUI 初心者」での検索結果


SwiftUI ですが、見栄えの良いインタフェイスを作るのには良さそうですし、Xcode (IDE) の操作も最低限の操作でインタフェイスを構築できるのですが、「その先」つまり自分で手を加えてゆくにはまだまだ壁が高いかな、という印象です。

SwiftUIに関する書籍(といっても日本語だと3冊程度ですが)はどれもよく書かれていて、見栄えのあるインタフェイスも作れますし、掲載されているコード通りうちこめばまず間違いなく動くのですが、読了後次のステップに進もうとしたときに「どうしたものか」という状態になってしまそうに思えます(なってしまいました)。

たとえば、SwiftUIに関する「追記構造体(Struct)のプロパティが変更できない。mutatingが効かない。」という質問でeyteyeさんが回答されている通りだと思います。

SwiftUIではUI側はモデルの描画に専念するべきなので、表示するべきリストの追加や削除はモデル側で処理するべきです。UIは単にリストを受け取って描画するだけにしないと、いろいろうまくいかなくて困る場面が出てくると思います。

つまり、画面(インタフェイス)はSwiftUIで記述するけど、データ処理はそれ以外で行った方が良いというご意見だと思います。私も納得ですし、同感です。

そうなるとSwiftそのものの知識が必要となってきます(当然ですが)。

加えて、SwiftUI の記述は Swift に加え、DSL と呼ばれている手法も用いられているらしいのですが、現状ではコンパイルエラーの表示なども追いついていないのか、エラーが発生している行とは違う行や内容でメッセージが出ることもありますし、従来の制御構文で実現そうなこともできなかったりします。

もちろん、DSL について理解すればそういう誤解も少なくなるはずですが、そこまでフォローしているというか、納得いく形で説明している情報も少ないのではないでしょうか。

それを考えると、従来手法(UIKitとStoryboard)を使った方法の方が分かりやすいし、応用も効くのかなというのが個人的な感想です。


でも、前述の通り、いま出版されているSwiftUIの本はよく書かれていると思いますので、まずは手にとって一通り実践されても良いんじゃないんでしょうか。

きちんと一冊終わらせれば、あらたな疑問も出てくると思いますし、それは実践に基づいた疑問なので、次につながるステップになると思います。

投稿2020/03/02 02:54

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2020/03/02 03:08

ありがとうございます。 Storyboard/UIKitを初めつつも、わかりやすそうな、SwiftUI徹底入門という書籍があったので並行して読み進めてみようと思います! ご丁寧に解説ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問