Zepto.jsは実用に耐えうるか

2,358 views
Skip to first unread message

IgariTakeharu

unread,
Apr 26, 2012, 10:13:14 PM4/26/12
to html5j.org
はじめまして。猪狩と言います。
初投稿になります。よろしくお願いします!

(このコミュニティが僕にとって最も濃度の高い情報減で
いつも非常に楽しく拝見させていただいてます!ありがとうございます!)

今回、業務にて
Zepto.jsを検討しているのですが、
実際に採用された方などいらっしゃいますでしょうか?

実績がまだあまり無いように思うため、
危険をおかすならjQuery使っておいた方が良いというのは最もだと思うのですが、

・今回モバイルのみ対象なので、軽いほうが良い
・pinchIn()やpinkOut()などを利用したい

という利点から検討を始めました。

もし何かご意見や知見などありましたら、
共有いただけると嬉しいです!

# 書き方で何か問題などあればご指摘ください!すみません!

宜しくお願いします。


猪狩


--------------------------------------------------
FB:http://www.facebook.com/IgariTakeharu
TW:http://twitter.com/#!/IGARI_Takeharu
--------------------------------------------------

Shogo Ohta

unread,
Apr 30, 2012, 10:45:42 AM4/30/12
to html5-dev...@googlegroups.com
こんにちは、クックパッドの太田(@os0x)と申します。

クックパッドでは、スマートフォン向けのページにはZepto.jsを使用しています。
jQueryから切り替えたのが去年の8月くらいで、これまで特に問題は出ていません。

導入時に検討したことを振り返りつつメリット・デメリットをまとめると、

■メリット
・サイズが小さく、古いiOSでもキャッシュされる
参考: http://webos-goodies.jp/archives/mobile_browser_cache_limits.html
・jQueryとAPIが良く似ているので、学習コストが低い
・タッチイベント、CSSアニメーションなどWebKit向けの処理に対応している

■デメリット
・jQueryと互換性があるといっても、jQueryプラグインはそのままでは動かない
・jQueryと比べると小さいプロジェクトなので、将来性が不安

メリットがあるのはわかっているけど、実績や将来性が不安で踏み切れないというのが実情ではないかと思います。
実績については弊社で9ヶ月くらい使って問題なかったので大丈夫です(笑)。
将来性については、まあ将来のことなんて誰にもわからないのですが、
Zepto.js作者のThomas Fuchs氏は script.aculo.us の作者としても知られる有名人ですし、
コンパクトなライブラリなので、後でZeptoをやめてjQueryに戻すことになってもそう苦労しません。

ひとつチップスとして、Zeptoを使ったコードを書くときは、次のスタイルを使うルールにしておくのがオススメです。
(function($) { $... }(Zepto));

このように、Zeptoと書くのは一度だけで、必ず引数として再定義した$変数を使うというルールにしておけば、
jQueryに戻すときに一箇所を書き換えるだけですみます。

(function($) { $... }(this.Zepto || this.jQuery));
のようにすれば、jQuery、Zepto両対応のjQueryプラグインなんかも簡単に書けます。

ただ、Zepto.jsは最近1.0rc1が出たばかりで、rcが取れて正式な1.0が出るまでは導入のタイミングとして微妙かもしれません。

以上、参考になれば幸いです。

--
太田昌吾 <os0...@gmail.com>


2012年4月27日11:13 IgariTakeharu <igari.t...@gmail.com>:

> --
> このメールは Google グループのグループ「html5j.org」の登録者に送られています。
> このグループに投稿するには、html5-dev...@googlegroups.com にメールを送信してください。
> このグループから退会するには、html5-developer...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグループにアクセスしてください。
>

IgariTakeharu

unread,
May 1, 2012, 9:38:08 PM5/1/12
to html5j.org
太田さん

レイハウオリの猪狩と申します。

とても拙い質問へ詳細で丁寧な質問をありがとうございます!
(いつも記事など楽しく拝見させていただいてます!)

---------------------
> ・サイズが小さく、古いiOSでもキャッシュされる
> 参考:http://webos-goodies.jp/archives/mobile_browser_cache_limits.html

これは初めて知りました、ありがとうございます!
やはりパフォーマンス面での恩恵が一番ありますね。

---------------------
> ・jQueryとAPIが良く似ているので、学習コストが低い
> ・タッチイベント、CSSアニメーションなどWebKit向けの処理に対応している

