Apple APIの話です。
専門性もなく、所感を綴るのみであり、誰かの知的財産になり得るものではありません。
雑多なメモです。
しかし事実と異なる点があれば指摘くれると嬉しいです。
deprecatedってなんなの?
まず読み方がわかんないよ。
一応、デプリケイティッドと読んでます。
意味は廃止です。
depreがガラクタといった意味があるのではないでしょうか?
プラネテスという漫画で宇宙に漂う宇宙ゴミをデプリと称していました。ゆえに、de/precatedではなく、depre/catedと分解して解釈するのが、わたしの推論です。
根拠は先程のプラネテスのみです。
なんでAPI、deprecatedにしてしまうん?
節子みたいな表題になってしまったが、Appleはなんでせっかく作ったAPIをdeprecatedにしてしまうんでしょうね?
いや、もっとええもん出来たからやろとか、前のやつは、いろんな法律の兼ね合いで使ったらあかんなったからやろとか色々あるとは思うんですよね。
しかしですよ。
なぜそれにiOSエンジニアは戦々恐々とするのでしょうか?
そちらこそ問題なんですよ。
面白いですよね。
たった一つの会社の言いなりになって、ものづくりに励むんですよ。
弱者と称されるにふさわしい働き方です。
このAPIは、どうして動くの?
そんななか、不思議なAPIに出会いました。
deprecatedとリリースノートで処刑予告されたのに、動くんです。
ゾンビでしょうか?いえ、APIです。
節子、それおはぎや無い、おはじきでもない、APIや。
清太のツッコミは、上流家庭の御子息ということもあって、弱いっすね。
動かないAPIと動くAPIは何が違うの?
動かないやつは、処刑される日が明記されています。
こっちが処刑されたやつです。
13で導入したけど16では動かないって書いてます。
@available(iOS, introduced: 13.0, deprecated: 16.0, renamed: "UISceneSession.Role.windowExternalDisplayNonInteractive")
こっちは、オルタナティブな処刑ですね。
実際には無罪放免とちゃうんか?
@available(iOS, introduced: 2.0, deprecated: 100000, message: "Use nw_connection_t or nw_listener_t in Network framework instead")
いえ、文字通りに解釈するとiOS100000のときに廃止されますね。
結構先ですね。私の曾孫かやしゃ孫に伝えたとしても、顛末を知りたい私の気持ちを引き継いでくれる人は見つかりっこないでしょうね。
でも、めんどくさいときはこういう文脈を使えばいいんだと思うと、後学になりますね。
どうして削除したりするの?
そういえば、iOS17リリースくらいのタイミングで削除されたAPIもありました。
こういうドキュメントは残すもんじゃないのかと思いましたが、
NewsStandは失敗したから黒歴史みたいなもんなんですかね。
消してましたね。
検索しても見つけられないしURLしたりしてもNotFoundでした。
突然、deprecatedに遭遇した与太話
よくも見つけたなというdeprecatedを1件見つけたことがあります。
自分でもこれはよくやったなと思います。
自分のどこまでもどこまでも調べる粘着質な性格が功を奏したと思います。しかし、保険の保険のような検査のためのフラグだったので、チームの中では褒めてもらえませんでした。
まとめ
Vision関連のAPIも面白かったです。
まとめる気もないなんて、雑記の中でも雑魚すぎるだろこれ。