開発

【swift】extension(拡張)を上手に活用しよう

どうもこんにちは。iOSをメインに開発しているロッキーカナイです。

今日はSwiftのextensionについて使用方法やメリットなどまとめてみたいと思います。

extension

extensionとは

既存のクラスや構造体などに、メソッドやプロパティを追加で定義を可能にする、機能拡張のことです。

例えば、Viewの背景をピンク色にしたいとします。ただ、他のViewでもピンク色を使う場合、汎用的にピンク色を定義しておきたいと考えます。そこでextensionを利用します。

色を管理しているUIColorクラスにはピンク色のメンバーは存在していないので、UIColorクラスを拡張してピンク色を追加します。

これにより、他のクラスでも UIColor.pink とすればピンク色が取得できます。これがextensionになります。

extensionのメリット

  1. 既存のクラスや構造体に機能拡張できる
  2. クラスや構造体だけでなく、enum、データ型などあらゆるものに可能

 

 

クラスの可読性を上げるという使い方

プロトコルを切り離す

extensionは、他にもクラスの可読性を上げるという使い方があります。

みなさまはUIPageViewControllerを継承したクラスを定義する際にはどのようにしますでしょうか?

「class クラス名 : スーパークラス名, プロトコル名」とすると思うのですが、プロトコルを切り離す事で、クラス定義とプロトコル定義を区切り可読性を上げる方法があります。

 

プロトコルを切り離す事によるメリット

  1. 明示的に別処理と分かりやすくなり可読性が上がる
  2. ソースコードの肥大化の防止ができる

 

まとめ

今回はextensionで機能拡張する方法、可読性を上げる方法を紹介しました。

積極的にextensionを使用し、バグの少なく可読性の高いコードにするように心がけて行きましょう!

ABOUT ME
ロッキーカナイ
ロッキーカナイ
iOSをメインに、SwiftやObjective-C言語の開発をしてます。趣味は猫と戯れる事、PHPを使ったサイト作成やAndroidの開発もしております。ちなみに名前のロッキーカナイはよく昼飯を食べる所w