2019TweetSwiftは強力で、また、比較的新しい言語です。世の中にはC言語や、C++、Objective-Cで書かれたオープンソースライブラリが多くあります。このトークでは、C、C++、Objective-Cの関係性を説明するための基本をなぞり、SwiftのプロジェクトにDependencyを追加する方法をデモします。[Spotifyというかなり大きなコードを扱っています。C++など多くのコードが含まれています。Cがうまれ、組み込みなどに使われていました。クラスやオブジェクトに対応していませんでしたC++をつくりC拡張でObjectOrientedProgramingをサポートしました。Objective-CはC++と同じ時期に生まれましたが、Cの上に薄いレイヤーが乗っているという形です。ソースファイルをコンパイルするように.mmファイルを見たことがある人Swiftは2014年に生まれました、Cocoaと作業できるように生まれてきた。ObjectiveCの多くを使える。ランタイムライブラリも使っている。1つのプログラムで走ることができる。SwiftはCとダイレクトにコミュニケーションすることができる。C++とダイレクトにコミュニケーションは出来ない。4言語のコネクションが話してみたら面白いと思いました。生花のようです使うものを選んだら、配置していくアプリケーションはゴールを考え、ふさわしいライブラリを選んでくる。目的はプレゼンテーションなり、枝や花を選んでくるが、これはCやObjC,C++ということになります。おかしなところや足りないことがあれば補足していく。これで一歩下がって全体を見ていくObjCフレームワークを足すとき、バニラObjCというフレームワークを使ってきました。サードパーティのものも扱っていく必要がありますがセットアップは似ています。Xcodeproject、あるいはFrameworkをリンクする。SwiftClassでVanillaObjCをImportするrandmStringをコールするこれで全部が出来上がるC++libBasicCppLibを作っています。ダイレクトにはコミュニケーションできないので間にObjective-Cを挟まないといけないラッパーをmから.mmに名前を付け替え、C++とObjective-Cを両方コンパイルできるように成る。Objective-Cのフレームワークの中でリンクしてモジュールをインポートしてObjectiveCのファンクションをコールするCはStaticLibとしてコンパイルされるrandomStringのみです自動的にヘッダーファイルを読むわけではない。Cのヘッダーは読めない。いうファイルを作成するHeaderを加えていく、exportするとサブモジュールの中身すべてがexportされるモジュールマップのディレクトリに対してSWIFT_INCLUDE_。指定する依存関係を指定できましたObjective-CはSwiftにトランスレーションしやすいC++はCを使わなくてはいけない、でもインターフェースがデベロッパーフレンドリーでないフレンドリーに、詳細を省くために、ラッパーを使うということに成る古いObjecitve-CがあればNS_SWIFT_NAMEで名前を変換する必要があるCはまた別物ポインタがあります。値を指定しているのではなく先頭のアドレスを挿しています。functionでメモリを開放する必要がある。ありやすいやり方がある。castが必要Closureのタイプキャストコンテキストをキャプチャするローカル関数からは形成することは出来ないコンテキストは一連のすべての変数クロージャー、ローカルファンクションの中でSwiftにおいては別の変数を含んでいます。コンテキストキャプチャリングをするのは、コンパイラは、アウターファンクションの中で使われているものを使うということになります。SwiftではどれくらいC関数をクロージャーの中にホールドしておくべきかわからないので、キャプチャされたコンテンツを許可しないそこでコントロールが必要になるgetNextValueのライフタイムを管理してやる必要がある。C++Cから学んだことをそのまま使えますNSStringはCStringを通って、C++とObjective-Cの間に存在する一つのパラメータをとってくる、ラップするためにObjCの中でラッパークラスを作ります。はてなブログPro大学時代に耳が聞こえない生徒が講義に参加できるようにリアルタイムに文字起こしするバイトをしていました。いまはエンジニアとして働きつつ、勉強会やカンファレンスで話される技術分野の知見を文章に残し、検索可能にしたり、地方で活動する方に届けたいと思っています。お役に立ちましたら、支援いただけると幸いです。(24)注目記事はてなブログをはじめよう!niwatakoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。