2016-07-07 7 views
7

Codename Oneアプリにネイティブコードを挿入する必要があります。私はiOSプログラミングの初心者なのでObjective-Cを学ぶ必要があります。しかし、私はSwiftがObjective-Cの後継者であり、私はSwiftの構文がより快適になると感じました。しかし、SwiftがCodename Oneでサポートされているかどうかはわかりません。 Codename Oneで生成されたiOSソースコードを見ているうちに、私は100%確信していませんが、Cコードのようです(間違っているかもしれません)。彼のブログShannahでObjective-CではなくCodename Oneネイティブコードでスウィフトコードを使用できる

(コードネームつから)wrote that

コードネームの一つは、現在、私たちは、このような変化によってほとんど影響を受けないだろうダウン、昔ながらのCコードにすべてをコンパイルする - そのいくつかのネイティブ部分が存在することになるが、更新が必要なObjective-Cを使用してください。幸いなことに、あなたがCodename Oneのユーザーであれば、Javaで作業しているので、これらの詳細には心配する必要はありません。

Codename OneネイティブコードでSwiftコードを使用することが可能かどうかは私には分かりません。

このトピックの明確化をお手伝いしてくれてありがとうございました!

乾杯

+0

これをどうやって行ったのだろうか?私は同じ質問をしました。 – Schreiby

答えて

1

はい、いいえ。おそらくSwiftコードを静的ライブラリ(.aファイル)にコンパイルして、Objective-Cコードが単にブリッジとして機能する静的なlibのように使うことができます。直接スウィフトを使用して

は、いくつかの要因に問題がある:ビルドする際に

  • は現在、我々はまだのXcodeの古いバージョンを使用している、我々はattempt at migrating to the latestをしたが、setbackを持っていました。 3.5が出てくる前に、うまくいけば移行します。
    Swiftには比較的新しいバージョンのxcodeが必要です。これを行うまで、Swiftコードの埋め込みは問題になります。

  • スイフトはARCを前提としています。これはGCと統合しようとしたものですが、現時点ではうまく機能しません。

  • オプションとしてSwiftスタブを生成する必要があります。これは、Objective-Cに依存する既存のcn1libまたはネイティブインタフェースを持つと問題があります。

しかし、バックトラックを少しします。 SwiftはObjective-Cよりも大きな利点ですが、これはかなり古いものです。コードネーム一つは

  • それをスウィフトとObjective-Cの両方よりも高速であるCに変換するようしかし、それは

    • それは速くないです...コードネームつの開発者のためのすべての主要な利点を持っていません。コードをもっときれいにすることはできません。あなたのネイティブインタフェースに多くのコードがあって、何か間違っているとしたら。とにかくあなたのコードの大部分はJavaになっているので、Java対Swiftのメリットについて議論することができますが、Codename Oneを使用している場合はJavaをかなり選択しています。

    • Swiftで書かれたアプリを使用する必要がある場合は、静的ライブラリとしてパッケージ化することができます。

    この時点で、コードネーム1のSwiftの実際の使用例は実際にはありません。

  • +0

    あなたの完全な答えをありがとう。私が書く必要があるネイティブコードはまだ小さく、私はそれを学ばなければならない。だから私は何か古いものよりも現代的なものを学ぶことを好むだろうしかし私はあなたのポイントを理解しました;-) – HelloWorld

    関連する問題