Sproutcoreを使用した人はいますか?


19

誰かがWebアプリケーションにSproutcoreを使用しましたか?もしそうなら、あなたの経験の説明を教えてください。現在検討中ですが、いくつかの懸念があります。まず、ドキュメントが悪い/不完全であり、ソースコードを掘り下げたり掘り下げたりするのに多くの時間を費やすことを恐れています。また、私は比較的新しく、大きな変更を受ける可能性のあるプロジェクトを使用することを少しためらっています。

Sproutcoreで開発された人々からのどんな考えでも大歓迎です!

EDIT / PS:はい、私はこの記事を見てきました:/programming/370598/sproutcore-and-cappuccino。しかし、重要なプロジェクトでSproutcoreを使用した人からのSproutcore自体の少し長い説明に興味があります。


2
質問に答えることはできませんが、Apple自身が独自の.MacサービスにSproutCoreを使用していることはお伝えできます。そのためには、少なくとも十分に成熟しています。
チャック

うん-それが私の興味を引いた。しかし、私が試したことはほとんどないので、ドキュメントは(特に、たとえばSC.DataSourceとSC.Storeのように)十分に悪いので、トラブルに見合う価値があるかどうかはわかりません。

回答:


20

私たちはsproutcoreを1年以上使用しています。

まず、バージョン0.9を使用して開発しましたが、KVO、大規模なデータセットなどに関連するパフォーマンスの問題がありました。しかし、SproutCoreはJavascript(javascriptに近い)であるため、アプリケーション用に解決できました。私にとって実際には、SproutCoreがJavaScriptコーディングの適切な方法を教えてくれました。私はJavascriptとSproutCoreを同時に学びました。

7月頃、彼らはSproutCore 1.0プレアルファ版をリリースしました。APIが大幅に変更されたため、アプリケーションを新しいバージョンに変換すること自体がプロジェクトでした。そして、その時点ではドキュメントはゼロでした。

今、物事が変更され、ドキュメントと非常に素晴らしいウィキがあります。新しいチュートリアルとドキュメントが毎日追加されました。

SproutCoreを使用/評価することを考えているなら、これが適切なタイミングです。そして、SproutCoreは毎日、その能力とパワーに驚かされます。それでも、ラフなエッジがたくさんあり、それが毎日を減らします。

いくつかのリソース:

SproutCore Wiki

APIドキュメント

データストアAPIの最近の追加(これは非常に重要な部分です)


17

私は、SCを使用して主力アプリの再設計を行う会社と協力しました。私の考えは次のとおりです。

  1. 私は本当に MVCのようなSCアプリのレイアウト。他のJSフレームワークには欠けていると思います。バインディングフレームワークにより、ビューの更新が簡単になります。

  2. 最高のドキュメントはコード自体にありました。

  3. より良いドキュメント/より多くの例が必要です。それらの例はあなたを始めるのに十分ですが、高度なことはほとんどのユーザーを困らせます。

  4. データアクセス層が複雑すぎます。その巨大な謎。彼らは、ドキュメントを実際に補強するか、人々がそれを適切に使用できるように道を開くためのより多くの例を提供する必要があります。一方、それは本当に強力なほとんどORMフレームワークのようです。

  5. 私は彼らがテストを強調するという事実が好きです。

  6. グリッドの欠如は本当の抵抗です。ほとんどではないにしても、多くのアプリにはグリッドが必要です。とはいえ、SCは完全に機能するMVCフレームワークであり、ウィジェット(コンポーネント)リストEXTJSのフレームワークではありません。

  7. 多くのコードは過度に複雑に思えました。メソッドが10〜30行より長くなると、読みやすくするために分割する必要があります。

  8. おそらく最大の考慮事項は次のとおりです。プロジェクトに取り組んでいてSCを検討している場合、有能な開発者を見つけるのに苦労することになります。したがって、小規模な個人プロジェクトには適しているかもしれませんが、メンテナンスが必要な大規模プロジェクトではリスクを冒しています。

  9. IRCサポートは驚異的でした。そのチャンネルの人は本当に役に立ちます。


1
データアクセス層が複雑すぎます。その巨大な謎。 - 確かに。また、デバッグはタスクの1つの地獄です。
c69

@ c69-これを書いたとき、私はそれを信じていました。しかし、それ以来、私は掘り下げて、データストアが非常に強力であり、理解するのが難しくないという結論に達しました。あなたはそれをやってものを起動する必要があります
hvgotcodes

多分、現在のリリースでは、その真の中- (それはそうと、その更新できません)レガシーSC、及びそのちょうど狂気と私の仕事...
C69

あなたが特定の問題が発生している場合は、@ C69、質問をし、多分私は助けることができる
hvgotcodes

15

Googleグループのsproutcoreグループの投稿を閲覧して、何が起こっているのかを感じてください。

数週間前、誰かがドキュメントに不満を抱き、初心者であり、基本的に彼が得たのは、「気に入らなかったら、ドキュメントの作成を手伝ってみませんか」ということです。

開始以来、このような問題が発生します。また、数週間前に、Sproutcoreを使用してハイパーリンクを作成する方法をグループに尋ねました。つまり、簡単なハイパーリンクを作成するのに何時間もかかるようです。

Sproutcoreは、誰が自分のフレームワークを実際に使用しているかを広告しません。通常は良い兆候ではありません。

Appleはそれを使用していると主張されていますが(sproutcore自体ではありません)、よく見るとAppleが独自のコードベースを持っていることがわかります。

