思ってることってこんなもんだよ
Chrome extension

4年近く前の2012年に僕が考えたChrome拡張機能を作るときのデザインパターンというエントリを書きました。最近参加したイベントで「よういちろうさんの拡張機能の記事見て作ってみました〜」と声をかけてくれた人がいて嬉しかったのですが、2012年のそのエントリは、すでに内容が古くなってしまっています。最近の状況を踏まえて、内容を新しくした「2016年度版」を書いてみようと思います。 変更しようと思った点は、以下です。 prototype.jsは使わず、ECMAScript 2015...

最近Chromebookを買いました。Dell Chromebook 11 です。ちゃちい作りかと思ってたのですが、かなりしっかりした作りで、かなり気に入りました。ただし、macbook airを持ってるので、もちろん普段はChromebookを使う機会は少ないです。ただし、僕にはどうしても作ってみたいものがあり、その動作検証のため、そして僕が作ったものによって、僕がChromebookを利用する機会が増えるように、と購入を決意しています。 その作りたいものとは何か、それはFile Sys...

今日の夜、SixApart社主催の「MT Hackathon @ Six Apart New Office 〜Data API で Chromeアプリを作ろう〜」に向けた勉強会が開かれました。そこで僕はChromeアプリ&拡張機能でできることや作り方についての発表をしてきました。 Chromeアプリ/拡張機能の入門に関する資料は、あるようであまりないので、ぜひ上記を参考にChromeアプリや拡張機能を作ってみてください。そして、Movable Type Data APIを使ったChrom...

一部で話題になっていたGithubにある「MobileChromeApps / mobile-chrome-apps」ですが、先日遂に正式にGoogleからアナウンスがありました。デスクトップPC向けに開発されたChrome Appを元にして、このツールを使ってモバイル向けアプリ(Android/iOS)を自動的に作成することが可能です。HTML5とJavaScript、CSSを使って、Android/iOSアプリを開発することができるだけでなく、その中で各種Chrome APIを使うこと...

Chromeのstable 29から、OAuth2を拡張機能内で扱うためのAPIが搭載されました。APIリファレンスを和訳してみましたので、興味のある方は参考にしてください。 Original: http://developer.chrome.com/extensions/identity.html chrome.identity 説明: OAuth2アクセストークンの取得のためにchrome.identity APIを使います。 利用可能環境: Chrome 29 安定版以降 権限: "...

既に「Chrome Packaged Apps」として開発者に知られていましたが、遂にGoogleはそれを「Chrome Apps(Chromeアプリ)」という名前で正式公開しました。今まではPackagedアプリを作ってChromeウェブストアに公開しても、検索にヒットせず、カテゴライズもされていませんでした(URLを直接知らないと見つけられなかった)。現在は、Windows向けのChromeウェブストアで「PC向け」としてPackagedアプリがいくつか公開されています。 以下、Ch...

たまに「何か新しいAPIが登場してないかなぁ」とChrome extensionのAPIリファレンスを眺めに行きます。今日も眺めていたら、見慣れないAPIがリストに追加されているのに気がつきました。 その名は、「chrome.system.cpu」です。 http://developer.chrome.com/extensions/system_cpu.html これはCPUに関するメタ情報を得るためのAPIです。まだソースコードのtrunkにしかなく、自分でビルドしないとこのAPIを試す...

Chromeを担当しているGoogle Developers Expert達と、Chromeに関する書籍を執筆しました。7月5日に発売予定です。 この本は、3つの章から構成されています。 Chrome API Chromeウェブストア デベロッパーツール 僕はChromeウェブストアの章を担当しました。ウェブストアの掲載内容、アプリや拡張機能をウェブストアに公開するための手順、そして課金APIやウェブストアにアプリを有料で販売するためのマネタイズ手法について書いています。アプリや拡張...

ちょっと前に僕がリリースしている拡張機能をバージョンアップしようとして、Chromeデベロッパーダッシュボードを開きました。そこには見慣れないリンク「詳細」がありました。 押してみると、アイテムIDや公開鍵が表示されました。 ここで「おぉ、なんと便利な!」と思った方は、下を読まなくてもいいです。僕は最初「え、公開鍵なんて表示されても、何に使うんだ?利用用途ないだろおい」と思ってしまいました。でも、理由なく単に「特に意味ないけど出してみました、てへっ」なんてことはないと思うので、G+のコ...

「操作はしていないけれど、画面を表示しっぱなしにしておきたい」という場面があります。例えば、プレゼンテーションの真っ最中とか、電子書籍を読んでいる時などです。そのような種類のアプリや拡張機能をChrome向けに作った際に、chrome.power APIを使うことで、一時的に省電力に入ることを抑制することが可能です。 Chrome 27から、アプリと拡張機能の両方でchrome.power APIを使うことができます。そのAPI Referenceを和訳してみましたので、下に掲載します。 ...

