普段Androidアプリを開発している私は、興味本位でiOS開発をしてみたくなり、Apple Developerのサイトに公開されているSwiftUIのチュートリアルを見ながら学習しました。
今回はSwiftUIを触ってみた軽い感想を書きます。
結構楽しいですね。
大まかな感想
AndroidのJetpack Composeと記述の仕方が似ているなというのが、第1印象でした。
どちらも宣言型のUIでしたね。
少ない行数である程度の機能を実装できるのは、かなり便利です。
良きかなポイント👍
ここでは私が特に良かったと感じたところについてお伝えします。
私の良きかなポイントはこちらです。
- マップの実装が簡単
- Swiftを使用しているため、言語の学習コストが低かった
マップの実装が簡単
- ビューファイルを用意した後に
Mapkit
をimport - 表示場所を設定するメソッドを用意(position)
- 初期位置の座標と表示する横幅、縦幅を設定
-
Map(initialPosition(.position(position)))
でセット
以上でアップル標準のマップが表示されます。
ここまでコードは20行も書いていません。本当に短いコードでマップが表示されたのは感動しました。
以下はSwiftUI Tutorialsより引用したものです。
import SwiftUI
import MapKit
struct MapView: View {
var body: some View {
Map(initialPosition: .region(region))
}
private var region: MKCoordinateRegion {
MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868),
span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2)
)
}
}
#Preview {
MapView()
}
↓iPhone12の実機で動作させたスクショです。

Swiftを使用しているため、言語の学習コストが低かった
これは私が普段使っている言語が関係します。
私が普段使っているのはKotlinといってJavaの後継として開発され、Androidアプリ開発の現場で使用されている言語です。
このKotlinとSwiftUIで使用されているSwiftは文法的にかなり似ています。
それは、初見とは思えないほどスルスルとコードの理解をすることができたほどです。
そのおかげで、今回の学習も通常のプログラミング学習に比べて学習コストが低くなり、特に詰まることなくチュートリアルを終えることができました。
ちょっと戸惑ったところ🌀
色々収穫があった学習でしたが、Android開発と違って戸惑ったところもあります。
- 実機で動かす時はプロファイルを信頼しなければならない
- 1週間で作ったが無効になる
これはswiftUIというよりiOSのシステムにかかってきますが、この2つが特に戸惑ったところです。
実機で動かす時はプロファイルを信頼しなければならない
実機をUSBに挿してもなかなか動かないので、どうしたものかと思っていましたが、プログラムを書いているmacとiPhoneを事前にペアリングしないと使えないことを突き止めるのに少し時間がかかりました。
AndroidはデバックモードとUSBデバックを端末側でONにすれば、USBにさしてすぐに実機確認ができます。
しかし、xcodeではペアリングの他にプロファイルのコピーを完了させたうえに、iPhone側でプロファイルを信頼しなければ実機確認できないため戸惑いました。
1週間で作ったアプリが無効になる
作ったアプリはスマホ側に残りますが、起動できる期間が決まっていることも戸惑いポイントでした。
Androidには特に起動できる期間は決まっておらず、過去に作成したオリジナルのアプリをワンクリックでいつでも起動できます。
しかし、iOSではそこも厳格に定められており、1週間前に作ったアプリをクリックしたところ「起動できません」とポップアップが出現して起動できませんでした。
またxcodeでビルドすれば動くようになりますが、ここでOSの違いを強く実感しました。
今後のキャリアのために
少しだけSwiftUIに触れただけでしたが、Androidとの違いを色々感じることができた良き体験だったと考えています。
SwiftUIでアプリをビルドするにはMacが必要ですが、つい最近まで私は持っていませんでした。
正直Macbookはかなり高くて、私が以前購入した大きなデスクトップ型のゲーミングパソコンと価格がほぼ同じだった時は息が詰まりそうになりました。
しかし、今回の出費は決して悪いものでなかったと思えています。
買っていなければ、こうした体験はできませんし、この記事を書くことができませんでしたから。
今後のキャリアのために両方のOSの経験を積んでいくつもりです。