「iOSから連絡先をサーバーに同期させたい」 用件を受け、iOSにはContact APIがあるから楽勝でしょ、と思ったあなた。 しかしながら連絡先の構造はそんなに簡単なものではありません。 ミドルネーム?Suffix?振り仮名?旧姓? そんなハマりやすい連絡先処理の説明やVCard変換など、 サーバーのテーブル設計にも役立つiOSのContact APIについてお話しします。 (Androidの連絡先にも若干触れる可能性あり) iOSDC 2020
![あなたの知らない連絡先の世界](https://cdn-ak-scissors.b.st-hatena.com/image/square/c837c6ce21a1a2cc405345870a12a4cf465907e7/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F0cc6cd98e0114b0bb60482db0476cbe0%2Fslide_0.jpg%3F16303201)
TypeScript に bivarianceHack と呼ばれるテクニックがある。 これは、関数を意図的に双変(bivariant) にするテクニックだ。著名なところだと React の型定義で使われている type EventHandler<E extends SyntheticEvent<any>> = { bivarianceHack(event: E): void }["bivarianceHack"]; 実は自分はこのテクニックをとあるコードベースで使ったことがあるのだが(そしてそこにはある程度やむを得ない事情があったのだが)、当然初めて見たメンバーにとっては意味がわからない箇所となってしまった。 実際 bivarianceHack が必要になる事情を説明すると結構話が長い上に込み入ってしまうので、この記事でできるだけ噛み砕いてその背景を説明しようと思う。 TL;DR Type
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く