UniPyではPythonからSwift/C#への変換は全てローカルで行われます。AIの機能も用いていません。長いソースでも同じ入力からの出力は常に一定になります。ネットには一切情報は送信されませんので、開発中のソースコード漏洩の心配がありません。(※全ての文法の変換に対応している訳ではありません、対応の詳細はサポートページをご確認下さい)
UniPyは買い切りアプリでの提供になります。変換するコードの量に制限があったり、変換する行数文字数に応じて追加料金が発生したりはしません。何度でも変換処理をしながら、トライアンドエラーで開発を進める事が出来ます。もしUniPyの使用を辞める事にしても、変換したSwift/C#のソースでそのまま開発が続けられるため無駄になりません。
変換後は純粋なSwift/C#のソースコードになります、そこにブラックボックスは存在しません。その為、UniPyでは開発プロセスにサードパーティー製の開発ソフトウェアを挟んだ事によって起こりがちな、サードパーティー起因の回避不能な実行時のバグは起こりえません。UniPyを使わない場合と同じ様にSwift/C#として全てのバグに対応出来ます。
Pythonを使ってiPhoneやmacのネイティブアプリを開発しアプリストアで配信する事が出来ます。
UniPyでは主にSwiftUIでユーザーインターフェースを作る事を想定しています。SwiftUIで特徴的なトレイリングクロージャに対応し、自然なSwiftUIコードに変換されます。
(※Swift言語の全ての記述方法への変換に対応している訳ではありません、対応の詳細はサポートページをご確認下さい)
Pythonを使ってUnity製ゲームを開発しストアで配信する事が出来ます。
UniPyは元々、Unityで対応が廃止されたBoo言語で書かれたゲームの移行先として開発されました。独自の構文のあるBooと異なり、UniPy用に書いたPythonは100%、Pythonとして正しい構文になります。その為、IDEのPythonのサポート機能がそのまま使えます。
(※C#言語の全ての記述方法への変換に対応している訳ではありません、対応の詳細はサポートページをご確認下さい)
アプリには、実際の動作画面と、変換前のPythonコード、変換後のSwiftコードの3点が確認出来る20以上のサンプルが付属しています。
各サンプルはSwiftUIのUI部品毎にフィーチャーしているので、それをUI部品カタログにして、そこからコピー&ペーストであなたのアプリを作っていくような使い方も出来ます。
おまけでSwiftUIとUnityEngineのAPIスタブが付属します。
UniPyは100%Pythonと互換性のある文法しか使用しないので、スタブと合わせると本来のSwiftやC#で記述する際と遜色ないIDEのサポートを受けつつ、快適にプログラミングを進める事が出来ます。
(※スタブはAPIの全てを網羅するものではありません。Xcode13のSwiftUI.swift上にある定義、Unity2021.3のスクリプトリファレンスのUnityEngineネームスペース以下、に含まれるAPIのみとなります。)
✓ | 常に書き慣れたPythonの構文で普段の手癖のまま円滑に開発したい。 |
✓ | Swift/C#の構文を思い出す為にロジックの思考が中断されるのが煩わしい。 |
✓ | iPhone/macのアプリを開発して配信したいがSwiftを覚えるのが面倒。 |
✓ | Unityでゲームを開発して配信したいがC#を覚えるのが面倒。 |
✓ | サーバー側をPythonで組んでいて、クライアント側と業務ロジックのコードを共通化したい。 |
? | Pythonのライブラリを活用した既存のPythonプログラムをSwift/C#に移植したい。(※1) |
? | 一度変換処理を通した後は、Swift/C#を使って開発を進めるつもり。(※2,※3) |
? | 変数の初期化や型を意識せずにプログラムを組みたい。(※4) |
? | リンターを使わずPEP8に従わない書き方でPythonのコードを書いている。(※5) |
※1: UniPyはPythonのライブラリがそのままSwift/C#で使える様になる訳ではありません。
※2: 既存のPGを一度だけ変換出来れば良いのであればAIの言語変換機能の方が向いているかもしれません。
※3: UniPyは常にPythonで開発を進める使い方を主に想定しています。
※4: UniPyでは変数宣言時に型の指定は必須です、typingモジュールの型ヒントの構文を使用します。
※5: 主に"式や文中の空白文字"がPEP8に準拠していないとUniPyは正しくパース出来ません。