編曲:鈴木俊介ハロオタ、津野米咲(赤い公園)の初提供曲。良くも悪くもハロプロ、つんくに縛られまくってる、けど良い曲。校庭カメラガールツヴァイ名前は略してコウテカ、オウテカっぽい名前にしようと決められた。2014年から(当時は校庭カメラガール)から始まったが、とにかくメンバーが辞める、グループ名が変わる。クラブミュージックベースとラップで曲はずっとかっこよかったので終わらないで欲しかった。BOY~そよ風に寄り添って~』を思い出した。3776説明不要の富士山ご当地アイドル3776。(3776を聴かない理由があるとすれば)を聴こう。ototoy.jpそんな3776が新宿LOFTで行ったワンマンライブで、1stアルバムの曲をほぼやらずに、もともと一人なのにソロデビュー発表をして、さらに3776新メンバー募集をした時に歌った曲。iOS引数に関数を取る関数を高階関数と呼びます。本章ではSwiftの標準ライブラリに実装されている高階関数を紹介します。GenericInt型の配列を受け取り、全ての要素に1を加えて返す関数はfor文を使って簡単に書くことができます。result}全ての要素を2倍にする関数も同様に書くことができるでしょう。これらの関数をより汎用性のあるものにするためには、配列の各要素をとって計算し、Int型を返す関数を第二引数として受けとる必要があります。result}しかし、このコードはまだ最も柔軟であるとは言えません。配列の各要素を偶数であるか判定し、真偽値の値を配列に入れて返したい場合はどうすれば良いでしょうか。この問題を解決してくれるのがジェネリクス型です。result}これで任意の型で動作する関数を書くことができました。この関数はさらに抽象化することができます。入力される配列は[Int]である必要はありません。result}グローバルレベルでmap関数を定義するのではなく、Arrayの拡張として定義することでSwiftにうまくフィットします。}}map関数はSwiftの標準ライブラリに含まれているので自分で実装する必要はありませんが、map関数はやろうと思えば簡単に実装できることは示したのです。Filterあるディレクトリにこんなファイルがあるとします。"FlappyBird.swift"]この中からSwiftファイルだけを取り出したい場合、シンプルな配列で書くことができます。result}これを抽象化するとFilter関数ができます。}}Reduce配列内の合計を計算する関数を作るのは簡単です。result}抽象化してReduce関数ができます。reduceを使ったささやかな例を紹介します。都市名と人口を持つ構造体があります。Int}都市をいくつか定義します。berlin]ここで、100万人以上の人口を持つ都市を人口と一緒に出力したいと思います。人口の単位を返還するヘルパー関数を定義します。}}ここで本章で紹介したすべてのパーツを使って、次のようなコードが書けます。reduceをうまくチェーンできました。ImageをfunctionalにラッピングするAPIを構築することで、より実戦的に高階関数と関数合成を利用する方法を学びます。key値で初期化するCIFilterをカプセル化するためにFilter型を関数として定義。}引数はぼかしの半径のみです。CIImage))を返します。同じパターンで様々なフィルタ関数を定義できます。}*1フィルタを合成ここまで作成したぼかしとクロームのフィルタ関数を合成していきます。chrome()(blurredImage)一度ブラーをかけたimageに新たにクロームフィルタをかけて画像を生成しています。一つにまとめることもできますが、括弧が増え途端に読めなくなってしまいます。chrome()(blur(5.0)(image))そこで、カスタムオペレーションを定義することで読みやすさを保つことができます。使用することによって、安全性、モジュール性、明瞭性を保ったAPIをデザインすることができます。SwiftデータバインディングのライブラリとしてBondを初めてつかってみました。ModelモデルをObservableArrayで保持し、apiコールで更新します。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。