💎
【なんとなくiOS開発】 Ruby VersionとCocoaPodsとCarthage
iOSアプリ開発とRubyの関係
CocoaPods
- iOSアプリのライブラリ管理ツール
- 開発言語はRuby
- そのため、チーム開発においては、CocoaPods動かすためのRubyのバージョンと、依存関係の解決するためのアルゴリズムであるCocoaPodsのバージョンを揃える必要がある
Carthage
・Carthage is intended to be the simplest way to add frameworks to your Cocoa application.
・Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup.
・Carthage does not automatically modify your project files or your build settings.
引用元:https://github.com/Carthage/Carthage
Carthageの全体像
- Cartfileの作成: プロジェクトで使用したいライブラリとそのバージョンを記述した Cartfile ファイルを作成
- carthage update の実行: ターミナルで carthage update コマンドを実行すると、Carthageは Cartfile に記述されたライブラリのリポジトリからソースコードをダウンロードし、ビルドしてくれる
- Carthage/Build フォルダ: ビルドされたバイナリフレームワークは、プロジェクトのルートディレクトリに作成される Carthage/Build フォルダに保存される
- 手動でのプロジェクトへの追加: Carthage/Build フォルダ内の必要なフレームワークをXcodeプロジェクトに手動で追加する
Ruby関連
Ruby 💎
- 日本で開発されたオブジェクト指向スクリプト言語 🇯🇵
- Macに標準でインストールされている
rbenv
- 読み方 : ルビーエンブ
- 複数のRubyのバージョンを管理し、ディレクトリごとに切り替えることができる
- OSが指定しているRubyのバージョンが優先されていると、rbenvの設定をしても反映されない
- rbenvでのバージョン切り替えは2種類ある
- local
- カレントディレクトリーに.ruby-versionファイルが作成される
- .ruby-varsionファイルがあるとglobalよりもlocalのバージョンが優先される
- global
- local
Gem
- Rubyで作られたライブラリやアプリケーションをパッケージしたもの
- Ruby on Railsもgemとして提供されている
Bundler
- gemのパッケージマネージャー
- インストールやアンインストールや依存関係も管理している
RubyGems
- gemのパッケージマネージャー
- bundlerがデファクトスタンダード
Ruby on Rails
- フレームワーク
- Webアプリケーションを作成するためのフレームワーク
Rakefile
- Rubyで書けるMakefile
Discussion