2

Mac App Store 用のアプリケーションを作成することを考えていましたが、XCode を使用して Objective-C で作成されたプログラムのみを受け入れるかどうか疑問に思っていました。

Qt を使ってプログラムをマルチプラットフォーム化して、Windows 版と Mac 版をリリースしようと考えていました。

4

2 に答える 2

2

Cody Gray によって投稿された GUI 要件が、重要な Qt アプリの受け入れを難しくする理由を詳しく説明するには、実装する必要がある Mac 固有の機能のいくつかを検討してください。シンプルなテキスト エディタ:

  • Cocoa テキスト コントロールの標準である emacs キーバインドを含む、正しいキーボード ショートカット
  • 以下を含む適切なメニュー構造:
    • 編集メニューやツール メニューではなく、アプリケーション メニューの設定
    • 編集メニューからの特殊文字ツールへのアクセス
    • Windows のファイル メニューに埋め込まれた最近使用したファイル リストとは対照的に、ファイル メニューの [最近使用したファイルを開く] サブメニュー。明確なメニュー エントリがあります。
    • 「すべてを前面に表示」項目を含む適切なウィンドウ メニュー
    • 検索ボックスが統合されたヘルプ メニュー
  • すべてのウィンドウ/ドキュメントが閉じられた後もアプリケーションを開いたままにする機能
  • コンテキスト メニューのウィンドウ リストを含む、適切なドック アイコンの動作
  • ウィンドウ タイトル バーのファイル アイコン。他のアプリにドラッグ アンド ドロップするか、右クリックしてファイルのパスにあるディレクトリのメニューを取得し、Finder で囲んでいるフォルダを開くことができます。

このリストの下に行くほど、クロスプラットフォーム ツールキットを使用して機能を簡単に実装できる可能性が低くなります。私の経験では、これらの機能はすべて、少なくとも 1 つの Qt Mac アプリで省略されています。これらの機能のいくつかは、非公開の API を使用しないと Qt に簡単に追加できない可能性があります。ただし、これらの機能のほとんどは無料であるか、Cocoa プロジェクトに実装するのはほとんど簡単なので、ネイティブ アプリではほとんどどこにでもあります。Apple があなたのアプリを台無しにして拒否するのは正しいことです。

アプリが自明ではなく、フルスクリーンの OpenGL ゲームではない場合は、クロスプラットフォーム バックエンドを備えたネイティブ GUI を作成する方がよいでしょう。#ifdef別の方法は、完全にs であるにもかかわらず、仕事を正しく行うことができないコードです。

于 2011-02-05T11:18:47.777 に答える
1

私は Apple の代表ではなく、この議論がいずれかの側に有利な形で展開された例をまだ見ていないことを考えると、この質問に決定的な答えを出すのは難しい. 代わりに、Mac App Store Review Guidelines の関連セクションのように見えるものを投稿し、ご自身で判断してください。

最初は「機能」のセクション 2 です。これは非常に幅広いトピック領域であり、サードパーティの GUI ライブラリを使用すると違反が発生する可能性がたくさんあるように私には思えます。もちろん、十分に興味があれば、これらすべてを回避できると思います。

2.5   非公開 API を使用するアプリは拒否されます

. . .

2.14   アプリは、Xcode に含まれる Apple のパッケージング技術を使用してパッケージ化および提出する必要があります - サードパーティのインストーラーは許可されていません

2.15   アプリは自己完結型の単一のアプリケーション インストール バンドルである必要があり、コードやリソースを共有の場所にインストールすることはできません

2.16   追加のコードやリソースをダウンロードまたはインストールして、機能を追加したり、主な目的を変更したりするアプリは拒否されます

. . .

2.24   非推奨の、またはオプションでインストールされたテクノロジー (Java、Rosetta など) を使用するアプリは拒否されます。

. . .

2.29   他のアプリによって保存されたユーザー データ (ブックマーク、アドレス帳、カレンダー エントリなど) を変更するための適切な Mac OS X API を使用しないアプリは拒否されます

「ユーザー インターフェイス」のセクション 6 も、Qt を使用するアプリケーションについて検討する価値があります。標準プラットフォームの GUI 要素を使用しないため、Windows でライブラリを使用することを拒否します。Mac でも同じことができるとしか思えませんが、Apple がそれにどう反応するかはまだわかりません。(正しく動作し、ネイティブ ウィジェットを使用する代替のクロスプラットフォーム GUI ライブラリは、ここでは無料で明確であると思います。)

6.1   アプリは、Apple Macintosh ヒューマン インターフェイス ガイドラインで説明されているすべての条件に準拠する必要があります

. . .

6.3   ボタンやアイコンなどのシステム提供アイテムを正しく使用せず、Apple Macintosh ヒューマン インターフェイス ガイドラインに記載されているアプリは拒否されます。

. . .

6.5   Mac OS X のネイティブ ユーザー インターフェイス要素または動作を変更するアプリは拒否されます

于 2011-02-05T08:23:10.873 に答える