私は、スプラウトコアがバグ、単純なテーブルビューの迷惑な、不完全な、または機能しない例の欠如、ドキュメントの欠如、さらには完全なTESTSの欠如でさえ、構築するのに適したベースではないことを発見しました。


5
Appleがそれを使用していると私は主張しましたが、それはApple自身のものです。MobileMeはSproutCoreで作成されています。appleinsider.com/articles/08/06/16/...
チャック

Appleには独自のコードベースがありますが、定期的に公開リポジトリにマージされます。

また、ハイパーリンクの問題に対応して、リッチWebアプリを作成するためのSCが作成されます。これは、通常DOMに自分で触れないことを意味します。そのため、独自のハイパーリンクを作成することは意図されていません。

7

私はSproutCoreを使用していますが、それは単純に素晴らしいことです。jQueryは小さなユーティリティセットを提供し、SproutCoreは優れた高レベルアーキテクチャを提供するため、jQueryからSproutCoreに切り替えました。

これらのJavascriptライブラリを次の順序で評価しました。

  1. Prototypeは大丈夫と感じましたが、jQueryにはより多くのサポートや書籍などがあります
  2. jQueryは素晴らしく感じましたが、優れた高レベルアーキテクチャをサポートしていなかったため、構築を開始しましたが、時間がかかりすぎました。
  3. Cappuccinoには、高レベルの優れたアーキテクチャがありますが、ロードマップとドキュメントがありません
  4. SproutCore THE SOLUTION、これはすてきな高レベルのアーキテクチャを提供し、すてきな組み込みビルドシステム

私たちのトップリスト:

  1. SproutCoreが勝者です
  2. jQueryは優れたツールキットです
  3. カプチーノは有望に見えますが、まだそこにはありません
  4. プロトタイプは大丈夫ですが、私の意見ではjQueryほど良くありません

もちろん、他にもツールキットがありますが、これらは私たちが評価したものです。結論として、Javascriptを使用してデスクトップクラスのアプリケーションを構築している人には、SproutCoreを強くお勧めします。日付ピッカーなどの単純なJavascriptが必要な場合は、jQueryをお勧めします。

もう1つのヒント。この回答を書いている時点では、SproutCore 1.0は最新の安定バージョンです。残念ながら、それは非常に古く、SproutCoreのGithubページから入手できる最新バージョンを使用しています。それを強くお勧めできます。


4

SproutCoreを使用する場合は、SproutTweetsサンプルアプリケーションを掘り下げることをお勧めします。より強力な構造(ステート、動的にロードされたフレームワーク、データソースの便利な例)の多くがそこにあります。

SproutTweetsアプリケーションは、github http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/にあります。

  • また、Webインスペクターを使用してSafariでサンプルを実行すると、より有用な一連のエラーメッセージが表示されることに注意してください。
  • sc-serverには、ローカルWebサーバーで実行されている独自のRESTデータソースにアクセスするために使用できるプロキシが含まれています。上記のsprouttweetsサンプルアプリのビルドファイルを参照して、その仕組みを確認してください。
  • sc-serveに含まれるプロキシはかなり制限されています。データレイヤーリクエストで問題が発生した場合、sc-buildを実行して、プロキシではなくローカルWebサーバーにデプロイします。401認証ループと大規模なデータセット応答のストリーミング(途切れたエンコード)で問題が見つかりました。

本番アプリケーションでSproutCoreを使用するつもりがない場合でも、javascriptアプリケーションプログラミングへの強力なアプローチ、特にKVOやミックスイン(アスペクト)などを確認するために、SproutCoreをさらに検討する必要があります。熟考して学ぶための多くの素晴らしいアーキテクチャ。

最後の点-IRCチャンネルは他の情報源よりもはるかに役立つ可能性があります。これは、グーグルグループの議論の深みに次ぐものです。


2

過去にSproutCoreを使用しました。Selenium RCと呼ばれるツールを使用して、自動化されたWebテストスクリプトを開発するプロジェクトに割り当てられました。Selenium RCは通常のHTML IDとクラスを対象として構築されましたが、SproutCoreは要素IDをコンパイルして要素IDを擬似ランダムにするため、ビューツリーから要素IDを抽出できるようにSproutCoreのAPIを把握する必要がありました。

SproutCoreは、コンパイラーによく似ています。Webページ用に作成するインポートする要素が多すぎる場合、jQueryを使用してアプリケーションをビルドすると、IDで名前空間の衝突が発生する可能性があります。jQueryを使用してWebページを構築する場合、HTML要素のすべてのIDはグローバルです。コンパイルまたは解釈された言語のようなローカルスコープのようなものはありません。

SproutCoreは最終的にHTMLコンテンツを管理します。ビューはjavascriptを使用して構築され、コンパイルされます。SproutCoreチュートリアルを実行すると(そして、SproutCoreのドキュメントが不足していることに同意するので、ビジネスアプリケーションではSproutCoreを避けるようにしてください)、完成したプロジェクトのID要素が「sc-###」であることがわかります。ウェブサイト上で名前空間の衝突が解決されるようになり、作業が高速化される可能性があります。

ただし、大きな懸念があります。彼らのドキュメントは、なぜ人々がそれを使うべきかを説明するのに十分な仕事をしていません。このプロジェクトはオープンソースですが、ビューがどのように構築されるかについての低レベルのjavascriptを理解するために掘り下げるのは苦痛になります。Javascriptは関数型言語ですが、動的関数型言語には何か問題があります。柔軟性が高すぎます。Scalaをプラグインしています。

最後の問題。SproutCoreは遅い場合があります。しかし、それは支払う代償です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.