趣味プログラマによるOSS開発日誌

趣味で作っているOSSソフトウェアの紹介や関連技術の紹介、楽曲製作、Webデザイン勉強状況を紹介します。

Qiita投稿アプリ開発(1) 仕様の変更

 
こんな投稿から始まったアプリ開発ですが、早くも仕様の見直しが必要なところが出てきています。
 
  • Qiita上に下書きを保存
  • 下書きのプレビュー画面
 

Qiita上に下書きを保存

Qiitaには下書き機能があり、作成途中の記事を保存することができるのですが、Qiitaが提供しているAPIには下書きしたデータを取得する方法が無いようです。
下書き機能が無いとなると、iPhone-PC間で編集途中のデータの共有ができず、開発するアプリの売りが無くなってしまうことになります。
これは非常に残念なので別の手段を考えた結果、Qiitaの「限定共有投稿」が下書きとして使えるのではないかと考えました。
「限定共有投稿」とは、投稿した記事のURLを知っている人だけしか見れないようにする投稿の方法です。
URLを他の人に知らせない限り、他の人が内容を見ることが出来ないため、下書き用のAPIが提供されるまでの一時的なものとして利用できるはずです。
限定共有投稿した記事を取得するAPIを取得する方法があることは確認済みのため、実装自体は問題ないでしょう。
 

下書きのプレビュー

下書きを取得できない時点でこの機能も見直しが必要です。
もともと下書きのプレビューをどうするかはいろいろ迷っていて、プレビュー画面を自作するのはやりたくないなと思っています。
というのも、Qiitaには様々なプログラミング言語ソースコードが投稿されるので、全てに対応しようとするとえらく時間がかかると思うからです。
そこで先ほどの限定共有投稿を使うことで、この問題を案外簡単に解決できるのではないかと考えています。
限定共有投稿のURLを取得するAPIは提供されているので、アプリ内でブラウザを立ち上げて、取得したURLにアクセスすればプレビュー機能としての役割を果たせます。
 

問題点

限定共有投稿を使えば全て解決できるかと言うとそうでは無い点もいくつかあります。
 
  • 限定共有投稿した場合のTwitter/Gist投稿の扱いをどうするか
  • 限定共有投稿した場合、編集すると履歴が残ってしまう
少し考えただけでも問題点が出てくるので、他にも色々と問題が出てくるかもしれません。
 

変更後の仕様

 
最初の段階ですので、今のところはあまり深く考えず、以下の仕様で開発を続けて行きたいと思います。
 
  • Qiita上に下書きを残す場合は限定共有投稿を利用
  • デバイスのローカルにデータを残す場合の下書き機能も別に用意
  • 通常の投稿・限定共有投稿の場合はプレビュー画面を利用可
  • ローカルにデータを残す下書きの場合はプレビュー画面の利用不可
  • 投稿・下書きの編集/削除機能は用意
 
仕様をざっくり決めてしまいましたが、Qiitaに下書きを扱うAPIが追加されたら、それに伴って仕様も変更していきたいと考えています。
今度Qiitaの運営者に要望出すことも考えていたりします。
個人的にできるだけ早くiPhoneからQiitaへ投稿できるようにしたいので、まずはざっくり作ってしまいたいと思います。