Google Swift Style Guide

https://google.github.io/swift/

Google は Swift のコーディングガイドラインを公開している。Lint のルールが決まっていない、指標になる標準的なルールを探している場合、このガイドを参考にすると良いと思う。

以下、いくつかルールを紹介する。

空白文字

https://google.github.io/swift/#whitespace-characters

空白文字には半角スペース(U+0020)を使用する。
タブ文字はインデントに使用しない。

列の制限

https://google.github.io/swift/#column-limit

一行のコードは100文字が制限。ただし、例外もある。

例外)

  • 1行である必要があるテキスト(例:コメント内の長い URL)
  • インポート文
  • 別のツールによって生成されたコード

セミコロン

https://google.github.io/swift/#semicolons

ステートメントの終了にセミコロンを使用しない。つまり、セミコロンを使用するのは、文字列リテラルかコメント内だけになる。

プロパティ

https://google.github.io/swift/#properties

タプルをのぞき、 let, var で宣言できる変数は1つのみとする

// これは NG
var a = 5, b = 10
// これは OK
var a = 5
var b = 10

let (quotient, remainder) = divide(100, 9)

グローバル定数

ほかの変数の同じようにローワーキャメルケースで命名する。また、g や k で始まるハンガリアン記法は使用しない。

// これは OK
let secondsPerMinute = 60
// これは NG
let SecondsPerMinute = 60
let kSecondsPerMinute = 60
let gSecondsPerMinute = 60
let SECONDS_PER_MINUTE = 60

xxHash v0.7.2 リリース

https://github.com/Cyan4973/xxHash/releases/tag/v0.7.2

これは 2019/10/8(JST)にリリースされた xxHash v0.7.2 についてのメモである。

リリースノート(意訳)

xxHash v0.7.2 は新しい 128bit ハッシュのためのメンテナンスリリースである。

XXH3 にはまだ Experimental(実験的)というラベルがついていることに注意してください。
また、このバージョンとこれまでのバージョンの戻り値は、互換性がないことに注意。

以下、詳細。

  • 特定の長さの入力に対する衝突率を修正
  • VSXMEON の改良
  • XXH_VECTOR=0 の場合のコードパスの改良
  • xxhsumコマンドライン・ユーティリティ)
    • -H2 で 128bit ハッシュを生成できます(しかし、128bit ハッシュはまだ開発途中のため、実験目的であることに注意!)
    • -q オプションでステータスの通知を削除できます

SwiftUI List の色を変更する

例えば、こういったコードで

List {
  Text("Melon")
    .listRowBackground(Color.green)

  Text("Banana")
    .listRowBackground(Color.yellow)

  Text("Apple")
    .listRowBackground(Color.red)

  Text("Prune")
    .listRowBackground(Color.blue)

  Text("Grape")
    .listRowBackground(Color.purple)
}
.foregroundColor(Color.white)
.onAppear {
  UITableView.appearance().backgroundColor = .lightGray
}
.onDisappear {
}


こんな感じで、項目(Row)の背景色と、リスト自体の背景色が変えられる。


List の背景は appearance を使用する以外に、簡単に変更できる方法はないのかしら。。



補足。
このサンプルのプロジェクトは GitHub にある。
https://github.com/daisuke-t-jp/SwiftUIListColorSample


Mac の Apple Developer Seed Program を解除する

macOS 10.15 Catalina 正式版がリリースされたので beta や GM をインストールするために登録していた Seed Program を解除する。
手順は以下。

f:id:daisuke-t-jp:20191010041015p:plain:w500

メニューから「この Mac について」を開く。
「ソフトウェア・アップデート」ボタンをクリックする。


f:id:daisuke-t-jp:20191010040758p:plain:w500

ソフトウェア・アップデートのウインドウが開かれる。
「このMacApple Developer Seed Programに登録されています」の下にある「詳細」をクリックする。


f:id:daisuke-t-jp:20191010041224p:plain:w500

確認のウインドウが表示されるので「デフォルトに戻す」ボタンをクリックする。これで OK。

SwiftUI Text で文字列リテラルを扱う

Text("あ")

だと以下のビルドエラーが出ることがある


'(LocalizedStringKey) -> Text' is not convertible to '(LocalizedStringKey, String?, Bundle?, StaticString?) -> Text'


なのでこっちを使う

Text(verbatim: "あ")

init(verbatim:) - Text | Apple Developer Documentation

これでエラーが消える


・・・補足・・・

今は下の環境で試しているが

上記ビルドエラーが出る箇所と出ない箇所があり、安定していないのか、そこのところが不明確・・・