そろそろStableになるんじゃないかと思って、Chromeの拡張機能で利用可能になる予定のDownload APIのリファレンスを和訳してみました。Chrome Canaryでは実際に試すことができます。Download APIは、ファイルダウンロードをプログラムから制御可能にするAPIであり、chrome://downloads/ ページ相当の機能をプログラムで実現可能というものです。 結構このAPIを待っていた人は多いと思います。Stableに入るまでに、ぜひAPIの使い方をマスター...

Chrome拡張機能を久々にバージョンアップしようとして、Chromeデベロッパーダッシュボードに行ってみると、何やら新しい機能を発見!それは、 「段階的に新しいバージョンの利用ユーザを増やしていける機能」 です。Chrome拡張機能のzipファイルをアップロードすると、以下のようなUIが出てくるようになりました。 つまり、ここで入力した割合で限定されたユーザ数にのみ、このバージョンを利用してもらうということが可能になります。例えば、新しい機能の評判を徐々に見ていくとか、新しい機能による...

ちょうど昨年の今日に、Image collector extensionをリリースしました。画像の一括ダウンロードという機能が欲しくて自分用に作った拡張機能でしたが、おかげさまで今日Developer Dashboardを見たら、1週間のユーザ数が2万人を超えることができました。 Google Analyticsの測定でも、訪問数が2万を超えているのがわかります。 拡張機能側は最近手を入れてなくて、もっぱらサーバ側の調整をしてます。ホントはクラウドサービスを使って負荷分散とか冗長構成と...

時代はそろそろ「オフラインファースト」になる模様ですが、そのためにはブラウザが情報をオフラインで扱うことを可能にする機能が充実してくれないといけません。いろんなAPIを組み合わせて駆使していけば、現状でもできないことはないです。しかし、もちろん僕らは手軽にオフライン対応Webアプリを作りたいですよね?同期処理や競合など、自分で面倒見たくは誰しもないはずです。 SyncFileSystem APIはそんな僕らの要求に応えてくれるかもしれないと考えています。まだChrome Canaryでしか...

Image Collector extension、2月10日にやらかしてしまった結果、多くのユーザが休眠状態になってしまいました。何をしてしまったかは、「Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか」のエントリをご覧ください。 その後、徐々に復活してきてます。ホントに徐々にですけど。休眠してたユーザが再び使い始めてくれているってことでしょうか。 もどってこーい!そして再び使ってくれー!

開発者は常に新しい価値をユーザに提供したいと考えています。自分の技術的興味が、結果としてユーザを幸せにすることを切に願っています。新しい機能を提供するということは、時にユーザの持ち物をプログラムから更にアクセスできるようにならないと実現しません。勝手に持ち物に触ることは、現実世界ではやってはいけないことですし、もちろんChromeの中においても同じです。ユーザに許可を得て初めて、プログラムはユーザの持ち物に触れる権利を得られるのです。 全てのユーザが「うん、いいよ」と言ってくれれば話は楽で...

ちょっと前に「Event pageを複数回取ろうとしたときの罠」というエントリをしました。これは、以下のようなコードを実行した時に、Event pageのwindowオブジェクトを最初の1回しか取得できない、っていう現象を報告したものでした。 chrome.runtime.getBackgroundPage(function(backgroundPage) { console.log("1: " + backgroundPage); }); chrome.ru...

自分が作って公開しているChrome拡張機能をEvent page対応したことは前のエントリで紹介しました。一般的にはそのエントリの内容で十分であり、Chrome拡張機能の動作自体は問題なかったのですが、思わぬところで落とし穴が一つありました。 それは、Ajax通信によるバックエンドサーバとの通信料の増加、でした。 Image Collector extensionでは、Dropboxなどのクラウドストレージサーバに画像をアップロードする機能を、Chrome拡張機能内ではなく、僕の自宅で動...

【追記: 2013/02/08】以下の挙動はChromeのバグっぽいので、バグレポートを提出しています。 Chrome拡張機能を作っていて、最近はまったことをここで紹介したいと思います。それは、「複数回Event pageを取得しようとしたときの挙動」についてです。常駐しないエコタイプのBackground pageである「Event page」ですが、これをポップアップウィンドウなどから取得する際には、以下のように記述します。非同期な感じです。 chrome.runtime.getBa...

いくつかChrome拡張機能を作ってChromeウェブストアに公開しているのですが、それを最初に公開したときはmanifest.jsonファイルのバージョンがまだ最初の頃でした。現在ではバージョン2が主流であり、そろそろ古いバージョンの拡張機能は撲滅される予定になっています。そのため、開発者はそろそろ急いで新しいバージョンに変更すべく、せっせと移行作業を進めなければなりません。これは何もGoogleの開発者いじめではなく、ちゃんとした理由があります。その理由は、どれも開発者およびユーザへの...

昨日、Image Collector extensionの新しいバージョンをリリースしました。そのバージョンは、”スライドショーモード”という名前の新しい機能をサポートしています。きっとその機能は、ネットサーフィンをより楽しくしてくれると思っています。 この拡張機能のボタンをクリックしてポップアップを開いたとき、スライドショーモードを開始するための新しいリンクを見つけることができます。 そのリンクをクリックすると、スライドショーモードが開始されます。今見ていたWe...

