Allied ArchitectsAllied ArchitectsEngineer Blog

AppCode と Xcode 、Swift 書くならどっち?

2015/12/10 言語

このエントリは iOS Advent Calendar 2015 の10日目のエントリです。昨日は ryotakodaira さんのUIButtonのスタイルの変更方法まとめでした。

以前、XCodeからappCodeへ乗り換える8つの理由というエントリを書いたのですがあれから随分経ったし、Swift を書くときも AppCode の方が良いか?という質問を受けることが何回かあったので今回は Swift を書くならどちらの方が良さそうか?というのを調べてみました。

そもそも AppCode って何?

AppCode は Jetbrains の開発・販売している、Objective-C・Swift の開発環境です。有料ですが、非常に優秀で他の Jetbrains 製品を使っていると簡単に馴染めて使いやすいです。

どこで比べる?

以前のエントリで比較対象にした部分から幾つか抜き出して再度比べてみました。対象のバージョンは AppCode は 3.3、Xcode は 7.1.1 です。

以前比較した部分。

  • コード補完
  • [] の記述
  • リファクタリング
  • クイックフィックス
  • スペルチェック
  • ローカライズ

早速比べてみた

コード補完

  • AppCode
    以前対応していなかった型推論を利用した変数や定数への補完が使えるようになっています。クロージャの補完が不完全で自力で記述する部分が多いです。ただし、キャメルケース補完は健在でこちらは目的のメソッドに辿り着くのに非常に有用です。

  • Xcode
    クロージャに関しても補完を利用することが可能でスムーズに記述することが出来ます。キャメルケース補完に対応しておらず、キャメルケースでの補完に慣れている人にとっては扱いにくい部分かも知れません。アンラップしていないオプショナル型のインスタンスに対してメソッド呼び出しを行うと、自動で「?」をつけてくれます。

[] の入力

[] は☆になったのだ……。

リファクタリング

  • AppCode
    Objective-C のように強力な補完機能は提供されていませんが、名称の変更に関しては別のファイルで使用されている部分も変更の対象になります。

  • Xcode
    同一ファイル内であれば辛うじて rename が使えます。 その他の Objective-C で利用できるリファクタリング機能は今のところ使えません。

クイックフィックス

  • AppCode
    提供されていません。

  • Xcode
    単純な間違いや Swift の言語使用変更により修正が必要な箇所を通知してくれ、通知をクリックすることで修正する事も可能です。

スペルチェック

提供されていません。

ローカライズ

ローカライズに関する特別な機能は提供されていません。

各種プラグイン(おまけ)

Vim キーバインド

新しい時代に適応出来なかった人間なのでコレがないと困ります。Xcode と AppCode それぞれに Vim キーバインドを実現するプラグインが存在します。

  • IdeaVim(AppCode)
  • XVim(Xcode)

Dash サポート

ご存知、API ドキュメントの閲覧用アプリです。 Xcode と AppCode それぞれに Dash の利用をサポートするプラグインが存在します。

補完拡張

Xcode でキャメルケース補完の出来るプラグインが提供されています。Xcode の補完でネックだった部分をカバー出来るので便利です。

Plugin 管理

AppCode では、純正の物が提供されています。
Xcode では Alcatraz という管理用のプラグインが公開されており、検索画面等も使いやすくて便利です。上で紹介したプラグインもプラグイン名で検索して導入することが可能です。

まとめ

正直なところ、思った以上に両IDEがアレで記事の文章量が少なくて若干後悔していますorz

Swift に関して言えば、現段階では普段使いする補完機能が優秀なので Xcode に軍配が上がりそうです。 AppCode を出始めの時期から使っている身としては寂しい結果になりましたが、AppCode の今後の発展を祈りつつ基本的には Xcode を使って書いていこうと思います。

ちなみに、Objective-Cだと?

未だに AppCode の圧勝です。

明日は WorldDownTown さんです。

happy_ryo
  • happy_ryo
  • えんじにあ
  • 営業→工場で作業→Word&Excel→Java→shellscript→Java→PHP→Python→Objective-C→Swift→PHP→JavaScript←イマココ 最近 Ruby はじめました。

RELATION ENTRY

Laravel の Eloquent の Factory について調べて見た

Laravel の Eloquent の...

2017/08/15 PHP

こんにちは、happy_ryo です。仕事で Laravel を書くことが増えた事により、Laravel に関して調べる機会がぼちぼちあるのですが、今回はテストの時にダミーのデータを持ったインスタンス作成するときに利用する Eloquent の Factory(以下 Factory) が、どのように...

続きを読む

Vue.js でファイルをポストしたいとき

Vue.js でファイルをポストしたいと...

2017/03/13 Vue.js

お久しぶりです、気を失っている間に iOS エンジニアではなくなっていた happy_ryo です。 意識を取り戻してからは Instagram と Twitter の API をガンガン叩きながら、Laravel と Vue.js たーのしー!している毎日です。 表題の通り、Vue.js で i...

続きを読む

happy_ryoの記事一覧へ

ページTOPへ