Swift と Objective-C

共有:

これらの質問は、3 大主要プログラミング言語として Swift または Objective-C を選択した開発者にのみ提示されました。

どの Apple プラットフォーム向けに開発していますか? 

91%

iOS

34%

macOS

10%

watchOS

4%

tvOS

3%

Apple プラットフォーム向けには開発していない

Swift と Objective-C を同じプロジェクトで併用していますか? 

62%

はい、コードベースの大部分は Swift です

23%

はい、コードベースの大部分は Objective-C です

16%

いいえ

作成されているほとんどの新しいプロジェクトは Swift で書かれていますが、大多数の企業はいまだに既存の Objective-C フレームワークをサポートしているのが通例です。

Krzysztof Zabłocki

Sourcery および 8 万個以上のアプリを支えるその他の OSS プロジェクトの作成者

Swift や Objective-C 開発でユニットテストを作成していますか?

クロスプラットフォーム開発者

すべて

モバイル開発者

クロスプラットフォーム開発者: クロスプラットフォームテクノロジーを使用している Swift または Objective-C ユーザー。モバイル開発者: モバイルプラットフォーム向けに開発している Swift または Objective-C ユーザー。

コミュニティでのテスト状況はここ数年で改善されましたが、他のスタックに比べればまだ非常に低レベルです。MVC 用にテストを書くのが他のアーキテクチャパターンに比べて複雑であることを考慮すると、Apple からの適切な教育が不足しているコミュニティもあれば、アーキテクチャの選択がまずいコミュニティもあります。

Krzysztof Zabłocki

Sourcery および 8 万個以上のアプリを支えるその他の OSS プロジェクトの作成者

Swift/Objective-C 開発者には、ユニットテストを採用する大きな機会がまだまだあります。採用すれば抜きん出ることができるでしょう。

Jon Reid

Industrial Logic のコーチ兼トレーナー、iOS Unit Testing by Example の著者

どのユニットテストフレームワークを定期的に使用していますか?

94%

XCTest

11%

Quick + Nimble

2%

その他

Apple はテストに使用する XCTest と Xcode のサポートを大きく改善しました。学習曲線とサポート課題への取り組みにかかるコストがメリットより高くなることが多く、ここ数年においては、代替フレームワークを使用する人が大幅に減少しています。

Krzysztof Zabłocki

Sourcery および 8 万個以上のアプリを支えるその他の OSS プロジェクトの作成者

どの mock / matcher フレームワークを使用していますか?

6%

OCMock

5%

SwiftHamcrest

5%

OCMockito

3%

Cuckoo

1%

OCHamcrest

2%

その他

81%

なし

UI テストを使用していますか?

クロスプラットフォーム開発者

モバイル開発者

すべて

UI テストは実施に非常に多くの時間がかかる上、信頼性に劣ることがほとんどです。TDD ワークフローには向いていないため、ほとんどの企業では PR ごとに実施することはありません。代わりに、CI やナイトリービルドでスケジュールされています。

Krzysztof Zabłocki

Sourcery および 8 万個以上のアプリを支えるその他の OSS プロジェクトの作成者

どの UI テストフレームワークを定期的に使用していますか?

71%

XCTest

14%

iOSSnapshotTestCase

13%

EarlGrey

8%

KIF

4%

その他

どの依存関係マネージャーを使用していますか?

61%

CocoaPods

47%

Swift Package Manager

11%

Carthage

1%

その他

18%

なし

75%

CocoaPods

41%

Swift Package Manager

12%

Carthage

2%

その他

11%

なし

69%

CocoaPods

47%

Swift Package Manager

12%

Carthage

2%

その他

12%

なし

CocoaPods の依存関係を SPM パッケージに置き換える予定はありますか?

どのデータベースエンジン / フレームワークの組み合わせを使用していますか?

31%

Firebase

28%

CoreData

28%

SQLite と独自ラッパー

24%

Realm

1%

YAPDataBase

3%

その他

26%

なし

41%

Firebase

23%

CoreData

37%

SQLite と独自ラッパー

27%

Realm

4%

その他

20%

なし

35%

Firebase

29%

CoreData

29%

SQLite と独自ラッパー

28%

Realm

1%

YAPDataBase

3%

その他

21%

なし

Linux 上で Swift を使って開発していますか?

5%

はい

13%

いいえ。ただし、12 か月以内にその予定があります

83%

いいえ。また、12 か月以内にその予定はありません

Swift を使用してサーバーサイドプロジェクトを開発していますか? 

2021

2022

他のスタックに比べればまだまだ非常に新しいため、採用率が低いことにあまり驚きはありません。しかし、サーバーで Swift を使用している大勢のエンジニアに尋ねたところ、非常によく機能しているとの称賛しか返ってきませんでした。

Krzysztof Zabłocki

Sourcery および 8 万個以上のアプリを支えるその他の OSS プロジェクトの作成者

Swift と Objective-C:

2022

最後までご覧いただきありがとうございました!

レポートはお役に立ちましたか?
ぜひこのレポートを友人や同僚と共有してください。

ご質問やご提案がございましたら、surveys@jetbrains.comまでお問合わせください。