お前は今までに作成したSDKの数を覚えているか?

お前は今までに作成したSDKの数を覚えているか?

こんなツイートをたまたま見てしまったがために…。

ということで、これまでDevRelサポートを提供する中で開発してきたSDKをリストアップしてみようと思います。これは2022年4月現在です。

NCMB(ニフクラ mobile backend)

NCMBは一番サービス提供の歴史が長いので、多いですね。私が開発していないPHP SDKもあります。公式SDKはJavaScript/Swift/Objective-C/Java(Android)/Kotlin(Android)/Unity向けがあります。足りない部分を私が開発している形です。

Customers Mail Cloud

メール配信サービスです。ブログ記事執筆を提供する中で生まれたSDKです。

Quality Forward

テストのクラウド管理サービスを提供しています。

blastengine

エンジニアフレンドリーなメール配信サービスです。最近サービス提供を開始したこともあり、今後SDK拡充予定です。

なぜSDKを開発するのか

APIを提供するサービスがあったとして、それをわざわざHTTPライブラリから直接操作したいと思うでしょうか。コードがごちゃっとしますし、仕様を理解してコーディングするのは苦痛です。私ならSDKがあるサービスとないサービスの2つがあれば、SDKがあるサービスを選ぶでしょう。

ということで、開発者にとってのペインポイントを除去し、かつ選ばれる理由を提供するためにSDKを開発しています。全機能を網羅していないものも多いですが、その辺りは利用者の需要に合わせて開発しています。

後はブログ記事のネタとして使えるのが良いです。SDKを開発して、それの使い方をブログ記事にするというマッチポンプ的なことをよく行っています。

例)
blastengineのJava SDKを使ってメール送信を行う - Qiita

言語選定

色々な言語で開発していますが、極力そのサービス利用者が使っている言語を優先的に採用しています。サーバーサイドの場合、Java需要が強いように感じます。その後はPHP、Node.js、Python、Rubyでしょうか。

アプリ界隈であれば最近ならFlutter、ついでReact Nativeになるかなと。Xamarinはコロナ感染チェックアプリで一躍有名になったので、開発してみました。

正直得意ではない言語も多いので、その辺りはテストを書きつつググりながら実装していたりします。C#とかJavaは得意ではないですが、IDEがあるので安心ですね(それでも苦戦することが多いですが)。

パッケージ管理への登録

RubyであればRubygems、Pythonであればpipなどが有名なパッケージ管理システムです。この辺りへの登録はもちろん行っています。

各パッケージ管理のプロフィールページです。

この辺りはインストールのしやすさはもちろん、個人のブランディングとして行っている面もあります。なお、JavaのMaven Central Repositoryはとても面倒なイメージがあって登録していません…。

まとめ

今後はGo言語やRust辺りでも開発していきたいのと、PHPは自分の中で歴史がバージョン5で終わってしまっているので、SDK開発を通して勉強し直したいと思っています。

SDK開発はDevRelにおいて、コーディングスキルが活かせる場面だと思うので、ぜひ取り組んでみると良いでしょう。

MOONGIFTではブログ執筆を通してSDKを開発したり、単体でSDK開発も承りますのでぜひお問い合わせください

UPDATE

アップデートを受け取る

メールにてDevRelに関するニュース、アップデートをお送りします。

Contact is below.