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

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

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

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

マジで最初から Swift で iOS アプリ作る
https://si-partners.net/blog/swift-ios-01.html

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

今日の要点は

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

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

プロジェクト作成する

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

Hello World を変更する

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

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

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! に変更されていると思います。

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

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

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

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

Editor -> Canvas

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

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

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

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

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

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

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

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

signalcompose/Swift_UI_Tutorial:
https://github.com/signalcompose/Swift_UI_Tutorial

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

シグナル・コンポーズでは音楽制作、Max/Max for Liveデバイス制作など、各種テクニカルなコンサルティングやディレクション、R&D、プロトタイピング、制作などお受けしています。何かあればお気軽にお問い合わせください。よろしくお願いします。

leico の興味関心、個人的な調査結果などをまとめたページはこちらです。
Technical Note:https://leico.github.io/TechnicalNote/

  

執筆:大石桂誉

タグ:
iOS

関連記事

前の記事へ

マジで最初から Swift で iOS アプリ作る

次の記事へ

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