1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Tips】『メンテナンス』の観点からなるべく「ライブラリ」は使用するべきではない。

Last updated at Posted at 2023-05-07

『自分で実装するのが簡単に見えるライブラリ』は
インストールせずにできる限り自分でコードを書いた方がいい。

というのは、ライブラリとは他人が作ったプロジェクトなので、
たくさんライブラリを使っていくと他人任せな保守性が悪いプロジェクトになってしまうから。

基本的にXcodeのバージョンアップに、ライブラリも対応していかなければならない。なので、Xcodeのバージョンアップをした時に、ライブラリでエラーになることがある。

ちゃんとしたライブラリ(企業が作っているライブラリや有名なライブラリなど)は、Xcodeのバージョンアップのたびにメンテナンスしてくれるが、そのような個人が作ったマイナーなライブラリだと、メンテナンスしてくれない可能性がある。

なのでバージョンアップのタイミングでエラーになったりすると、
そのライブラリの中身を確認して修正しなければならない。
ライブラリの修正はかなり難しい。

そして、もし修正が難しければそのライブラリは使わないという選択をしなければならない。使わないとなれば一から作成することになり、すぐにバージョンアップしたいのに、できないという状況になる。

『自分で実装するのが簡単に見えるライブラリ』の一例としては
「星5段階で評価するUI」など。

要は、有名なライブラリ以外はなるべく使わないほうが良い。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

《見極め方》

◆ ライブラリの更新頻度
◆ ライブラリを検索した時に、10件以上記事があること。
◆ ライブラリを出しているのが個人か起業かどうか。
◆ そのライブラリの容量はどのくらいあるのか。
◆ spmに対応しているか。
◆ ライブラリを使う場合は、アプリ内に明記しなければならない等。

→ RealmSwift, SwiftLint,

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

「星5段階で評価するUI」をライブラリを使わずにコードで書いた例。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var ratingImageView: UIImageView!
    
    var rating: Int = 0 {
        didSet {
            let imageName = "star\(rating)"
            ratingImageView.image = UIImage(named: imageName)
        }
    }
    
    @IBAction func ratingButtonTapped(_ sender: UIButton) {
        // rating を更新します。
        if rating == 5 {
            rating = 0
        }
        rating += 1
    }
}

この例では、1つのボタンで星の評価を行います。
ボタンをタップするたびに、ratingの値を1ずつ増やしていきます。
ratingの値が5になったら、また最初の評価に戻るように実装しています。

また、星の画像を表示するために、ratingImageViewを使用しています。
ratingの値が変更されるたびに、imageName変数を更新して、
対応する星の画像を読み込みます。

image.png

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?