Reactive-Evernote-SDK-iOSを作りました

Reactive-Evernote-SDK-iOSを作りました。Evernote SDKをReactiveCocoaで使えるライブラリーです。GitHubで公開しています。

下記のように使います。

[[[RACEvernoteNoteStore noteStore] listNotebooks] subscribeNext:^(NSArray *notebooks) {
    NSLog(@"%@", notebooks);
}                                                         error:^(NSError *error) {
    NSLog(@"error: %@", error);
}                                                     completed:^{
    NSLog(@"completed");
}];

さすがにThriftのコードジェネレータを作成するのは難しいので、[RACSignal createSignal:]で既存のEDAM系のクラスを呼んでいます。

まだlistNotebookとlistTagsしか試してないので、お暇な方は試してバグ報告よろしくです。podspecもあるのでCocoaPodsで簡単に導入できると思います。

Evernoteにファイルを保存するフォルダアクションの作り方

指定したフォルダに入れたファイルをEvernoteにクリップするEverDesktopというアプリが公開されました。850円なので躊躇される方もいるかと思うので、無料で似たような機能を作成する方法を解説します。

まず機能を作成する前に確認。
ファイルをクリップするだけならDockのEvernoteアイコンにファイルをドラッグ&ドロップするだけで可能です。
Evernote Icon

さて、フォルダにファイルを入れてクリップするためにはフォルダアクションを利用します。フォルダアクションというのは、指定のフォルダにファイルやフォルダが追加されたら動作する機能です。

フォルダアクションを簡単に作るにはAutomatorを利用します。

Automatorを起動します。起動したらフォルダアクションを選択します。

Voila_Capture7.png

フォルダアクションを作成するための画面が表示されます。フォルダアクションを付けるフォルダを選択します。

Voila_Capture8.png

AppleScriptを利用して機能を作成するので、「AppleScript を実行」というアクションをドラッグして追加します。
Voila_Capture9.png

追加すると以下のようになります。

Voila_Capture10.png

そこへ以下のAppleScriptスクリプトをペーストします。

on run {input, parameters}
	tell application "Evernote"
		repeat with x in input
			try
				create note from file x
			on error error_message number error_number
				display alert "Send to Evernote Failed" message "Error:     " & error_message & "
" & "Error Number:  " & error_number as warning
			end try
		end repeat
	end tell
	return input
end run

※このスクリプトはAutomator.appを使って、Evernoteにファイルを転送する – fav Apple!から流用させてもらいました。ありがとうございました。

Voila_Capture11.png

名前を付けて保存すると完成です。
クリップしたいファイルを最初に指定したフォルダに入れるとEvernoteにクリップされます。

また、以下のスクリプトを利用すると複数のファイルを一緒にフォルダに入れた時に1つのノートにクリップされます。

on run {input, parameters}
	tell application "Evernote"
		try
			create note title "Mixed note" with text "" attachments input
		on error error_message number error_number
			display alert "Send to Evernote Failed" message "Error:     " & error_message & "
" & "Error Number:  " & error_number as warning
		end try
	end tell
	return input
end run

EverDesktopにはクリップしたファイルを日付ごとに仕分けする機能がありますが、このAppleScriptスクリプトをカスタマイズすることで同様の機能を作成することも可能です。挑戦してみてください。

iPhoneアプリ「Everword – Evernote暗記カード」を公開しました

Evernoteを利用して暗記学習を行うためのiPhoneアプリ「Everword – Evernote暗記カード」を公開しました。

Evernoteのノートブックを登録して、ノートブックにあるノートをカード形式で表示して暗記学習をするためのアプリです。

Evernoteのノートは複雑な書式が使えるので、単純なノートの英単語の暗記から複雑なノートが必要な専門分野の知識の記憶まで可能です。Evernoteに情報を集約することになるので、情報の活用の幅が広がります。

私は英語の書籍を読む時に、分からない単語をEvernoteに入れていって、辞書アプリから単語の意味をコピーしてノートを作り、それをこのEverwordで学習しています。

また、習熟度別で3日後7日後など出題間隔が開くので、効率的な学習が出来ます。

無料ですので、ぜひ試しにダウンロードしてみてください。

無料ではノートブックの登録が一つに制限され、広告が表示されるという制約があります。アプリ内課金で250円支払っていただくと、ノートブックの登録制限と広告の表示が解除されます。複数のノートブックを使った方が、学習内容をよりマネージメントしやすくなります。

Evernoteのアカウント名を変更

Evernoteのアカウント名を変更した。

プレミアム会員のみアカウント名を変更してもらえる。今月25日に切れる契約だったので、ちょうどよかった。

サポートに変更のメッセージを送る→バックアップをとるように返信が来る→バックアップをとってリプライ→変更確認のメールが来る→変更希望を伝える→変更完了作業が行われる。

実際にはバックアップを利用することはなく、データは正常に受け継がれた。

無料会員は自分で新規アカウントを作ってデータをバックアップからリストアするというちょっと手間な作業が必要。

Evernote Safari5.1 Web クリッパーが公開された

Evernote Safari Web クリッパー公開 « Evernote日本語版ブログ: “Safari のエクステンション Evernote Web クリッパーが Apple Extension Gallery で公開されました。Apple からダウンロード または Evernote から直接ダウンロード。”

やっとEvernoteのWebクリッパーエクステンションが公開されました。Chromeの機能拡張に近い機能を持っているようです。

が、PDFで保存することはできなくなったようです。PDFで保存したい場合はSafari5.1からEvernoteにページをPDFで保存する方法を試してみてください。

Safari5.1からEvernoteにページをPDFで保存する方法

Safari5.1になってEvernoteプラグインが機能しなくなって久しいですが、いまだ新版はリリースされません(と、書いているとリリースされたりして)。

