この資料では、JavaScript でオブジェクト指向プログラミングを行う際に備えておくことが望ましい、基礎知識や概念について解説します。 【対象者】 ・JavaScript でアプリケーションを構築できる方 ・JavaScript におけるオブジェクト指向プログラミングの 実現手法や原理への理解を深めたい方 ・Java 的なクラスベースの言語との違いに違和感や混乱を 感じてらっしゃる方
この資料では、JavaScript でオブジェクト指向プログラミングを行う際に備えておくことが望ましい、基礎知識や概念について解説します。 【対象者】 ・JavaScript でアプリケーションを構築できる方 ・JavaScript におけるオブジェクト指向プログラミングの 実現手法や原理への理解を深めたい方 ・Java 的なクラスベースの言語との違いに違和感や混乱を 感じてらっしゃる方
@naoya_ito さんがブログに書かれていた Reveal ですが、Titanium Mobile 製のアプリでもちゃんと動きました。 これは捗る。 もちろん Titanium Mobile ではそのまま動きませんので、モジュールを作ります。と言っても、reveal.framework のリンクを貼るだけの簡単なお仕事です。 まずはモジュールプロジェクトを作りましょう。 $ /path/to/Library/Application\ Support/Titanium/mobilesdk/osx/3.1.0.GA/titanium.py create —platform=iphone —type=module —name=TiReveal —id=be.k0suke.tireveal $ cd TiReveal そしたらプロジェクトを Xcode で開いて reveal.framewor
はじめに 最近になって jQuery に Deferred Object と呼ばれるものが追加されたことを知りました。バージョン1.5から追加になったようです。 ここのところ色々な場面で非同期処理と付き合うことが多かったこともあって調べてみたのですが、中々嬉しい機能を持っているやつであることが判明したので、調べた内容についてまとめてみました。 非同期処理は結構書きにくい jQuery Deferred オブジェクトは非同期処理を書きやすくするために用意されたものです。でも何でそんなものが追加されたのでしょうか? 非同期処理は複雑になってくると書きにくいものです。Ajaxリクエストを例に挙げてみます。 $.ajax({ url: "serviceA.json", success: function(data) { // リクエストが成功したときの処理 }, error: function(x
Conrad Irwinさんの「MVC is dead, it's time to MOVE on.」を訳してみました。 MVC is dead, it's time to MOVE on. この訳文も原文のライセンスを引き継いでCC-BY-3.0ライセンスで利用可能とします。 追記13:58 すでに訳してた方がいました。MVCの時代は終わった。MOVEを使い始めましょう。 - ふじこのプログラミング奮闘記 MVCは死んだ。MOVEするときがきた MVCはすばらしいアイデアだ。モデルを持ち、モデルは内部に少しの状態をもつ。ビューは内部に少しのUIをもつ。そして、コントローラは内部に少しの・・・ 何を持つ? 私は確かにこのことに気づいた最初の人物ではない。しかし示されたようなMVCの問題のために、あなたは最後には過剰なコードをコントローラに詰め込むことになる。なぜなら、他にどこに入れていいか
JavaScriptではさまざまなフレームワークが登場していますが、最近注目を集めているのがMVCアーキテクチャの実現を容易にするMVCフレームワークです。Publickeyでも以下の記事などで紹介してきました。 JavaScript MVCフレームワークはすでに十種類以上、その比較や最新情報などのまとめ JavaScript MVC座談会。遅くならない? それぞれの特徴は? サーバとの通信は?(前編) - Publickey JavaScript MVC座談会。遅くならない? それぞれの特徴は? サーバとの通信は?(後編) しかしプログラミングの世界では、MVCアーキテクチャ以外にもさまざまなデザインパターンがあります。JavaScriptプログラマはもっとそれらを検討すべきだ、という記事「The World Beyond MVC」(MVCの向こうにある世界)が、The David Wa
JavaScriptとTitaniumではじめる iPhone/Androidアプリプログラミング 【Titanium Mobile SDK 2.1 & Titanium Studio 2.1 対応】 作者: 森真吾出版社/メーカー: マイナビ発売日: 2012/09/14メディア: 単行本(ソフトカバー)この商品を含むブログを見る 明日発売のこの入門書を著者である森真吾さん(@sngmr)から直々にご献本頂きました。 ありがとうございます m(_ _)m さて、献本を受けた上は拙速が信条である当ブログといたしましては、ざざっと内容を読ませて頂いた感想的なものをまとめたいと思います。 まずはこれをご覧頂きたいと思います。 暗いところで撮ったので不鮮明なのですが、これでも分かる通りカラー図版・スクリーンショット(注目すべき箇所にはマークももちろんされている)が充実している構成となっておりまし
私は陰謀論者じゃないですし JavaScript の new 演算子が大好きなわけでも大嫌いなわけでもないです。 念のため。 本記事は Hiraku さんが書かれた下記記事への言及です。 newを封印して、JavaScriptでオブジェクト指向する(1) newを封印して、JavaScriptでオブジェクト指向する(2) newを封印するべき4つの理由 new 演算子は使うな!? 「newを封印するべき4つの理由」 でも new がいかに糞であるかが書かれていますし、その記事からも言及があるように Crockford さんが書かれた書籍 『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』 でも new 演算子は Bad Parts に分類されています。 new 演算子が忌避される理由はいろいろあるみたいですが、Hiraku さんの記事では n
iPhone対応&cuePlaylistを使って簡単に実装した話はこちら http://d.hatena.ne.jp/koba04/20121030/1351526950 YouTubeで好きなアーティストの曲を連続再生させたいって思ったとき、すでに「君のラジオ」だったりYouTube本家にDiscoとしてあるわけですが、Last.FMユーザーとしては自分のTop50のランキングからランダムにいい感じに曲を選んで欲しいと思ったりしています。 なので、そういうものを作ろうかなと思いながら全然形に出来ていないので、ちょびちょびアウトプットしながら作っていこうかと思います。 今回はここまで http://koba04.com/youtube/index.html ざっくり必要なもの YouTubeの動画を連続再生させる。(←今回ココ) Last.FMのアカウントからランキングを取得して、そのアー
ECMAScriptの言語仕様と組込関数の動作仕様は非常にきめ細かく規定されていますが、それに含まれていないJavaScriptの関数の仕様はどうもはっきりしないように思えます。そのためか、それを利用するコードも正確なものではないものが見受けられます。その1つがsetInterval関数。何をいまさら?という感じですが、ちょっとググッてみたところsetInterval関数を解説する記事は沢山見つかりますが、そのことについて注意している記事はほとんど見当たりません。 何のことかと言うと、setInterval関数は一定間隔で指定した関数を実行する、とだけ説明されていて、何が一定なの?ということについての説明が抜けているように思われます。例えば、もし、関数が一定間隔でコールされるなら、下のコードを実行した場合、duration=???はいくつと表示されるのが正しいのでしょうか? functio
JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) : ATNDも皆さんのご協力で25日間終わり、無事新しい年が迎えられそうです。参加された方、ご苦労様でした。もしアドカレに穴が空きそうだったら書いてみようと思ってたネタを作っていましたので、アドカレ終了記念の番外編で書いてみます。 ちょっと前のブログになりますが、Node.js Module – exports vs module.exportsな記事が掲載されていました。 Node.js のモジュールを作成する際に使用する exports 変数と module.exports 変数の違いについての記事です。私も以前から「 module や exports って変数はいったい何だろう?」とか、「require()関数って突然どこから現れてくるのだろうか?」など実際その仕組みはどう
先日、「JavaScriptのオブジェクトについて考察してみた - あと味」を書いてから、chikuraさんからコメントいただいたり、id:dankogaiさんから「404 Blog Not Found:javascript - にはクラスはない」という記事で言及いただいたり、JavaScript: The Good Partsを読み返したりした結果、newについて調べたいという衝動にかられましたので、その調べた結果を書いてみたいと思います。 newを調べようと思ったキッカケを整理 まずは、そのキッカケから整理します。 chikuraさんのコメントより 押さえるべきポイントは、new演算子の際に何が行われるか?だと思うので、こちらのページもぜひ読んでみてください。 JavaScript の new 演算子の意味: Days on the Moon http://nanto.asablo.j
Ti.includeじゃなくてrequireを使うと幸せになれるっぽい。 CommonJSでJavaScirptのモジュールを定義することになるので、Ti.includeをそのまま置き換えることはできないけど。 これで黒魔術とおさらばできるかしら。 実験 app.js var window = Ti.UI.createWindow({ url: "lib/hoge.js" }); window.open(); Ti.includeとは違うところを確認するためにlib以下のurlを指定したウィンドウを開く。 lib/hoge.js var hoge = require("lib/fuga"); hoge.foo(); lib/fuga.jsのrequireを行う。 Resourcesからの相対パスで指定できているところに注目。 Ti.includeで同じような指定をすると Ti.includ
説明 タイトルはほとんど釣りです。奇跡も魔法もありません。最近よく勉強会をしているという話を前回のエントリで少ししましたが、プレゼンするのにいちいちKeynoteやPowerPointを開いていては骨が折れるし、参加出来なかったメンバーが後からWeb上でスライドを見たいということもあるので、自分でHTMLで手早くスライドを作るためにツールを作りました。jQueryやその他ライブラリが頑張って働いてくれたのでJS部分は実質100行弱のコード量でした。*1 kyubeyはjQueryを利用して作った小さなスライドツールです。作ったばかりなので機能はほとんどありませんが、小さいが故にコードの理解や拡張がしやすいかと思います。Githubに公開しているので良ければお使いください。ちなみに下記サンプルとソースコードを見て頂ければ大体理解出来るかと思います。機能要望があれば今後拡張していくつもりです。
Web 開発や拡張機能開発で JavaScript のコードを書いていると、誰もが一度は次のようなことで悩むかと思います。 ブロックスコープと名前空間 (グローバル変数汚染の回避) 読み書きしやすくデバッグしやすいコードスタイル コールバック関数と this オブジェクトの取り扱い デバッグ方法とデバッグ支援モジュール 非同期処理の書き方 いずれも解決方法は人によって様々で、これが常にベストと言えるものがなさそうですが、私なりにそれぞれ検討したことなどを書いてみようかと思います。もっと良い方法があるとか色々皆さんのご意見やツッコミをいただければ幸いです。 JavaScript では名前空間は言語仕様でサポートされておらず、ライブラリや拡張機能などのコードを書くときにはグローバル変数の使用を最小限に抑える必要があります。先日の Mozilla 勉強会@東京 3rd でも佐藤さんと守山さんの発
jQuery でスクレイピングできたらセレクタ使えるし便利かなーと思ったりしたんですが、Rhino と env-js を使うと超簡単にできたのでレポートしてみます。 Rhino と env-js って何ぞい? Rhino ってのは Java で書かれた JavaScript エンジンです。Rhino を使うとコマンドラインから JavaScript を実行できます。 Rhino には DOM が無いので単体では jQuery を実行することはできませんが、env-js という DOM ライブラリを使用するとこの辺はクリアできます。 env-js の中に jQuery を使ったサンプルがいくつか入ってますので、Java とか JavaScript とか詳しい方はそちらを見てもらった方が早いと思います。 使ってみる まず env-js をビルドしないといけないのでその辺の手順から説明します。
Extend.jsって? どうも皆さんこんにちは。白石俊平と申します。 F-Questで書かせて頂く初めての技術記事として、今回はExtend.jsと言うフレームワークのご紹介をしたいと思います。 Extend.jsは、軽量なJavaScriptライブラリで、先日公開したばかりの新しいプロダクトです。 現在のバージョンは0.8で、今後は1.0のリリースに向けて、テストやドキュメントの整備を行っていく段階です。 ライセンスは制限の緩いMITライセンスなので、商用利用も自由に行えます。ディスカッション用のGoogleグループはこちらになります。 Extend.jsの目的は、JavaScriptでよく利用されるユーティリティ関数をコンパクトにまとめたライブラリを提供する事です。JavaScriptプログラミングをある程度経験した事のある方なら、頻出する処理をまとめた自作のライブラリ(common
id:naoya さんの記事で気づいた Titanium ですがあまりに楽しいのでここ1週間ほど暇があればコードを書いています。そろそろ、プロダクトレベルのモノが仕上がりそうなので AppStore に提出したいところ。 ただし、iPhoneとAndoridアプリが一気に作れる、とか思ってさわると結構機種依存のコードを書く必要に迫られるので期待を裏切られます。ロジックのコードが共通化できるぐらいに考えていたほうが気楽だと思います。それでも、Cで書いてiPhone,Androidで共通化するよりはよっぽどらくだと思いますが。 最近は iPhone で動くことだけを考えて、実装しているので、今回は Objective-C で実装している時との比較 はまりどころ PhoneGap との違い をメモしておきます。 Objective-Cと比べて良い メモリ管理不要 もうこれだけで、僕は移行したくな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く