ポスト
ribi's rain
Cancel

Swift で数値を高速的に読み込む方法

背景 競技プログラミングや、データファイルを読み込む場面で、文字列を数値配列に変換する必要がたまにあります。データ量が大きくなると、違う読み込む方法の速度の差も大きくなるため、この記事では、筆者は様々な方法を試して、最速の1つを探求していこうと思います。 やることは、Swift で、"45 90 20 86 77 12"のような文字列を、[45, 90, 20, 86, 77, 12] 配...

クックパッドでインターンしました

2021 年 4 月から 6 月中旬まで二ヶ月半の間、クックパッドの就業型インターンシップに参加しました。その振り返りをこの記事に残します。 仕事内容 所属はクックパッド iOS アプリの買い物サービス開発部です。 買い物サービスというのは、クックパッドレシピアプリの中に、生鮮食品EC「クックパッドマート」サービスを使う機能です。私は買い物サービスに携わり、主に SwiftUI による機...

【SwiftUI】OptionalObservedObject の実現

SwiftUI のデータバインディング用の各 Property Wrapper の中に、@ObservedObjectというものがあります。@ObservedObject は ObservableObject に準拠するオブジェクトを包装し、データ更新を自動的に UI に反映させることができます。 今、ある ObservableObject だけに依存するUI画面ができたと仮定します。ただ...

個人アプリ「デレガイド」の紹介

デレガイドは、スマホゲームアイドルマスター シンデレラガールズ スターライトステージ (デレステ)のサードパーティツール iOS アプリです。カード図鑑、ライブシミュレーターなどの機能を付いています。 現在、App Store にてリリースされ、4.9 星評価・600 件以上のレーティングをいただきました。また、アプリに関する告知やアプデ情報は @dereguide2 にて発信しています。...

直感で性能改善をするな!

最近『A Philosophy of Software Design』という本を読み終わって、個人的な感想を軽めに呟きたいようになりました。この記事が感想文の一つであります。この本は、コードの複雑度(complexity)を減らすために、エンジニアが日々の開発で注意を払うべきことを述べています。おすすめします。 例 まず実際に起こった事例を見ましょう。 問題 以前の記事でも話したんですが...

Swift の乱数生成が遅い?

問題 自作アプリでシミュレーションシステムを開発する時、こんな要件がありました: カードの特技がある確率で発動することにして、実際に発動するかどうかをシミュレートしてください。だが、シミュレートの回数が合計ほぼ百万回に近い。 言い換えると: ある事象の発生確率は rate であり、その事象の発生状況を百万回シミュレートしてください。 最初は Swift 4.2 から提供された Rando...

Swift でアプリ内アイテム絞り込みの話

前書き こんにちは、リビリンです。日本語も記事書きも初心者です。 この記事は関数型プログラミングを中心とした、 iOS アプリ内アイテムの絞り込みシステムの作り方を紹介します。 課題 こういった場面を考えましょう。 あるソシャゲの中に、カードというものがあります。カードには名前、レア度、特技などの様々な属性がついています: class Card { let name: Stri...