web-dev-qa-db-ja.com

GiantプロジェクトのObjectiveCをSwift

私はプロジェクトを実行しましたが、その非常に巨大なもので、約1000個のファイルと4個のカスタム(独自に構築された)フレームワーク、およびポッドを介して追加された約10個のフレームワークが含まれています。 Objective-CコードをSwiftに移行する および Swiftifyで移行する を実行しました。

Appleが提案するように、各ファイルを1つずつ変換し始めましたが、最初の変換はSwiftifyによって正常に実行されず、依存関係の問題もあります。

ですから、この位置で私はサハラ砂漠を歩き始めたように見えます。そこでは終点が見えません。

だから私はSwiftこのちょっと大規模なプロジェクトに変換する方法のいくつかの提案が必要ですか?

7
Aleem

Objective-CをSwiftに変換するというあなたのアプローチは間違っています!Appleもフレームワークに完全にSwiftを採用するのに時間がかかりましたそしてニュースは2018年で、フレームワークの85%がSwiftに変換されているため、それを完了するのに3年近くかかっているということです。

最大の問題は、Swiftがまだ進化していて、おそらく来年は「Swift5.0」が表示される可能性があることです。したがって、次の方法で実行することをお勧めします。

  1. Swift(つまり、4.2)の最新バージョンを選択してください。
  2. プロジェクト全体の変換を開始するのではなく、モジュール方式に適合させます。
  3. プロジェクトから、まず最初に、アプリにまったく影響を与えない小さなモジュールをピックアップし始め、「Swift」ファイルがObjective-C(古いコード)でうまく機能することを確認します。参照: SwiftコードをObjective-Cにインポートするにはどうすればよいですか?
  4. 小さなモジュールを使い終わったら、ゆっくりと大きなモジュールをピックアップし始めます。プロジェクトのObjective-CにあるオープンソースのSwiftライブラリも見つかります。
  5. さらに、小さなプロジェクトの形でモジュールを最初から構築してから、Objective-Cプロジェクトにドラッグアンドドロップすることもできます。
  6. Andreas Oetjen 提案:クラス階層を分離することから始めて、1つの「サブツリー」を次々に変換することができます。

上記のポイントはどのように役立ちますか?

  1. いくつかの変わったコードやライブラリが周りにあるのを見つけるかもしれません。
  2. あなたは適切な構造の下できれいなコードを持ってしまうかもしれません
  3. 今のところ「Swift + Objective-C」を使用すると、アプリがスムーズに実行され、完全に変換されるまで数か月待つのではなく、定期的に更新を行うことができます。
6
Sohil R. Memon

最近、 SVProgressHUD をSwift using Swiftify に変換しました。変換されたコードは here にあります。

主なポイントは次のとおりです。

  1. Objective Cとの相互運用性を維持しながら、一度に1つのファイルでコード変換を開始するには、変換されたSwiftファイルは、既存のObjective-Cコードと相互運用可能である必要があります。
  2. サブクラスがなく、単純なクラスを選択します。

Conversion Strategy Flowchart

詳細な変換戦略は ここ にあります。

5

Objective-Cアプリは通常Swift簡単に変換できます。macOSIDE Xcodeはスムーズな移行に役立ちます。はい、いくつかの問題がありますが、これらはとにかく修正されました。プロジェクトは巨大なので、移動する必要のあるファイルが非常に多いため、問題が発生する可能性があります。ファイルをモジュールごとに変換してみることができます。このようにして、ファイルごとに移行を分割できます。

Objective-Cを変換する方法-C IOS App to Swift 、ObjectiveCアプリをSwiftに移行するためのステップバイステップガイドを確認できます。

あなたはSwiftifyで移行を行ったと説明したので、どうやら彼らの Objective-C to Swift Converter オンラインツールは完全に仕事をすることができませんでした。試してみてください- Objective-CをSwiftオンライン| iSwift に変換するObjectiveC用のオンラインツールもSwift変換する。

Swiftを初めて使用する開発者は、これらの有益なリソースから支援を受けることができます。

Swiftプログラミング言語

Swift-Apple開発者

0
Salman Saleem