質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SDK

SDK(software development kit)は特定のハードウェアのプラットフォーム、開発環境又はソフトウェアパッケージでソフトウェアをつくるのに必要な開発ツールのセットです。SDKはAPI、IDE又は他の開発ツールとフレームワークを組み合わせたもので構成されていることがあります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

3回答

1929閲覧

自社サービスで外部デベロッパー向けにSDKを作りたい

kento2543

総合スコア163

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SDK

SDK(software development kit)は特定のハードウェアのプラットフォーム、開発環境又はソフトウェアパッケージでソフトウェアをつくるのに必要な開発ツールのセットです。SDKはAPI、IDE又は他の開発ツールとフレームワークを組み合わせたもので構成されていることがあります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

2クリップ

投稿2015/08/01 11:37

現在、rubyを用いたwebサービスを運用しております。(iosのアプリ版もあります。)

そして、最近、外部のデベロッパー向けにSDKを作ろうという話になっております。

しかし、お恥ずかしいところ、社内メンバーの中には他社のSDKを使ったことがある人はいても、
作ったことがある人がおらず、話が止まっております。

勉強のためにもSDKを作ろうという話にはなっておりますので、この度、質問に至りました。

大まかで構いませんので、どのような手順でやっていければよいのか、ご教示願えますでしょうか?
(参考URL、調べるべきキーワード等ありますと助かります。)

「SDK 作成」等で検索しても外部SDKを使用した開発の記事ばかりで検討違いのものばかりでてしまいます・・・。

SDKは
・ruby
・swift、ios

向けにまずは作りたく、ゆくゆくは他言語でも対応できるようにしていきたいです。

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2015/08/01 13:45

Webサービスの運用と、SDKを作ることと、どう繋がるんですか?
kento2543

2015/08/01 14:52

現在、リリースはすんで、運用フェーズにあります。 そして機能追加としてSDKを作りたいという話になっております。 運用をしていく中で外部デベロッパーにも使用してほしいという話になったためです。 説明不足で申し訳ありません。
guest

回答3

0

それは、SDKというよりは、Web APIを利用するためのライブラリですよね?

iOSのアプリ版もあって、すでに運用フェーズに入っているなら、そのライブラリは既にほぼ完成していることになります。
例えば、そのiOS版のライブラリを作りたいなら、既に完成しているそのアプリからWeb APIを利用する部分の抜き出して整理すれば、ライブラリが完成します。

投稿2015/08/01 15:06

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

調べるべきキーワード

SDK以外では、「API」の設計がキーワードだと思います。
APIが窓口だとすると、そこに申請するための用紙がSDKだからです。


参考URL

Twitter Developers
Evernote Developers
マイポケットデベロッパーポータル
Amazon.co.jp: Web API: The Good Parts(本)

上3つはAPIとSDKを公開しているサービスです。
一番下はWeb APIの設計に関する書籍です。
直接SDKの作り方ではないですが、参考にはなると思います。


大まかで構いませんので、どのような手順でやっていければよいのか

  1. アプリ本体を作る
  2. APIを整理する
  3. SDKを作る
  4. 内部調整
  5. 公開

(これは単純化したイメージで、実際は前後するでしょう)

2は、APIとドキュメントだけ提供する形も取れますし、
APIとSDKの作成は対にして進めていきます。

3でのSDKの作成自体は、社内の開発環境の整備の延長線上(にあるべき)です。
独自ライブラリを作る先にAPIがあり、ミドルツールを作る先にSDKがあります。

逆にSDKだからといって、今までとぜんぜん違うものを作ろうとしてしまうと、
二度手間です。しかも公開以後はアプリ本体の更新に追従する必要があります。

社内用ツールと勝手が違うところは、なるべくソースを隠蔽するところです。
APIを叩くのと同じで、ツールを叩くだけとか、インターフェイスだけ見せます。

もうひとつ違うのは、属人性を排除して、ドキュメントやツールに置きかえるところです。
たとえばAさんしか上手く動かせないのは、公開後は単なる不具合になってしまいます。

そこで4では、外部から募集するなどして、
APIやSDKの内部構造を知らない開発者たちに、
クローズドな環境で試験的に使わせてみます。

5の公開場所については、今ならGitHubも有力かもしれません。
RubyのGemでも良いですが、多言語展開なら本拠地向きでしょう。
その場合、オープンソースにするかどうかもひとつの選択肢です。

投稿2015/08/01 15:46

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Swift/iOSのSDK開発についてお答えさせて頂きます
まずiOS(or Mac)にフォーカスを当てたSDK開発の場合は配布方法をどうするかで選択肢が変わってくるのですが、今だとCocoaPodsかCarthageのメジャー配布方法に合わせた形で開発するのが良いかと思われます

CocoaPods

iOS向けのライブラリをCocoaPodsで配布する
自前のライブラリをCocoaPodsで管理するメモ

Carthage

Carthageの配布の仕方(すっごい簡単!)

これらの配布方法は混在させることもできるので特に手間じゃなければ両方対応してしまうのがbetterですね

Rubyの方は自分は良く分からないのですがgemを配布する形になるんですかね?
なのでRuby gemの公開方法だったりでググってみると色々見つかるかもしれませんね

RubyGem

RubyGemはめっちゃ簡単に作れる!

投稿2015/08/01 13:20

編集2015/08/01 13:24
__moai

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kento2543

2015/08/01 14:54

詳しく有り難うございます。 rubyの場合ですと、gemを入れるだけでSDK使えるサービスってありますね。 大変参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問