DIG IT

エンジニア、iOS、個人開発、日々考えていること etc

SwiftUIで個人開発アプリをリリースしました

先日、SwiftUIで作ったiOSアプリをリリースしました。

昨年の年末くらいからSwiftUIを学び始めて、週末に少しずつ開発していたので、無事リリースできて良かったです。

今回はSwiftUIでの個人開発についての知見や感じたことをまとめてみます。これからSwiftUIでアプリを作ってみたい方の参考になればうれしいです。

リリースしたアプリの概要

まずは簡単に僕が作ったアプリの紹介です。

Astrum

Astrum

  • Akihiro Ihara
  • ライフスタイル
  • 無料

apps.apple.com

“Astrum“は、一言で言うならデスク周りのガジェットを管理するアプリです。僕はガジェットを集めるのが好きなので、持っているガジェットや欲しいガジェットを管理できるアプリが欲しいと思って作りました。

作ったきっかけ

SwiftUIについて学びたいと思ったことがきっかけです。僕はチュートリアルや本でサンプルコードを書くよりも実際に好きなものを作る方が好きなので、このやり方を選びました。やりたいことありきで技術を学ぶ方が、より実践的で幅広く知識を吸収できると思っています。

SwiftUIで作ってみてどうだった?

SwiftUIについてはほとんど何も知らない状態で作り始めたので、「SwiftUI難しいな〜」と思いながら開発を進めていました。とはいえ、便利なサービスや技術記事が溢れているので、開発に行き詰まることは少なかったです。レイアウトについてはUIKitよりもシンプルに書けて楽しかったです。(でもやっぱりSwiftUIは難しい。)

SwiftUIのここが難しい

SwiftUIはモディファイアを色々知っていると、実装の幅が広がって開発も捗るのですが、僕の場合はモディファイアの使い方に慣れるまで時間が掛かりました。

tech.amefure.com

モディファイアは書く場所や順番によっても設定が反映されない場合があるので、書き方に慣れるまでは少し難しかったです。下記はその一例です。(alertモディファイアはtoolBarの中に書いてしまうと表示されない...。)

www.choge-blog.com

モディファイアは既に沢山ありますし、iOS16で新たに登場したものもあるのでキャッチアップが大変ですが、少しずつ覚えて快適に開発できる様になりたいです。探しているものが見つかるととてもうれしくなります。

また僕が今回作ったアプリは小さなアプリでコードも複雑ではないですが、アプリが大きくなってきたら、どこで何を管理するか等、しっかり設計を考えないとコードが複雑になりそうだなと思いました。(特に状態管理の部分)

モディファイアやコンポーネントをどこまで共通化するかについても、僕の場合はかなり悩みました。繰り返し使うタイプのものは、なるべくカスタムモディファイアを作っておいてシンプルに使える様にしたいですね。

UIKitを学ばずにSwiftUIでアプリを作り始めるのはどうか?

あくまで個人的な意見ですが、本格的にアプリ開発をしたいならUIKitの知識はあった方が何かとスムーズに開発できると思います。特にiOS14などをサポートしたアプリを作る場合は、UIKitで作らないといけない場面もまだまだあるので、UIKitについてある程度知識があった方が良いと思います。SwiftUIのレイアウトはシンプルに実装できて楽しいので、iOSアプリ開発を始める第一歩として触ってみるのは面白いと思います。なので、何を目指してアプリを作るかにもよるかもしれませんね。

その他の工夫したポイント

今回のアプリは特にデザインにこだわりました。開発のモチベーションを維持する上で、デザインにこだわることは重要だと思います。自分が好きなデザインにすると、毎日アプリを見たり触るのが楽しくなり、それが個人開発の継続に繋がります。

デザインに使ったツール

アプリアイコンやスクリーンショットにはKeynoteを使用しました。グラデーションもいくつか使っていますが、かなり細かく設定できてサイズ指定も簡単なので、デザインツールに慣れていない方にもオススメです。

SF Symbolsも上手に使えばそれっぽいデザインになります。

qiita.com

SF Symbolsを使った例

さいごに

色々書いてみましたが、実際にやってみるのが一番早くてSwiftUIの理解につながると思います。SwiftUIを学び始めたばかりでまだまだ分からないことだらけですが、この記事がSwiftUIを学びたいと思っている方の参考になれば幸いです。