レギュラートーク(20分)

あらゆる情報を楽に正しく String にフォーマットする - 令和2021年から脱却せよ iOSDC Japan 2021

4
treastrain treastrain / Tanaka Ryoga treastrain

私たちは常日頃、日付や時刻、時間、数字、名前などを表示するために、最終的に様々な情報を String に変換しています。
その際に便利な API が Formatter です。Date を String にする DateFormatter が良く使われる一例ですが、実は真の力はそこにとどまりません。

数字を3桁おきに 「,」を入れた表示をしたい
「0.85」を「85%」と表示したい
「+200」を「△200」としたり、「-1700」を「(1,700)」と表示したい
1日前を「昨日」、2日前を「一昨日」、1ヶ月後を「来月」と表示したい
134217728バイトを「134.2 MB」のように表示したい
68°F を 20℃ と表示したい
[“りんご”, “バナナ”, “オレンジ”] の Array を「りんご、バナナ、オレンジ」のように「、」で連結して表示したい
しかし英語の場合は「Apple, Banana and Orange」と表示したい

…これらを実現するために独自で実装を行っていませんか?
コーディングのトレーニングのために独自実装する分には問題ありませんが、実プロダクトでは工数がかかるだけでなく、考慮漏れ、特に地域差を考えずコーディングすると問題になります。

普段の開発で想定されるようなフォーマット事例には、実はすでに対応する Formatter が OS 標準で用意されていることが大半です。
このセッション(20分版)では標準で用意されている Formatter のすべてと、よく使われる事例に絞った使用例、絶対にしてはいけない使い方を紹介します。

誤った使い方をすると、あなたも「令和2021年」に飛ばされますよ…

Happy Formatting!