[AppCode] AppCode を使い続けるべきか考えてみた

AppCode がサポートしていない Xcode の機能を説明しつつ、AppCode を使い続けるべきか、Xcode に戻るべきか考えてみました。

AppCode を使い始めた理由

2018年から AppCode を購入して使っています。

当時は、Xcode での Swift サポートがあまり良くなくて、困っていました。

特に、コード補間があまり 賢くなく メソッド等の定義箇所からコピペして対応することもありました。

また、Xcode 上でのデバッグが安定していなくて、非常に苦労していました。

試しに入れてみた AppCode で、補間機能がきちんと動作したこと、デバッグが普通にできたこと、で購入を決めました。

当時も、Interface Builder を使うためには、Xcode を使う必要があり、AppCode で完結することはできなかったのですが、UI の設計と アプリのコード は、別物だったので、特に大きな不満にはなりませんでした。

最近、AppCode を起動しません

購入後、AppCode を積極的に使っていたのですが、2019 年後半くらいから、あまり AppCode を起動しなくなりました。

アプリのコードも、Xcode で記述することが増えてきたのです。

それ以前も、InterfaceBuilder での変更に伴うコードの変更(IBOutet, IBAction の扱い) 等は、Xcode 上で行っていましたが、アプリのコードも、Xcode で書くようになってきました。

なぜ、AppCode を使わないのか

SwiftUI

SwiftUI のインパクトが大きかったと思います。

SwiftUI では、UI の定義もコードで行います。そこに、イベントへの対応等も追記していくことになります。
Apple のいう Declative-style の プログラミングになってきたということです。

以前は、Interface Builder で設定だけする -> AppCode でロジックを記述 という流れだったので、
Interface Builder でのマウス操作 -> AppCode でのキーボードを使った記述 というように、流れの切れ目が明確でした。

SwiftUI になったことで、UI も キーボードによる記述に変わりました。コードで記述したところに、.tapGesture 等でイベントを記述していきます。

このような流れでは、UI 定義と イベントに対する振る舞いの記述の切れ目が曖昧になってきました。自分の中で、次に何をするか(UI に手を入れるのか、イベントへの対応を変更するのか)を明確に考えて、Xcode / AppCode のどちらをアクティブにするかを決めなければいけなくなり、不要なところに、考えるリソースを使うことに疲れてきました。

SwiftPM

AppCode の CocoaPod や Carthage へのサポートはすごく便利だったのですが、SwiftPM への対応は遅いように感じます。

自分の開発するライブラリは、SwiftPM に移行してしまったので、このサポートの欠落も大きかったです。

サポートされていない機能

さきの AppCode のページにもありますが、以下の機能がサポートされていません。

  • インターフェースビルダー
  • Plist エディター
  • アシスタントエディター
  • CoreData エディター
  • ユーザーアカウントとコード署名管理
  • デバッガーを表示
  • Playgrounds
  • WatchOS サポート (実行およびデバッグ)
  • SwiftUI プレビュー

# AppCode では次バージョンの情報も、丁寧に公開されていて、このことは、非常に良い点だと思います。

リストに上がっている機能について、Apple がきちんとドキュメント提供していないためにサポートすることが難しいことはよく理解できます。
ただ、比較的便利と思われる機能がサポートされていないとすると、Xcode から AppCode に作業を移動することのメリットがもう少し欲しいと感じ始めました。

新しいバージョンに対して、サポート対応するためにはある程度の期間が必要になるのは理解できるのですが、AppCode のサポートページをみると、中期でのサポートも難しいように見えます。

まとめ:AppCode を使うべきユースケース

自分としては、AppCode の利用を停止するつもりなので、現在の Subscription が無効になったら更新しない予定です。

サードパーティ製のツールには残って欲しいので、どういうケースであれば、AppCode が有用なのか考えてみました。

AppCode を使うべきユースケース
  • UI を InterfaceBuilder を使って作っていて、UI と コードの作業が分業されている
  • watchOS アプリは、予定にない
  • UI にあまりこだわらないので、SwiftUI でも プレビュー機能は使う予定がない
  • SwiftPM は、使う側で自分でパッケージを作る予定がない

ちなみに、AppCode を使うのであれば、JetBrains から直接買うよりも、日本の代理店 Samuraism から買う方がお得です。

AppCode は Subscription を継続すると、2年目、3年目とどんどん安くなっていくので、キープだけしておくのも良いかとも考えたのですが、やはり 非サポート機能が気になるので、欲しい機能がサポートされた時に 再度 購入しようと思ってます。

MEMO
2020.12 時点での情報です。最新情報は、https://www.jetbrains.com/objc/ で適宜確認してください。

AppCode の購入を検討されている方の参考になれば、幸いです。

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です