💎

【なんとなく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の全体像

  1. Cartfileの作成: プロジェクトで使用したいライブラリとそのバージョンを記述した Cartfile ファイルを作成
  2. carthage update の実行: ターミナルで carthage update コマンドを実行すると、Carthageは Cartfile に記述されたライブラリのリポジトリからソースコードをダウンロードし、ビルドしてくれる
  3. Carthage/Build フォルダ: ビルドされたバイナリフレームワークは、プロジェクトのルートディレクトリに作成される Carthage/Build フォルダに保存される
  4. 手動でのプロジェクトへの追加: Carthage/Build フォルダ内の必要なフレームワークをXcodeプロジェクトに手動で追加する

Ruby関連

Ruby 💎

  • 日本で開発されたオブジェクト指向スクリプト言語 🇯🇵
  • Macに標準でインストールされている

rbenv

  • 読み方 : ルビーエンブ
  • 複数のRubyのバージョンを管理し、ディレクトリごとに切り替えることができる
  • OSが指定しているRubyのバージョンが優先されていると、rbenvの設定をしても反映されない
  • rbenvでのバージョン切り替えは2種類ある
    • local
      • カレントディレクトリーに.ruby-versionファイルが作成される
      • .ruby-varsionファイルがあるとglobalよりもlocalのバージョンが優先される
    • global

Gem

  • Rubyで作られたライブラリやアプリケーションをパッケージしたもの
  • Ruby on Railsもgemとして提供されている

Bundler

  • gemのパッケージマネージャー
  • インストールやアンインストールや依存関係も管理している

RubyGems

  • gemのパッケージマネージャー
  • bundlerがデファクトスタンダード

Ruby on Rails

  • フレームワーク
  • Webアプリケーションを作成するためのフレームワーク

Rakefile

  • Rubyで書けるMakefile

Discussion