投稿

SendGrid Nightに参加しました

はじめに SendGrid Night に参加してきました。 詳しくはこのへんを。 SendGrid Nightやりました LTしてきました SendGrid Parse APIをデモってみる from Wataru Sato Parse APIについては、 宛先アドレスごとにPOST先を振り分けたい アドレスをフィルタしたい(POST側でフィルタしたくない) みたいなFeature requestがありました。確かに欲しいですよね。 今の仕組みはシンプル杉ですから。 Feature requestは受付窓口があるみたいなので、見つけ次第ビシバシ送りつけてやります。 それが使われるサービスになるための道です。 感想的なこと いっぱい人がいました。 既にSendGrid使っている人もいっぱいいました。 日本語サポート、ドキュメントに対する期待の高さも感じることができました。 やりますよ。

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)

イメージ
前回に引き続き SendGrid についてです。 今回は SMTP API を使ってみました。 SMTP APIについて SendGridのSMTP APIは基本的には普通のSMTPプロトコルに則ったものですが、X-SMTPAPIヘッダというカスタムヘッダを使うことで機能を拡張することができます。 X-SMTPAPIヘッダについて X-SMTPAPIヘッダはSMTPプロトコルの拡張ヘッダです。 X-SMTPAPI: { "category": "newuser" } みたいな感じでJSON形式でパラメータを与えることで機能を拡張します。 Section TagsとSubstitution Tagsについて 今回はSMTP APIで使える機能のうちSection TagsとSubstitution Tagsを使ってみました。 Section TagsとSubsitution Tagsは送信メールの内容を宛先毎に特定の文字列を置換するための機能です。toと合わせて使うことで機能します。 例えば、X-SMTPAPIヘッダの値を以下のような形にします。 { "to": ["test1@xxx.xxx", "test2@yyy.yyy"], "sub": { "-body-": [ "-bodyFemale-", "-bodyMale-" ], "-favorite-": [ "バナナ", "カツオ" ], " "-nickname-": [ "ミキ", "サブロー" ] }, "section": { " "-bodyFemale-": "-nickname-さん!女性向けの商品のご紹介です。", "-bodyMale": "-nickn...

AndroidからSendGridを使ってみた

イメージ
Androidから SendGrid APIを使ってみたのでメモっときます。 SendGrid について PaaS/SaaSの一種でEメールを扱うサービスです。SMTPによるメール配信サービス、受信メールをトリガとした処理の駆動、扱ったメールの統計・統計結果表示、マーケティングメールの配信管理などの機能があります。 今回やったこと SendGridが提供するWeb APIとSMTP APIをAndroidアプリから行ってみました。やった内容としては、 JavaでSendGridを利用したメール送信 と同じです。 要は、 ・JavaMailを使ってSMTP APIを利用。 ・ sendgrid4j を使って基本的なWeb APIを利用。 と、これだけです。 具体的には、 JavaでSendGridを利用したメール送信 と同じなのでそちらを参照していただければと思います。以上でした。 で、終わってしまうのはアレなので普通のJavaと違った点のみ絞って書きます。 ソース とりあえず、 この辺 に置いときます。 尚、動かす場合、HelloSendGrid.java内のSMTP_AUTH_U SER、SMTP_AUTH_PWD、SENDER_ADDRESS、RECIPIENT_ADDRESSあたりをそれぞれ置き換えます。 依存関係 こんな感じ。合計約1.5MB。2,3年前だったらデカめな印象でしたがイマドキ特にデカくはないですよね。 Java環境との違い いずれもSendGridを使うための特別な事項はありません。ただ、ちょっとだけ事情が異なる点だけ。 Oracle提供のJavaMailは使えない AndroidではOracle提供のいわゆる JavaMailは使えません 。理由は、awtに依存しているためです。そういうわけで、 javamail-android を使います。基本的に両者のI/Fは同じみたいなのでjarファイルを入れ替えてあげるだけで動きました。 認証情報の扱いに注意が必要 今回のサンプルアプリケーションでは、SendGridの認証情報をコードの中に埋め込みましたが、一般に公開するAndroidアプリでこれをやるとSendGridの認証情報が...

さようならAndroid JaTTS。ありがとうAndroid JaTTS。

SmartTraining Ver.8.0.12からAndroid JaTTSの対応をやめました。 バージョンアップした人はいきなりN2TTSインストールを求められて「なんじゃこりゃ、元に戻せやゴルァ!」みたいに言わないかと若干心配ではありますが、一応、長い間利用させていただいたAndroid JaTTSへの感謝の意味を込めて、元々の導入の経緯と対応をやめた理由をメモっときます。 ここで言うTTSとはText to Speechのことです。文字列を音声化する機能のことです。 導入の経緯 SmartTrainingをリリースした当時、Androidのバージョンは1.5から1.6に上がったあたりで、ようやくOSがTTSをサポートし始めたころでした。今と違って日本語をサポートしたTTSエンジンは世の中に存在せず、日本語で音声をだそうと思ったら別途独自の仕組みを構築する他手はありませんでした。 そんな時見つけたのが Android JaTTS です。小さなライブラリをインポートするだけで端末に日本語を喋らせることができたのは、当時Android初心者だった自分としては結構衝撃的でした。仕組みとしては文字列を入力としてサーバに送信し、サーバ側で音声合成した結果の音声ファイルをダウンロード、再生という形をとっています。サーバ側は Galatea talk という多数の大学、研究機関が関わった由緒正しいプロジェクトを源流にしています。当時、音声合成エンジンとしてはいくつかありましたが、無料で、面倒な設定不要で使えたという理由で選択しました。 N2TTSの出現 その後、KDDI研究所さんがN2TTSというAndroid標準のTTSに準拠した無料の日本語音声合成エンジンをリリースしました。これは現在でも日本語TTSとして最も有名なものとなっています。 Android JaTTSを利用する上での課題 バッテリー消費が大きい 音声合成をするたびに「リクエスト送信→合成された音声データダウンロード」という手順を踏むのでどうしても通信によるバッテリー消費が避けられません。 サービスの停止 サーバを運営されている方のほうでどれくらい運営コストがかかっているのかはわかりませんが、24時間365日サービスが提供されているわけではありません。時々...

SmartTrainingでPebble対応してみました

イメージ
はじめに 去年Kickstarterで勢いのあった Pebble 。即Backerになりました。 発売されたのは2013年1月くらいでしたが、なんだかんだで発送が遅れて入手できたのが2013年5月。とりあえず使ってみて、今まで使ってきたLiveViewやSmartWatch MN2と違った面でイイ感じだったのでSmartTraining対応してみました。 Androidアプリ WatchApp 忘れても思い出せるようにメモしときます。 ユーザ的観点 抜群のバッテリーの持ちの良さ 今まで使ってきたsmart watchに比べると電池の持ち時間が圧倒的に長いです。 LiveViewとかMN2だと静かになるべく使わないようにしてギリ二日とかだったのが、PebbleだとGmailの通知1日50件くらい発行しても1週間経ってようやくバッテリー警告が出る感じ。警告出てから1日経っても干上がりませんでした。その後は試してないですが。とにかくバッテリー面の運用が楽です。 実用的な液晶 IS03に使われていたメモリ液晶と似たような雰囲気です。白黒しか表現できません。パッと見地味ですが、明るい場所で全く見えないMN2と比べると、直射日光下でもちゃんと見えるので実用的です。暗い場所ではバックライトONで見えるようになります。 不快なリストバンド 他のsmart watchと同様、通気性ゼロのゴム性のバンドです。梅雨時期に付けていると不快感100%です。しかも交換は不可。なんでこういうバンドにしちゃうんでしょうね。まぁ、耐久性は抜群なんだと思いますが。きっとHQのあるカリフォルニアの気候だとこういうバンドでも問題ないんでしょうね。 文字化けするビルトインアプリケーション Phoneからの通知は全体的に豆腐に文字化けします。あとたまに生HTMLが表示されたりします。日本語を含むGmail通知はまともに読めた試しがありません。 開発者的観点 C言語 C言語(C++ではなく)にPebble独自のフレームワークを乗せた感じです。フレームワーク自体はサンプルが少ないながらもリファレンスは充実しているので使いやすいと感じました。また、標準的なC言語ライブラリが全て利用できるわけではありません。例えばmallo...

DialControllerのソースを公開してみた

イメージ
BodyRecorderのために作った、くるくる回したり、上下左右をクリックすることで操作するためのコントローラをライブラリ化して Githubでソースを公開 してみます。 テキストやら背景は一通りコードおよびXMLから変更可能なのでそこそこ汎用的かと思います。欠点は、正方形に近い領域がないと円の半径が確保できないことです。 何かに使えるといいですね。 サンプルのイメージはこんな感じ。

SmartTraining V8テスター募集してみます

読み込み中...