他言語から初めてSwiftを使うとき知っておくべきこと【随時更新中】

Swift : スズキの自動車、オートバイも製造しているメーカ故N/Aで良く回りそう。。。ではなくPG言語らしくない紛らわしい名前です。Xcodeのメイン言語、C#/Javaより少しシンプルでちょっとVB6っぽい感じもします。やりたいことからコードの書き方の解説、ゼロからの解説WEB記事は多数ありますが、当方は他言語と違うとこだけ端的知りたい。それらをまとめてみました。

特別な記号や表現

変数の末尾の「 ?nullを許可するの意。非許可変数間で直接値は渡せないので要注意。逆に? 無し変数でnull判定するとエラーになってしまいます。
変数の末尾の「
nullを許可するの意。? 」の違いは理解していませんが、別の型として扱われるとのこと。
引数の前の「 _省略が可能な引数を示す。C++のようにデフォルト引数値があるのかは知らないです。
関数の「 ) 」に続く「->リターン値の型。世界標準に反しています。C# の「=>」ように特殊なのかと思いましたがそうではなかった。
nilNULL/nullの意。連想つきますがWEB検索すると他の用語が沢山でてきます。
@State簡単にいうと値が変化するクラスメンバ変数の模様。
var変数宣言。これはなぜか普通。
let 定数宣言。VB6のLetプロパティとは違う。
print()等への改行コードMAC上で “¥n” では改行コードと扱われず、「\」のキー位置ほ探して「\n」を打つ必要がある。

Framework(?)

大きく2つあるようです。100%互換は無いようで、WEB記事を見るときはどちらで書いてあるか確認する必要があります。

SwiftUI最近のヤツらしい。標準クラス名が下のとだいぶ違うようです。
Swift Storyboardシナリオっぽいネーミングなので部分機能かと勘違いしています。

コード構造(SwiftUI)

  • まず画面クラスがStructで始まり困惑する。class と同意と考えてよい模様。
  • 行末の「 ; 」はない。
  • 画面定義と処理部が混在する構造。
  • Namespace はあるのかよくわからない。
  • switch defalut 無いとビルドエラーとなる。
  • スクリプト言語っぽいが、文字列に数値を結合するときは明示的に変換( String(数値) )が必要。
  • new は無い模様。
  • 初期化していないクラスメンバがあると、init() メソッドでエラーがでる。

IDE

総じて、KB配置の制約も含め、Windows PCからクロスプラットフォームで Visual Studio を使う方が効率が高そう。未だ理解不足ですが以下の課題があるようです。

  • Visual Studio Android Studio のように、画面を画面エディタで編集できない。Swiftエディタ側でGUI手入力する必要がある。(X-Windowが出始めの1990頃 OSF/Motif でGUIコードを書いていたころに比べればマシではあるが、、、VC++6時代MFCでも100%ではないが画面エディタで編集できた。イマドキ何故? ) 尚、Visual Studio Xamarin / .NET MAUI を使用したときも同じ(これはMAC側に合わせたせいかな?)。しかしこっちは画面定義は別ファイル。
  • GUIプロパティもSwiftエディタ側で手入力する必要がある。Visual Studio Android Studio はプロパティウインドウで、全プロパティが表示され、そこを変更することができる。Visual Studio Xamarin / .NET MAUI を使用した時は、これができるので、MAC上できないことではない。
  • まず GUIを選択するToolBox をどこから開くの分からない。画面エディタの少し離れた右上隅の小さな「」をクリックするのですがこんなの分からない。 Visual Stduioも Adnroid Stduio もメニューや明らかに分かるアイコンやメニュー項目が設置されている。あえて隠している?
  • GUIのプロパティが全てプレ表示されない。何のプロパティがあるか別で調べないといけない。
  • ポチ「.」入力時の自動メンバ表示は一応ある。メソッドのcallingシーケンスまでは出ない。
  • メソッドやプロパティのに、マウスオーバしてもヒント的なも、定数値、型などのが表示されない。
  • 標準のメソッドやプロパティのヘルプは、左クリックメニューからメソッドの説明は呼び出せるがマウスを介すため、Visual StudioF1ヘルプキーよりムダ時間食う
  • iPhone/iPadの実機デバッグ時、プログラムの起動は端末上手動で行う必要がある。Visual Studio For MAC では IDEから起動できる。停止は何故か IDE から可能。
  • デバック時の Brakepoint の挙動が不正確Visual Studio For MAC では正確なので何故。
  • Eclipse Visual Studio と同様に、コード間違いがリアルタイムにエディタに表示されるが、3、4秒遅れる。間違いを直す度に、その遅れ時間分、待たないといけない。さらにムダ時間を食う。
  • デバッグ時、 iPad / iPhone とWi-Fiで接続可能。一度USB接続でXcodeに認識させておく必要あり。MACmini で Xcode を動作させ、リモート操作しているとき、手元に端末を置いておけるので便利。Xamarin も出来るようですが Microsoft の説明ページに飛ばされるので、読むのが面倒なので控えてしまいます。
  • 日本語化されていない。分かってはいてもやはり目に入りにくい。
  • vi modeが標準装備されている。VS for MACのプラグインは日本語入力が狂うが、こちらは割と大丈夫。 vi modeは対応しているのは基本操作程度で未対応が多い: w (上書き)、:行数(行ジャンプ) 使えず、(繰返し)使えず、yw (ワードコピー)は使えたものの Word数yw (ワード数指定コピー)はできない。( iOSもMACOSもUNIXベースなのに、、、AppleはこれでUNIXユーザ/UNIX育ちが満足すると思っている? )

Xcode / swift は本体の開発体制的な問題か、設計ポリシーかは不明です。しかし Xcode / swift はMACに無料でついてくるという差ではプライベータには有益。(とおもったがAndroid Studio もフリーだ)


中々慣れを要します。随時更新中です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です