システム開発を長くやっていると、時たま『コスト度外視で、とにかく早く納品しなければならない!』というプロジェクトに突き当たることがあります。
今回はそんな状況に直面している方に、『これを使えばコストは掛かるけど時短ができるよ!』というアイテムをご紹介します。
(おそらくこれを読んでいる時間も惜しいと思うので、さっさと本題に入りましょう)
Auth0
どれだけ緊急のプロジェクトでも、手を抜くことが出来ない箇所があります。それが認証部分です。
もし認証部分が誰もログインできない状況となってしまった場合、そのサービスは誰も利用できなくなってしまいます。
逆に機能はしているが、セキュリティが甘い……という場合、これも致命的な結果を招くことになるでしょう。
なので決しておざなりにできない部分なのですが、しかしそのような切羽詰まった状況で『完璧な認証部分を、テスト等も含めて組むことができるのか……』といえば難しいと思います。
ログイン機能や各種SNSのAPI認可の仕組みをしらべ、実装し、問題がないかテストを行うというのは、相応の時間が掛かるからです。
ですから、ぜひともそういうときはAuth0等のような『IDaaS(Identity as a Service)』の利用をおすすめします。
信頼できる認証部分を、手早く確実に実装することが可能なサービスです。
各種SNSでのログインにも対応しているため、これらの機能も実装する場合、大幅な時短も狙えます。
何より、認証部分というのは『サービスの価値を左右する箇所』という訳はありません。
認証部分に限られた時間を割くぐらいであれば、ぜひもっと他の重要な部分に注力したほうが、良い結果を生むでしょう。
Firebase
これまでも何度かご紹介していますが、FirebaseはGoogleが提供しているWeb(モバイル)アプリケーションの開発プラットフォームです。
Firebaseではいくつもの有用なサービスが提供されています。
例えば『リアルタイムデータベース』『ホスティング』『Authentication(さきほどのAuth0と似たようなサービスです)』『ストレージ』『プッシュ通知』等のサービスです。
といっても、リアルタイムデータベース以外は、ほとんど自分で用意しようと思えばできる機能だと思います。
しかし、あなたがその機能を用意するのにどのぐらいの時間が掛かるでしょうか。例え慣れていたとしても数時間、ひょっとしたら数日は掛かるでしょう。
一方で、Firebaseの各種機能を使えば、数分で各機能を実装し動かすことが出来ます。
もちろん、Firebaseについての知識は必要となるので、それらについて知る時間が必要となるかもしれません。
しかしドキュメントも豊富に用意されているため、恐らくそれらを勘案してもFirebaseを使ったほうが早いでしょう。
Supabase
Firebaseは非常に優れたサービスですが、難点が無いとも言えません。
例えばFirebaseはGoogleのサービスなので、使うにはGoogleのアカウントと紐付ける形となります。
しかし新たなメンバーにFirebaseをいじってもらう際等、Googleアカウントごと渡すのは難しいでしょう。Googleアカウントは個人情報の塊ですし、もしそれを気にせずパスワードごと共有したとしても、電話認証等が求められてログインできないことがほとんどです。
寸暇が惜しい時に、Googleアカウントを聞いた上で、権限を持つ人から招待を送らなければ使えないというのは、新たなロスを産むことがあります。
また、Firebaseのデータベースは特殊なものです。
通常のSQL等と違い、データが変更されるたび、数ミリ秒で全てのデバイスがその変更を受け取ることが出来ます。
これ自体はとても素晴らしいデータベースなのですが、時間が無い時に『使い慣れていないデータべース』を利用するのはとてもリスクが高い行為となるでしょう。
そういった状況においては『Supabase』がお勧めです。
Supabaseならば、通常のID・パスワードでの管理となるので、とにかくそれらを共有すれば管理画面に入ってもらうことができます。(セキュリティ上ふさわしいかどうかはこの際置いときます……)
更にSupabaseが提供するDBは、Firebaseのリアルタイムデータベースとは違い、PostgresベースのRDBです。
通常のRDBに慣れた人であれば、素早くセットアップを行い、データベースを用意することが出来ると思います。
もちろん、機能数で言えばFirebaseのほうが明らかに多機能ですが、
認証機能等の主要なものはSupabaseにも用意されていますし、
シンプルな使い勝手を求める場合も、Supabaseのほうが手早く簡潔に利用することが出来るためおすすめです。
Vercel
なんとか開発自体は間に合うかもしれないが、本番環境の用意やデプロイを行う時間が足りない……という場合、Vercelを使うことで解決出来るかもしれません。
通常、サーバ作業やデプロイ作業にはそれなりの時間が掛かります。
かといって削減することはできませんし、人に任せるとしてもそれなりに経験がある人でなければ、手放しで任せることはできないでしょう。
しかしVercelを使えば、そのあたりの問題は全て解決します。
GitHubやBitbucket上にソースコードが乗っているのであれば、ほんの数ステップで公開まで持っていくことが出来ます。
SSLやCDNも付いているため、手早くプロダクトを市場に投入することも可能です。
また修正作業についても、リポジトリに反映させるだけですぐにデプロイ処理が走るため、環境後の変更が行いやすいというメリットがあります。
OneSignal
アプリであれウェブサービスであれ、プッシュ通知が持つ効果は絶大です。
『プッシュ通知を送る先』というのは、再訪問を促すことが出来る貴重な営業先とも言えるので、なるだけサービス公開時から実装して、ユーザーを登録させることが求められます。
しかしプッシュ通知の実装は意外と面倒ですよね。
自前で準備することもできますが、証明書の獲得や、レートリミットに配慮した配信システム等は、簡単に作れるものではありません。
そのためFirebase Cloud Messaging (FCM)といったものも用意されていますが、これを使うにも各種の設定に時間が掛かりますし、UIや送信部分等は自前で用意する必要があります。
ではそういったプッシュ通知を一括で任せられるものはないか……それがOneSignalというサービスです。
使い方も簡単で、Firebasのキーを設定した後、用意されたSDKをインストールすればいいだけなので、ものの数分で実装を行えます。
また、管理画面上から送信等を行うことが出来るため、わざわざクライアント用の送信画面を用意したりといった作業も必要ありません。
Repro
プッシュ通知だけでなく、商品のレコメンドや、カスタマーチャット、更にはそれらに紐づいた分析等も行いたい……という場合はReproがお勧めできます。
ウェブマーケティングやアプリマーケティングに必要な機能・分析システムが揃っているため、通常ならセッティングだけで相当な時間の掛かる機能も、SDKのインストールのみで使うことが可能です。
またプッシュ通知に関しても、安価なプッシュ通知サービスでは『数万件を超える大量送信が出来ない……』といった粗雑なサービスもあったりするのですが、
Reproでは数十万を超えるような大型サービスのプッシュ通知にも対応していることを明記しているため、非常に信頼が置けます。
ただし、海外サービスのように申し込み→導入まですぐ行える訳でなく、一旦問い合わせを挟む必要があるサービスなので、時間が無いとしても先にそれらの手続きを終わらせておく必要があります。
SendGrid
最後にご紹介するのはメール配信サービスです。
例えばメルマガだったり、ユーザー登録のメールだったりと、
作ったシステムからメールを送信することは多々あるでしょう。
しかし、時間がないからとsendmailから直接送った場合……サービスの規模によっては悲劇が起こりかねません。
メールサーバがクラッシュするだけならまだマシで、送信数によっては悪質なスパム業者と勘違いされ、送信サーバのIPが世界の主要なメールサーバよりブロックされる可能性があります。
更に深刻なのは、ドメインごとスパム認定された場合です。こうなるともはやメールサーバの切り替えでは済まず、サービスのドメインごと変更する必要が生じるでしょう。
そうなる前に使っていただきたいのがSendGridです。
APIやライブラリを用いることにより、ちょっとした作業だけで各種システムから安全にメールを送信することが出来ます。
非常に優秀なインフラも備えているため、短時間で大量のメールを送信することも可能です。
その際も、それぞれ別個のメールサーバから送信するシステムなので、突然サーバがスパム認定されて送信できない……といった事故も起こりにくくなっています。
(とは言っても、常識的な範囲で送信することをおすすめします)
もちろん、そこまで大規模なメール送信を行わないとしても、
単純に『メールサーバの用意が間に合わない!』という時に、手早く実装することが可能なメールサーバとしても使うことが出来ます。
常日頃から時短に使えそうなアイテムを調べておこう
さて、ここまで『時間がない開発時に役立つサービス』についてご紹介してきましたが、お役に立てそうなツールはありましたでしょうか。
とは言っても、本格的に時間がない時には、これらサービスの使い方を調べる時間すら惜しくなるかもしれません。
できることなら、そうなる前に予め各種利用法を調べておき頭の中にストックしておくならば、時間が無い時にも素早く代替策を用意することができるでしょう。
なお、そういった『金額よりもスピードを重視する開発時』にお手伝いが必要な際はご相談ください。
どこで時短が出来るか、といった相談に乗ったり、今回ご紹介したような代替サービスの実装をお手伝いすることが可能です。
まずは急ぎお問い合わせいただければと思います。