自分なりに調べてみたところ、
swipeやpinchoutなどが使えるのは、便利だなと思いましたが、
(↑アドオンが必要ですが)
ネイティブのswipeやpinchoutと同じように
「やっぱやめた」というキャンセルの動作の対応が入っていなかったので、
少し使いづらいなと感じていました。

---------------------
> ■デメリット
> ・jQueryと互換性があるといっても、jQueryプラグインはそのままでは動かない

確かに、微妙な違いもありますしjQueryプラグインを使っている時は辛いですよね。

---------------------
> ・jQueryと比べると小さいプロジェクトなので、将来性が不安
> メリットがあるのはわかっているけど、実績や将来性が不安で踏み切れないというのが実情ではないかと思います。

やはりそうなんですよね。。

---------------------
> 実績については弊社で9ヶ月くらい使って問題なかったので大丈夫です(笑)。

これは非常に大変貴重な情報です!(笑 ありがとうございます!

---------------------
> 将来性については、まあ将来のことなんて誰にもわからないのですが、
> Zepto.js作者のThomas Fuchs氏は script.aculo.us の作者としても知られる有名人ですし、
> コンパクトなライブラリなので、後でZeptoをやめてjQueryに戻すことになってもそう苦労しません。

仰るとおりですね!問題が起きた時に、jQueryに移行する際、
コストが低いというのは、とても導入の敷居を低くしてくれますよね。

---------------------
> ひとつチップスとして、Zeptoを使ったコードを書くときは、次のスタイルを使うルールにしておくのがオススメです。
> (function($) { $... }(Zepto));
>
> このように、Zeptoと書くのは一度だけで、必ず引数として再定義した$変数を使うというルールにしておけば、
> jQueryに戻すときに一箇所を書き換えるだけですみます。
>
> (function($) { $... }(this.Zepto || this.jQuery));
> のようにすれば、jQuery、Zepto両対応のjQueryプラグインなんかも簡単に書けます。

なるほどです!!これは便利な記述です!ありがとうございます!

---------------------
> ただ、Zepto.jsは最近1.0rc1が出たばかりで、rcが取れて正式な1.0が出るまでは導入のタイミングとして微妙かもしれません。

確かに、ですね。諸々貴重なご意見有難う御座いました!

■■■■■■■■■■■■■■■■■■■まとめ■■■■■■■■■■■■■■■■■■■

個人的なまとめをさせて頂きますと、

・クックパッドで9ヶ月くらい使っていて大きな問題は起きていない(!)
・jQueryの互換性は完全なものではないので、プラグインの利用時や、
 記述の差異があるケースでは、補完作業が必要
・jQueryに移行または戻すのは、そこまで大変じゃない
・正式版を待ってたほうが良いかも
・パフォーマンスはやはり良い(ファイルサイズベースでも明らか)
・(function($) { $... }(this.Zepto || this.jQuery));としておくと、後が楽
・将来性はわからない
 ↑ただ、このスマフォに特化したライブラリはjqMobiをはじめ、必ず需要があるはずなので頑張ってもらいたいですね!

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

以上を踏まえて導入の検討をさせて頂きます!
太田さん有難う御座いました!!

よろしくお願いいたします。
> 2012年4月27日11:13 IgariTakeharu <igari.takeh...@gmail.com>:

Toshiya TSURU

unread,
Aug 14, 2012, 9:40:44 AM8/14/12
to html5-dev...@googlegroups.com
こんにちは!

今さらな感、満載ではございますが、
jQuery のオルタナ として Zepto を使った際に、
面倒だった点を情報共有まで。

Zepto.js では、 fadeOut() fadeIn() が無く(201206時点) 困った事があります。

2012年5月2日水曜日 IgariTakeharu igari.t...@gmail.com:


--
Toshiya TSURU <turut...@gmail.com>
http://blog.turutosiya.com/

坂巻 翔大郎

unread,
Aug 14, 2012, 11:31:34 AM8/14/12
to html5-dev...@googlegroups.com
ついでに、情報共有を。

iOS5で確認した不具合(?)なのですが、
iframeの中でZeptoを読み込むと、input[type="text"]のvalueを
コピーしてもクリップボードに入らないようです。(カットも出来ない)

1. inputをタップして
2. 長押しして
3. [全選択]を押して
4. [コピー]を押す。

Zepto有り:http://jsfiddle.net/wYMKE/5/embedded/result/
Zepto無し:http://jsfiddle.net/wYMKE/4/embedded/result/




2012年8月14日 22:40 Toshiya TSURU <turut...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages