エバーノート投稿アプリ【StackOne】の最新バージョン 1.1 がリリースされました。
今回の目玉はいくつかありますが、その一つは『オフライン対応』です。以前のバージョンではサーバへの送信が終わるまでは次の入力ができなかったのですが、送信部分を非同期に改良することで送信後に待たされないサクサク投稿が可能になりました。
バージョン 1.1 の内容
- 投稿画面のデザインを一新
- オフライン投稿に対応
- URLスキーム対応
- バグ修正
新デザイン
投稿画面のデザインを一新しました。
多少なりとも以前のバージョンに慣れた人には申し訳ないのですが、使い勝手を改良するにはどうしても必要と判断して思い切って変えました(クレームが来るのは覚悟しています x_x 。。
最大の変更理由は『ルール』の切替を簡単にできるようにする為です。以前までルール名はナビゲーションバーに表示していましたが、このバージョンから下のツールバーへ移動しました。ここを左右フリックするとルールが切り替えられます。以前のレイアウトのままでの切替も考えたのですが、ナビゲーションバーのタイトルをフリックするというのはどうも感覚的ではないし、片手持ちの時に遠くて指が届かず、試行錯誤の末に真ん中のツールバーへ配置することに決めました。送信ボタンも合わせて下へ移動して一番押しやすい場所に配置しました。代わりに従来下のツールバーにあった写真やリマインダをナビゲーションバーへ配置してあります。写真をよく使っていたユーザの方は慣れるまで使いづらいかもしれません(私自身がそうでした)。
オフライン投稿
投稿は一旦送信ボックスに入り、オンライン時に自動的に送信されます。
送信ボックス導入によってオフラインだけでなくオンライン時も非同期な送信が可能になりました。これによって比較的大きな画像があっても送信を待たされることが無い ”さくさく” 投稿が可能になりました。
実装の話を少しすると内部では自作のキューライブラリを使っています。
このライブラリはいわゆるキュー(FIFO)の簡易ライブラリで、特徴的なのはアーカイブ可能なオブジェクトを渡すと処理が終わるまでディスクに保存しておいてくれるところです(永続化)。投稿が実行されると投稿内容を保持するモデルクラスをこのキューへ入れて、メインスレッドではすぐに次の投稿入力画面に切り替えます。一方別スレッドで動く処理がこのキューを監視していて、諸条件(オンラインなど)が揃ったらサーバへの送信を自動的に開始します。処理が終わったらキューから投稿を削除して、次の投稿モデルを取り出します。
また送信ボックスはちょっとしたミニアニメーションを仕込んでいて増減の様子がさりげなくわかるようになっています。ここのアニメーションには Canvas というライブラリを利用しました。
このライブラリは良く出来ていて用意されているビュークラスの上にアニメーションしたい画像等を配置すれば移動やズーム、フェードイン・アウトなどの動きを簡単につけることができます。アイコンやボタンなど主にコントロール系のパーツでユーザの目を引きたい時で使うと効果的だと思います。StackOneでは送信ボックスに投稿が入った時に ZoomOut、送信が終わった時にMorphを使っています(どくんどくん、と少し波打つように見える)。
URLスキーム
このバージョンから URLスキームに正式対応しました。テキストおよびルールの指定が可能です。
書式 jp.lakesoft.StackOne://text=テキスト&rule=ルールID
ruleパラメータは省略可能です。
URLはルール設定画面で取得することもできるので、この機能を活用してみて下さい。
その他
StackOneの特徴はなんといっても『ルール』です。『ルール』については別に説明ページを設けたのでもし興味を持ったらこちらを読んでみて下さい。
それと連絡事項が1件あります。頻繁に投稿するとエバーノートの1時間当たりの投稿上限に達して送信に失敗する場合があります。
エラー内容:
Code=19 "Operation denied because the calling application has reached
its hourly API call limit for this user."
送信BOXに投稿が溜まってしまうことになりますが、この場合はしばらくしてから再送信してみてください。この課題はエバーノートの仕様であるため変更はできないのですが、アプリ側で少しでも改善できるよう検討中です。
- - - - - - -
エバーノートへの投稿がもっと楽しくなる新世代投稿アプリ【StackOne】を是非お試し下さい。