今回から新しい技術書を始めました!
出来るようになったことを列挙すると、
- 画面遷移とビュー同士の変数の受け渡し
- 3項演算子による状態切り替え・アクション処理
- ボタンのアクション処理とステートの管理
- ビューのアニメーション
こんな感じです。
ただこれだけ見てもなんだかわからないと思うので、実物を用意しました。
学んだことを総結集して作ったアプリがこちらです。
そこで今回は、
- 開発手法をStoryboardからSwiftUIに乗り換えて良かった点
- SwiftUIを学んだことで見えてきたもの
について書いてみようと思います。
Storyboardとは全然違う!コーディングができる、できる!
やはりコーディングができるというのはすごく良いものですね。
前回の記事ではStoryboardを使った開発に対する不平不満が満載でしたが、それが取り除かれた喜びはとても大きいです。
Storyboardと普通のプログラミングのいいとこ取りができる
SwiftUIをXcodeで使っていて思うのは、これはうまいこといいとこ取りしたな、ということです。
Storyboardのように画面クリックによる設定もできるのですが、すごいのはその設定がリアルタイムでコードにも反映されるというところ。
ドラッグアンドドロップも一応出来るんです。(私はほとんど使っていませんが)
Stoyboardのいいとこを引き継いで、キーボードでのコーディングになれていない方にも優しい仕様になっていると思います。
Storyboardとの違いとしては、やはりカスタマイズの自由度が高いことが挙げられると思います。
Storyboardでは部品を組み合わせることしかしませんでしたが、SwiftUIではそれに加えて、部品自体を改造できてしまうんです。
(おそらくStoryboardでもある程度はできると思うのですが、ブラックボックスが多くて扱いにくいものになる気がします。)
そしてなにより、「プログラミングをしている感」がすごい!
自分がコードを書き込むと、それが即座にプレビューに反映されるのもとても楽しいです。
いろいろいじって変えてみる、実験がとてもスムーズにできます。
「ここをこうするとどうだろう?」と思ったら、それをすぐさま実行できる。
この楽しさは、動画を見ていただければ感じていただけるのではないでしょうか。
とにかく楽しいです!
シンプルな記述でいろんなことができる!
SwiftUIの良いところはそれだけではありません。
とにかく、シンプルな記述でいろいろなことができるんです。
例えばたったこれだけのコーディングで、こんなものを作れちゃいます。
これを進化させたのが冒頭の動画です。
画面遷移もシンプルに記述できちゃいます。
SwiftUIの良いところについては以上です。
アプリ開発に必要なのは「モダンなフレームワークの知識」
SwiftUIを学んでいるうちにいろいろ見えてきたことがあったので、ついでにそれもまとめてみます。
新しい本で勉強していてなによりも印象に残ったことは、
今までのプログラミングでは遭遇しなかった新しい概念が盛りだくさんだったこと、です。
それもそのはず、SwiftUIはどうやら「モダンなフレームワーク」というのに分類されるらしいのですが、
私はこの”モダン”というものに今まで触れてこなかったんです。
右も左もわからないまま学習を始めたのですが、このモダンなフレームワーク、とても便利に体系化されているではないですか!
私はこんなに便利なものを知らずに、「これまでも自分用のソフトウェアをプログラミングをしてきた」なんて言っていたんですね。
恥ずかしく思えてしまいます。
まぁそこまで複雑なプログラムを書いたことがなかったので当然といえば当然なのですが、、
思えば私は今まで、基礎となるアルゴリズムの勉強しかしていませんでした。
並べ替えアルゴリズムや巡回セールスマン問題などといったものです。
他にもオブジェクト指向の勉強もしてはいたのですが、それも自作ソフトという小規模な開発ではたかが知れたもの。
これらは確かに勉強にはなったのですが、アプリ開発には直接役に立たないものだったんです。
基礎アルゴリズムの知識というのはあくまで部品を作るための技術であって、部品を使うための技術とは全く異なります。
例えるなら、モダンな開発が「自動車を運転する技術」だとすると、
基礎アルゴリズムの知識は「自動車を作るための機械工学」のような感じでしょうか。
機械工学を勉強していても自動車を運転できるようになるわけではないように、基礎アルゴリズムの勉強をどれだけしてもモダンな開発はできるようになりません。
そして、それ自体は薄々感じていたことでした。
以前の記事にも書いていたように、私は漠然と、
アプリ開発に必要なのは「プログラミングの知識」とは別のものなんだろう、
と思っていました。
個々のライブラリの知識のほうがよっぽど重要なんじゃないか、と。
しかしこれはちょっと間違っていたみたいです。
たしかに、ライブラリの知識が重要だというのはそのとおりでした。
ただ、このライブラリの知識というのは、個別的なものではなかったんです。
どういうことかというと、アプリ開発で使うライブラリは皆、
「モダンなフレームワーク」という共通の設計思想のもとで作られている、ということです。
このモダンなフレームワークというのは、おそらく言語の違いにとらわれない、歴とした「プログラミングの知識」です。
以前の私の中では、プログラミングの知識といえば基礎アルゴリズムの知識(あとはオブジェクト指向プログラミングの知識)でした。
これ以外の知識は言語特異的な、個別的なものだと思っていたのです。
しかし、SwiftUIを勉強して視野が広がっていく中で、「モダンなフレームワーク」というのもまた「プログラミングの知識」なんだということに気づきました
どの言語を使うにしても、全てのプログラミングの基礎となる知識です。
そうすると、これからアプリ開発を学ぶ者としてはとても助かります。
おそらく、SwiftUIで学んだ知識は、基本的には他の言語にも応用できるはずです。
アプリ開発をするには、このモダンなフレームワークというものを学ぶべきなんだな、というのが見えてきました。
これを実感できたのはかなりの収穫です。
この先、勉強を進めていくのがますます楽しみになりました。
また、「ここまで出来ることが広がったら、そろそろ本格的なアプリも作れるのではないか、、?」
という気もしてきたので、次回からはとりあえずToDo listアプリを作ってみようと思っているところです
参考文献
今回から使っているこの本、とってもおすすめです。
基礎から積み上げていくのにはもってこいだと思います。
このブログの冒頭に載せたコーディング動画は、この本に書いてあった知識のみで作ってあります。
私はもともとプログラミングをかじっていたとはいえ、あのくらいなら誰でもすぐに出来るようになると思います。
おしまい
コメント