『PocketQiita』をリリースしました

Qiita の非公式クライアントアプリ『PocketQiita』をリリースしました。

f:id:questbeat:20140203163827p:plain

Qiita では毎日たくさんの便利な情報が投稿されていて、読めば絶対に勉強になるものばかりなのですが、Qiita のフィードページがスマートフォンに最適化されていないのと、僕がフィードページのデザインをあまり好きになれないというのがあって、自分から進んでアクセスする気が起きにくいという問題がありました。

それを解決するために開発したのが PocketQiita です。

PocketQiita では、新着投稿やタグごとの投稿をタイムライン表示したり、投稿をストックしたりすることができます。
一応フルクライアントを目指しているので、ユーザのプロフィール画面なども作り込んであります。

f:id:questbeat:20140203161213p:plainf:id:questbeat:20140203161209p:plainf:id:questbeat:20140203161208p:plain

もちろん Pocket やはてブとの連携もバッチリです。
PocketQiita で情報をいち早く入手して、どんどん共有していきましょう。

f:id:questbeat:20140203165227p:plain

Qiita の投稿数はどんどん増えていて、はてブの Hotentry にもよく入っていますし、以前はプログラミング関係で Google 検索をかけると StackOverflow だらけだったのが、最近では Qiita の投稿をよく見かけるようにもなりました。
このアプリで少しでも Qiita を応援できればいいなと思います。

PocketQiita は無料なので、皆さん是非ダウンロードしてみてください。

PocketQiita


さて、アプリの紹介は手短に済ませて、ここからは開発者向けの話を書いていこうと思います。

Qiita API

Qiita API document

Qiita API、だいたい満足なのですが、機能が少し足りません。
具体的にはユーザのフォロー/アンフォローができなかったり、フォロー中のユーザを取得する API があるのに フォロワーを取得する API が無いなど。
あと、ドキュメントの response サンプルが正しくないところがあったりするので、ちゃんと自分で確認しながら使う必要があります。

メニュー

最近は MasterView がスライドするタイプのメニューが多いので、PocketQiita では iOS 7 の通知センターのようにメニューがスライドするタイプを採用しました。
メニューの背景も曇りガラス風にしたかったのですが、いろいろあって挫折してしまい、半透明のものになりました。

f:id:questbeat:20140203161211p:plain

メニューはトップレベルの画面からしか表示できないようになっていますが、このアプリの場合、投稿一覧 → 投稿を表示 → ストック → 投稿一覧に戻るという使い方が多いだろうと予想していて、投稿表示の画面よりも深い階層に潜ることはあまりないという考えからこのような仕様になっています。
…とは言ってもやはり問題アリな感じなのでそのうちなんとかするかも。
Backボタン長押しでトップレベルに一瞬で戻れるようにするとか、スライドメニューをやめるとか。

また、今のメニューは挙動が怪しいところが多い(アニメーションが変だったり、瞬間移動したりする)ので、次のバージョンでなんとかしたいと思っています。

新着の通知

だいたいのアプリでは新着投稿を取得した時になんらかの形で通知を出すのですが、このアプリではナビゲーションバーの色を変えて通知しています。
分かりにくいという声が多ければ変更するかもしれません。

f:id:questbeat:20140203182350p:plainf:id:questbeat:20140203182351p:plain

投稿の表示

面白いことに、Qiita API で取得できる投稿は本文のデータ(HTMLタグ付き)を含んでいます。(参考)
アプリではそれを UIWebView に表示するだけでいいので、投稿の表示がとても速いです。(その分投稿一覧の取得に時間がかかる)

また、投稿のヘッダ部分だけ UIView を使っています。

f:id:questbeat:20140203161209p:plain

Background Fetch

このアプリを開発するもうひとつの目的として、iOS 7 の新機能を使ってみたいというのがあったのですが、その中でも特に試したかったのが Background Fetch です。
PocketQiita では Background Fetch で新着投稿を取得しています。

今後追加したい機能

  • アプリ独自のフィード
  • 検索機能