SwiftUI で iOS アプリを個人開発&ストアに公開した

2019年に Apple から SwiftUI が発表された。

今回、その SwiftUI を使ってアプリを開発&ストアに公開までしたので、実際 SwiftUI 使ってみての感想などをメモする。

公開した iOS アプリ

公開したアプリは以下である。

複雑で難易度が高いアプリだと SwiftUI も慣れていないため、挫折しそう。。
なので、ある程度やりやすそうな題材を選んだ。

最初、審査に提出したら内容がコンパクトすぎたのか、Minimum Functionality でリジェクトされた。。

その後、すこし機能追加して、無事審査は通った。

SwiftUI の初期印象

最初に触ったみた SwiftUI の印象

  • あくまでも UI を記述するたの機構
    • 今までの Swift コードの View, ViewController にあたる部分が SwiftUI で書き換えれるイメージ
  • SwiftUI は Swift 固有の言語(DSL:domain-specific language)であるので Swift とは別に学習が必要であり、すこしとっつきにくい
  • UI コンポーネントの名前が UIKit と微妙に変わっていてややこしい
    • UITableView -> List
    • UISwitch -> Toggle
  • データフローまわり、よくわからない・・・
  • SwiftUI を使うと iOS 13 以降が対象になる -> なんか未来感があってイイ

よく理解できず、これでアプリが作れるんだろうか? という不安を感じた。

SwiftUI チュートリアルで学ぶ

まず公式のチュートリアルは鉄板なので、動かしてみてみる。

このチュートリアルをみていくと、アプリをつくるために必要な

  • NavigationView (画面遷移)
  • List(UIKit でいえば UITableView)
  • Environment (アプリ全体でつかうデータ)
  • @State (UI で変更した値と連動)

などの要素を学べる。

このチュートリアルで基礎を学んだら、いろいろ自分で、こういうのは SwiftUI でどう実現するのかな? という題材をつくり、トライして理解度を高めてゆくとよい。

SwiftUI サンプルを作って理解度を高める

いろいろサンプルを作って、動作を確かめていく。
私は以下のサンプルを作って試した。

参考になった情報

マネーフォワードさんが SwiftUI で実際にアプリをリリースした時の記事。

SwiftUIの大変なところ 現状のSwiftUIには様々なバグや不足しているAPIなどまだまだ残っているなという印象です。

先行していろいろ試している方の記事を読んで「諦めが肝心」というマインドを得た。


こちらのリポジトリには、まとまった SwiftUI コードがあって、実装の上で大変参考になりました。
Appleチュートリアル以外で、ある程度の規模がありながら、動作する SwiftUI のコードは貴重である)

感想

アプリを開発/公開したり、いろいろ調べた結果
2020/1/7 現在、SwiftUI でアプリ開発することはまだ辛いな、という印象。

以下、理由

一方で

今は SwiftUI そのものが改善されていくのを日々体験できる、という特別感があり、今後行き先はどうなるのか、楽しみではあります。 (Swift は OSS ですが、 SwiftUI は Closed な Apple 感があるような気がしますね)