iOS は Android OS に比べて、ユーザーの最新バージョンへの移行が早い。

また、来月早々には更新したいと思います。
iOS は Android OS に比べて、ユーザーの最新バージョンへの移行が早い。

また、来月早々には更新したいと思います。

case-less enum と private init() な struct。
enum Constants {
// no cases
static let animationDuration: TimeInterval = 1.5
}
struct Constants {
static let animationDuration: TimeInterval = 1.5
private init() { }
}
👉 `static let` in enum vs struct? - Using Swift - Swift Forums
enum の多用が目に付く Swift。
extention で、
extension TimeInterval {
static let animationDuration: TimeInterval = 1.5
}
とも書きたくなるけども。
方針をはっきり強制してもいいのでは、と思います。
新参組は悩みます。
👉 Swift constants: Struct or Enum - Stack Overflow
👉 Kotlin で Constants をどう書くべきか。
👉 Android で 定数 (int)で enum を使うことは
位置がタイムラインに正確に表示できてない。
設定を見てみると、

iOS デバイスで位置情報対応の Google アプリを使用して設定を変更してください
なんやこれ ?
Google マップ コミュニティで調べます。
タイムラインがいつのまにか記録されなくなり、調べたら「iOS デバイスで位置情報対応の Google アプリを使用して設定を変更してください」となっていて、使っているデバイスが選択出来なくなっていました。googleマップは今までと同じアカウントで同じアプリを使用してるのですが…どうすれば直るでしょうか?
👉 iOS デバイスで位置情報対応の Google アプリを使用して設定を変更してください - Google マップ コミュニティ
iPhone で。
設定
↓
プライバシーとセキュリティ
↓
位置情報サービス
↓
Google Maps

これでも、直らん。
精度 (細かさ) が落ちたんでしょうね。

また、AndroidとiOSでは、この元データのスポットの採取タイミングに違いがあり、Androidに比べてiOSのほうが取得頻度が低いため、類推するための情報が少なくなってしまい、余計に直線になってしまうことがあるような気がしています。
取得頻度は、過去は結構な頻度で取得されていたのですが、いま時点は非常に少ないと思います。
👉 タイムライン表示で、元データはスポットとして残っているのに大部分が経路として参照されず、数点を直線で結んでしまうのはなぜでしょう。 - Google マップ コミュニティ
ここでも、また、悲しい感じとなってますね。
「iOS デバイスで位置情報対応の Google アプリを使用して設定を変更してください」 は消すことができませんし。
2つあるけど、どっちを使うか。
どっちから使っていくか。
"1 2 3".split(separator: " ")
// ["1", "2", "3"]
"1 2 3".components(separatedBy: " ")
// ["1", "2", "3"]
split のほうが短いし、分かりやすくね?
" 1 2 3 ".split(separator: " ")
// ["1", "2", "3"]
" 1 2 3 ".components(separatedBy: " ")
// ["", "1", "2", "3", ""]
"1 2 3".split(separator: " ")
// ["1", "2", "3"]
"1 2 3".components(separatedBy: " ")
// ["1", "", "2", "", "3"]
"123".split(separator: " ")
// ["123"]
"123".components(separatedBy: " ")
// ["123"]
"1 2 3".split(separator: "23")
// ["1 2 3"]
"1 2 3".components(separatedBy: "23")
// ["1 2 3"]
"1 2 3".split(separator: " ")
// ["1 2 3"]
"1 2 3".components(separatedBy: " ")
// ["1 2 3"]
"123".split(separator: "")
// ["1", "2", "3"]
"123".components(separatedBy: "")
// ["123"]
"1 2 3".split(separator: "")
// ["1", " ", "2", " ", "3"]
"1 2 3".components(separatedBy: "")
// ["1 2 3"]
" 1 2 3 ".split(separator: "")
// [" ", "1", " ", "2", " ", "3", " "]
" 1 2 3 ".components(separatedBy: "")
// [" 1 2 3 "]
" 1 2 3 ".split(separator: "")
// [" ", " ", "1", " ", " ", "2", " ", " ", "3", " ", " "]
" 1 2 3 ".components(separatedBy: "")
// [" 1 2 3 "]
"".split(separator: " ")
// []
"".components(separatedBy: " ")
// [""]
"".split(separator: "23")
// []
"".components(separatedBy: "23")
// [""]
"".split(separator: " ")
// []
"".components(separatedBy: " ")
// [""]
"".split(separator: "")
// []
"".components(separatedBy: "")
// [""]
"123".split(separator: "123")
// []
"123".components(separatedBy: "123")
// ["", ""]
"123".split(separator: "23")
// ["1"]
"123".components(separatedBy: "23")
// ["1", ""]
" 1 2 3 ".split(separator: " ")
// ["1", "2", "3"]
" 1 2 3 ".components(separatedBy: " ")
// ["", "", "1", "", "2", "", "3", "", ""]
それぞれ他にも引数はいろいろあるようですが、
components(separatedBy:)
のほうがはっきり明快で分かりやすいように思えますが。
" 1 2 3 "
.split(separator: " ") // ["1", "2", "3"]
.joined(separator: " ") // "1 2 3"
" 1 2 3 "
.components(separatedBy: " ") // ["", "", "1", "", "2", "", "3", "", ""]
.joined(separator: " ") // " 1 2 3 "
将来的にどうなるのか。
👉 【Swift】なんとなくメソッド名が長い気がする
👉 swift - component(separatedBy:) versus .split(separator: ) - Stack Overflow
非同期処理 や Observable クラスの確認です。

Timer クラスというのがあるようなので
それもやって比較してみました。
マクロ @Observable ひとつだけで書けるようになったんですね !

👉 【SwiftUI】今どきの データモデル (Model data) のマクロ記述 📝
👉 Migrating from the Observable Object protocol to the Observable macro | Apple Developer Documentation
macOS で ビルトインの Timer クラスが30秒につき7秒ぐらいも遅れる。

なんでなんやろ ?