アプリはSwift、ライブラリーとフレームワークはObjective-C

今回のXcode 8.0移行時のSwiftマイグレーション問題から、他のライブラリーやフレームワークなどから使われることが前提となるライブラリーフレームワークはObjective-Cで書いた方が良いという考えに至った。

現在、iOSのプロジェクト作るにあたっては、使用できる言語は以下の通りとなっている。

  • アプリ – Swift, Objective-C, C++, C, ほか
  • フレームワーク – アプリに同じ
  • スタティックライブラリー – Objective-C, C++, C, ほか

また、SwiftとObjective-Cのそれぞれの特徴は以下の通りである。

  • Objective-Cと比較して、ピュアなSwiftの方が動作速度は速い。
  • Swiftからは直接C++のコードはアクセスできない1 。Objective-CからはObjective-C++であればC++のコードにアクセスできる。
  • Swiftの方がnullチェックなどが厳しく、安定性が高い。Objective-Cは安全性を犠牲にしながらも、C及びC++由来の機械よりの処理を行える。
  • Swiftの方が言語仕様での破壊的変更が加えられる可能性が高い。Objective-CはCほどではない。

これらを考えた時、ライブラリー開発ではまだObjective-Cを使った方が破壊的変更が起きにくく、修正もある程度時間的余裕が大きいものと考えられる。一方、パフォーマンス面ではSwiftで統一した方がオーバーヘッドを防げる分、比較的良いため、非常に悩ましいところではある。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しております。仕事依頼や相談などについては、Contact Formよりお願いいたします。
  1. 場合によってはCも同様 []
スポンサーリンク

フォローする