昨日1月24日の夜に、Chrome+HTML5 Developers Live Japan #1でChrome extensionの話をしてきました。その時の模様は以下で見れます。7分過ぎくらいから音量が大きくなりますので、それまではVolume MAXでお願いします。 使ったスライドは以下です。 内容としては、ちょっと前に書いた「僕が考えたChrome拡張機能を作るときのデザインパターン」の内容をベースに、Chrome拡張機能のHello, worldを作るための方法や、拡張機能でで...

Chrome拡張機能として提供しているImage Collector extensionの中で、今までWebKitBlobBuilderを使っていました。使ってた箇所は、画像を一気にダウンロードするコマンドが列挙されたスクリプトファイルを作る箇所。以下のようにしてました。 var script = "..."; var blobBuilder = new WebKitBlobBuilder(); blobBuilder.append(script); var link...

めでたい。実はサーバの運用に結構苦労してました。今はロジックの変更をして負荷軽減できてます。 今年5月の公開から今までの利用ユーザ数のグラフがこれ。順調に増えてます。 Image Collector extensionは、ChromeでWebページにある画像を手軽に一括ダウンロードできる便利な拡張機能です。ぜひお試しください。

最近いくつかのChrome拡張機能を作っていて、すでに数千人のユーザを獲得できているものが出てきてたりします。 Image collector extension goo.gl URL Shortener extension mixi Check button extension Semantic inspector これだけ作ってると、何となく自分でのChrome拡張機能を作り出す際のデザインパターン・・・っていう大それたものじゃないけど、ようはテンプレが確立されてきます。全く褒めら...

週アスのWebサイトを見て初めって知ったのですが、Image Collector extensionが週刊アスキー10月16日号の記事の中で取り上げられていました。 「Googleドライブ完全活用」という特集記事の中です。Image Collector extensionは画像をGoogleドライブにアップする機能も備えています。これが記事のテーマに合ったみたいです。 URLがこのブログになってて、Image Collector extensionを使いたい人がインストールの仕方がわか...

やった!Image Collector extensionの週間ユーザ数が1万人を突破しました! この拡張機能は今年の5月6日から公開していて、半年で僕の目標を達成したことになります。 この拡張機能を使うことで、今見ているWebページの画像を簡単に、そして迅速に入手することができます。もし興味あればぜひ使ってみてください。

goo.glサービスを手軽に使うための「goo.gl URL Shortener extension」ですが、Chrome 19からWeb Intentsが普通に使えるようになったので、さっそく組み込んでみました。 goo.gl URL Shortener extension - Chrome Web Store 試す場合は、goo.gl URL Shortener extensionをインストール後に、以下のページに行って、[Shorten link]ボタンをクリックします。 Shor...

Webページ内の画像をいかに一気に自分のPCに保存するかを考えて開発を始めたChrome Webブラウザ向け拡張機能「Image Collector extension」ですが、昨夜にバージョン2.0.1をリリースしました。 このバージョンにおいて、大きな機能追加を行いました。それは「Dropboxへの画像の登録」をできるようにしたことです。スクリプトファイルを自分で実行することなく、リンククリックのみでWebページ上の条件にあった画像を一気にDropbox上のフォルダに登録することがで...

あともうちょっとで3000だ!と思ってたら、すでに3200ユーザを突破していました。 Chromeを使っている方は、ぜひご利用してみてください!

Google URL Shortener extensionを利用してくれているユーザの数は、毎週増加しています。 もしまだこの拡張機能を使っていない場合は、すぐにお試しください。また、もしご利用されている方は、ぜひ「こんな機能が欲しい」といったご意見を気軽に教えてください。

Chrome Webブラウザ向けに作った"mixi Check button extension"ですが、好きな画像をポップアップウィンドウの背景にセットできるようにしました。 森な気分であれば、こんな風に。 海な気分であれば、こんな感じに。 俊介Love!であれば、こんな感じにも。 背景画像は、この拡張機能のオプションから設定することができます。 あなたのネットライフのお供として、ぜひお使いくださいませー!

11月に公開した"goo.gl URL Shortener extension"は、既に以下の言語向けに国際化を完了しています。機能拡張するたびにGoogle翻訳で各言語のメッセージリソースを作りだすのは手間なのですが、少しでも多くの人に使ってもらうためには、安いコストです。 英語 日本語 フランス語 中国語 ポルトガル語 国際化の効果について、皆さん知りたいと思いませんか?この拡張機能では、Google Analyticsで測定を行ってます。その結果のグラフをここで紹介してみましょう...

My extension "goo.gl URL Shortener extension" helps you to create tiny URL with Google URL Shortener service and to share it for a social media you're using. From its version 1.16.1, the extension has been supporting Read It Later service. For ins...