調べるべきキーワード
SDK以外では、「API」の設計がキーワードだと思います。
APIが窓口だとすると、そこに申請するための用紙がSDKだからです。
参考URL
Twitter Developers
Evernote Developers
マイポケットデベロッパーポータル
Amazon.co.jp: Web API: The Good Parts(本)
上3つはAPIとSDKを公開しているサービスです。
一番下はWeb APIの設計に関する書籍です。
直接SDKの作り方ではないですが、参考にはなると思います。
大まかで構いませんので、どのような手順でやっていければよいのか
- アプリ本体を作る
- APIを整理する
- SDKを作る
- 内部調整
- 公開
(これは単純化したイメージで、実際は前後するでしょう)
2は、APIとドキュメントだけ提供する形も取れますし、
APIとSDKの作成は対にして進めていきます。
3でのSDKの作成自体は、社内の開発環境の整備の延長線上(にあるべき)です。
独自ライブラリを作る先にAPIがあり、ミドルツールを作る先にSDKがあります。
逆にSDKだからといって、今までとぜんぜん違うものを作ろうとしてしまうと、
二度手間です。しかも公開以後はアプリ本体の更新に追従する必要があります。
社内用ツールと勝手が違うところは、なるべくソースを隠蔽するところです。
APIを叩くのと同じで、ツールを叩くだけとか、インターフェイスだけ見せます。
もうひとつ違うのは、属人性を排除して、ドキュメントやツールに置きかえるところです。
たとえばAさんしか上手く動かせないのは、公開後は単なる不具合になってしまいます。
そこで4では、外部から募集するなどして、
APIやSDKの内部構造を知らない開発者たちに、
クローズドな環境で試験的に使わせてみます。
5の公開場所については、今ならGitHubも有力かもしれません。
RubyのGemでも良いですが、多言語展開なら本拠地向きでしょう。
その場合、オープンソースにするかどうかもひとつの選択肢です。