見出し画像

マジで最初から Swift で iOS アプリ作る (Hello SwiftUI!)

こんにちは。 Signal compose の leico です。前回は

・Swift のプロジェクトを XCode で作成
・そのプロジェクトのビルドが通る

ところまでを行いました。

今回はいよいよコードを触っていこうと思います。 先のWWDCで盛り上がった Swift UI で書いていきます(要 macOS 10.15 Catalina + XCode 11.3)。
今日の要点は

・人間は間違ってばかりで
・コンピュータは融通が利かない石頭
・コンピュータも死にたくないので死ぬ前に文句を言う

ってところです。それではいってみましょうか。

プロジェクト作成する

前回のプロジェクトを書き換えてもいいのですが、コードの変遷が git 使いこなさずとも追えるように、新しくプロジェクトを作成しておきましょう。
02_Hello_SwiftUI などはどうでしょうか。以下貼られている画像ではもう1トピック進める予定だったので名前が異なります。

Hello World を変更する

まずは表示されている文字列を変更してみましょう。 変更する箇所は ContentView.swift の `Text()` の中です。
中の Hello WorldHello SwiftUI! に変更します。

スクリーンショット 2020-02-03 15.19.35

変更の際、最後の「"」が抜けてしまうと

Cannot invoke initializer for type 'Text' with no arguments
Unterminated string literal
初期化呼び出しに失敗。 'Text' に引数がないよ。
 文字列の終わりが見つからない、つまり最後の 「"」 が見つからないよ。

また、始まり、終わり共に「"」が抜けていると

Expected ',' separator 
Use of unresolved identifier 'Hello'
コロン忘れてませんか?
みつからない指定子 ‘Hello’ がありました。

またまた、最後の「)」を忘れていると

Expected ')' in expression list
閉じカッコ忘れてませんか?

などなど、コンピュータから注意を受けます※。 プログラミングを行っていると、こういうのは日常茶飯事です。 ほぼ書いている人間側の問題なので、こういうエラーが表示された時は、 注意深く何か足りてないんじゃないか、何か書き方を間違えているんじゃないかと自分を疑ってください。 1文字でも間違えていると注意してきます。「.」とか「,」とか見落としやすいです。
あと、コンパイルエラーでコンピュータが壊れることはないので安心してください。

無事更新が行われると再生ボタンで実行した時に、シミュレータに表示される文字列が Hello SwiftUI! に変更されていると思います。

スクリーンショット 2020-02-03 15.02.46

※ 専門用語で syntax error、 日本語にすると構文間違いとなるでしょうか。

Canvas のほぼリアルタイムプレビュー

この画像のように、ソースコード右側に何か空白がありませんか?

スクリーンショット 2020-02-03 15.38.16

じつは、ここでリアルタイムに実行結果をプレビューすることができます。

スクリーンショット 2020-02-03 15.40.09

このように、ソースコードだけ表示されている方は

Editor -> Canvas 

のチェックボックスを確認してみてください。チェックが入っていない or 同区画の別項目にチェックが入っていると表示されていないと思います。

スクリーンショット 2020-02-03 15.41.37

表示がされたら右側上の Resume を押してみましょう。

スクリーンショット 2020-02-03 10.48.32

シミュレータのような画面が表示されたと思います。

スクリーンショット 2020-02-03 15.46.22

`Text()` の中身を Hello SwiftUI!! に変更してみましょうか。
変更点が分からないですかね。1文字増やしています。探してみてください。コードの間違いを探す訓練のようなものです。

変更を加えると即座に右側へ反映されます。

スクリーンショット 2020-02-03 15.48.57

変更点の答えはトップ画です。

プロジェクトのリポジトリ

ここまでの更新を反映した github のリポジトリはこちら

ご依頼/相談/お問い合わせ

シグナル・コンポーズでは音楽制作、Max/Max for Liveデバイス制作など、各種テクニカルなコンサルティングやディレクション、R&D、プロトタイピング、制作などお受けしています。何かあればお気軽に `info[at]signalcompose.com` にお問い合わせください。よろしくお願いします。会社概要等は以下のサイトをご覧ください。

leico の興味関心、個人的な調査結果などをまとめたページはこちらです

また、作曲チームが昨年はこんなアルバムのリリースもしています。

次のM3(3月)にも参加の予定です。音楽系のポートフォリオも以下で纏めてありますので、ぜひご覧ください。音楽制作は広くやっていきますのでお気軽にご連絡ください。


この記事が気に入ったらサポートをしてみませんか?