なので、プリントダイアログからEvernoteにPDFで保存を実行すればできますが、SafariからEvernoteにPDFで保存するのが面倒になりました。

それをAppleScriptで簡単にしてしまおうというのがこの投稿の趣旨です。

で、そのAppleScriptスクリプトですが、以前に色々なアプリケーションからPDFとしてEvernoteに保存するAppleScriptで投稿済みだったりします。SafariだけでなくGoogle Chromeやその他のアプリからも保存が可能です。このスクリプトをSparkやLaunchBarなどから実行すれば、自動的にPDFがEvernoteに保存されます。また、アプリケーションとして保存すれば、Dockに登録して使うこともできます。

ということで、再度掲載しておきます。

-- LaunchBarから実行する場合は以下を有効にする
-- tell application "LaunchBar" to hide
 
tell application "System Events"
	-- AppleScript Editorから実行する場合は以下の2行を有効にする
	-- set theName to name of the first process whose frontmost is true
	-- set visible of process theName to false
	set theName to name of the first process whose frontmost is true
end tell
 
tell application theName to activate
 
if theName is "Google Chrome" then
	printPDF2EvernoteChrome(theName)
else
	printPDF2Evernote(theName)
end if
 
on printPDF2EvernoteChrome(theName)
	tell application "System Events" to tell process theName
		try
			keystroke "p" using command down
			repeat until exists menu button named "PDF" of window 1
				delay 0.2
			end repeat
			tell window 1
				click menu button "PDF"
				repeat until exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
					delay 0.2
				end repeat
				click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			end tell
		end try
	end tell
end printPDF2EvernoteChrome
 
on printPDF2Evernote(theName)
	tell application "System Events" to tell process theName
		try
			keystroke "p" using command down
 
			repeat 20 times
				if exists menu button named "PDF" of sheet 1 of window 1 then exit repeat
				delay 0.2
			end repeat
 
			tell sheet 1 of window 1
				click menu button "PDF"
 
				repeat 20 times
					if exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF" then exit repeat
					delay 0.2
				end repeat
				click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			end tell
		end try
	end tell
end printPDF2Evernote

Safari5.1でEvernoteクリッパープラグインが使えないのでブックマークを使用する

Safari5.1になってEvernoteクリッパープラグインが使えなくなっていますね。

しかたがないので、そのうち対応されることでしょうからそれまでの間はブックマークレットを使用してクリップすることにします。

追記: Safari 5.1からEvernoteにPDFで保存する方法について記事を書きました。

色々なアプリケーションからPDFとしてEvernoteに保存するAppleScript

Google ChromeからPDFをEvernoteに保存するスクリプトを作成しましたが、同様に他のアプリからも簡単にEvernoteにPDFとして保存したい場合は以下のようなスクリプトになります。一般的なプリントダイアログを利用するアプリであれば利用できると思います。

[追記 2011/05/13] ループ等を修正しました。
[追記 2011/05/13] Chromeへの対応

-- LaunchBarから実行する場合は以下を有効にする
-- tell application "LaunchBar" to hide
 
tell application "System Events"
	-- AppleScript Editorから実行する場合は以下の2行を有効にする
	-- set theName to name of the first process whose frontmost is true
	-- set visible of process theName to false
	set theName to name of the first process whose frontmost is true
end tell
 
tell application theName to activate
 
if theName is "Google Chrome" then
	printPDF2EvernoteChrome(theName)
else
	printPDF2Evernote(theName)
end if
 
on printPDF2EvernoteChrome(theName)
	tell application "System Events" to tell process theName
		try
			keystroke "p" using command down
			repeat until exists menu button named "PDF" of window 1
				delay 0.2
			end repeat
			tell window 1
				click menu button "PDF"
				repeat until exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
					delay 0.2
				end repeat
				click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			end tell
		end try
	end tell
end printPDF2EvernoteChrome
 
on printPDF2Evernote(theName)
	tell application "System Events" to tell process theName
		try
			keystroke "p" using command down
 
			repeat 20 times
				if exists menu button named "PDF" of sheet 1 of window 1 then exit repeat
				delay 0.2
			end repeat
 
			tell sheet 1 of window 1
				click menu button "PDF"
 
				repeat 20 times
					if exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF" then exit repeat
					delay 0.2
				end repeat
				click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			end tell
		end try
	end tell
end printPDF2Evernote

Google ChromeからEvernoteにページをPDFで保存するAppleScript


色々なアプリケーションからPDFとしてEvernoteに保存するAppleScriptでより汎用的なスクリプトを公開しています。

SafariでページをPDFとしてEvernoteに保存するのは簡単ですが、Google Chromeではプリントメニューを表示してPDFボタンをクリックしてPDFをEvernoteに保存をクリックしなければPDFとしてEvernoteに保存することができません。

のでChromeからEvernoteにページをPDFで自動保存するAppleScriptを作成しました。

準備として、システム環境設定の「ユニバーサルアクセス」にある「補助装置にアクセスできるようにする」をオンにしてください。

以下がスクリプトです。このスクリプトをスクリプトエディタで保存して、スクリプトメニューから実行するなりLaunchBarやQuicksilverから実行するなりすれば、Chromeで開いているページをPDFとしてEvernoteに保存できます。

tell application "Google Chrome" to activate
tell application "System Events" to tell process "Google Chrome"
	click menu item named "印刷…" of menu 1 of menu bar item named "ファイル" of menu bar 1 --	keystroke "p" using command down	
	repeat until exists menu button named "PDF" of window 1
		delay 0.2
	end repeat
	tell window 1
		click menu button "PDF"
		repeat until exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			delay 0.2
		end repeat
		click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
	end tell
end tell