UIKitとSwiftUI、どちらを使うべき?


こんにちは!クラウドソリューション開発部の今野です。

私自身、Swiftで開発をしたことがあるため、今回はSwiftのフレームワークについて紹介していきます。

Swiftのフレームワークには色々あるのですが、代表的なものとして2つあります。

おそらくiPhoneアプリを開発している方であれば聞いたことがあるかもしれません。

その名も

UIKitとSwiftUIです。

最近は「時代は変われど実績のあるUIKitは健在!」「将来に投資するためにSwiftUIを使おう!」「結局どちらを使えば良いんだーっ!」という話がよく出てきますが、

大切なのは用途だと思います。

木工用ボンドでプラスチックのパーツを接合しようとしているのと同じ(実体験)

そこで今回は、UIKitとSwiftUIのメリットとデメリットを挙げていきます。

Swiftのフレームワークで検討中の方、必見です。
 

~UIKit~

メリット

  • SwiftUIより以前に開発された言語
  • Storyboardを用いて直感的な開発を行うことができる
  • 過去にたくさんのプロジェクトで開発してきた実績がある

デメリット

  • 場合によってはObjective-Cを使うこともあり、フレームワークの取っ掛かりとしては敷居が高い可能性がある
  • AutoLayoutで闘う可能性がある(便利なものは諸刃の剣。詳しくは別記事の際に書いていきたいと思います)

こんな人にはおすすめ

  • 現時点で高度な機能を用いた開発を行う予定である(ここ重要)
  • 大規模プロジェクトを始める予定である

UIKitはSwiftUIに比べ、エンジニアの方々が蓄積してきたノウハウがインターネット上にたくさん転がっているため、それを頼りに開発を行うことができます。

そして様々な大規模プロジェクトで開発されてきた実績があります。

がしかし、Storyboardはやや癖もあると思います。

直感的にボタンを配置したり、テキストを表示させたりできますが、コードとして記述しない分、混乱することも…慣れが必要かもしれません。

~SwiftUI~

メリット

  • 将来性が非常に高い
  • コードベースで開発を行うことができる
  • コードが冗長になりにくい(簡潔なコードが書きやすい)

デメリット

  • まだ開発実績が少ないため、手探りで開発を行うことがある
  • 現段階では実装できない機能がある(WebViewはその一例)

こんな人にはおすすめ

  • Appleのトレンドに沿って開発をしていきたい
  • UI作成をメインでやっていきたい

SwiftUIはUIKitに比べ、言語が公開されてからまだ歴史が短いです。

そのため、過去のプロジェクトで使われてきた実績が少ないと言えます。

簡単なUIを作る上では、UIKitよりも容易に作ることができますが、高度な機能を開発する時には手探りしながら開発…というようになってしまうこともありえます。

ですが、将来的にSwiftUIに移行するという話もあるため、将来への投資という意味でSwiftUIを選ぶという選択肢もあります。

最後に

UIKitとSwiftUIそれぞれのメリットとデメリットを挙げてみました。

いかがだったでしょうか。

ちなみに私自身、UIKitとSwiftUIをどちらも触ったことがあるのですが、UIKitとSwiftUIの書き方は全くの別物でした。

(UIKitにはViewDidLoadというviewをメモリにロードした後に呼び出されるメソッドがあるのですが、SwiftUIではonAppearを使うなど)

コードの記述に関しても構造自体が異なっています。

ただ、フレームワークは違えどもベースはSwiftなので基本的な表記などは同じですね。

今回の記事が参考になればと思います。

最後まで見ていただきありがとうございました!