swift/IPhoneアプリ(ios)

【プログラミング初心者】基礎知識:swift(iPhoneアプリ)とRuby on Rails(Webアプリ)+Conoha VPSで共通の会員登録/ログイン機能(API連携)を極力簡単に実装する方法まとめ!

【プログラミング初心者】基礎知識:swift(iPhoneアプリ)とRails(Webアプリ)で共通の会員登録/ログイン機能を極力簡単に実装する方法まとめ!

iPhoneアプリを作成していると会員制のアプリとかWebアプリとのApi連携をしたアプリを作成したいと思う方も多いと思います!

そこで、私が実際に作成・リリースした際に参考にしたサイト・本を情報共有させていただきます!

転職や副業などで是非参考としてもらえれば嬉しいです!

構成-スマホ側=Swift(iPhoneアプリ) サーバー側=Ruby on Rails(webアプリ)

先述していますが、改めて構成から確認します

スマホ側
iPhoneアプリ(言語:Swift 開発環境:Xcode)

サーバー側
Conoha VPS + Webアプリ(言語:Ruby on Rails 開発環境:Visual force studio)

Conoha VPSの契約方法はこちらにまとめています!日本製かつVPSで1,2番を争うメジャー商品で約600円ほどと安価なためConohaを利用しています!
※Conohaは聴き慣れない名前かもしれないですが、大手有料企業GMOが運営しているので安心・安全のサービスです。怪しい商品の紹介ではありませんのでご安心を。
5分ほどで終わるので、サーバーの準備がまだな方は、読み進める前にまずはこちらの契約から完了させてしまうのがオススメです!

【初心者向け5分でできる】Ruby(Ruby on rails)のオリジナルWEBアプリをリリースする為にConoha VPSを契約する手順【初心者向け5分でできる】Ruby(Ruby on rails)のオリジナルWEBアプリをリリースする為にConoha VPSを契約する手順...

よくレンタルサーバーのエックスサーバーも聞くと思いますが、レンタルサーバーにRuby on Railsのアプリは構築できないので注意してください!

あくまでVPSを契約するようにしましょう

VPSは日本では
・AWS
・GCS
(簡単に言うとamazonやgoogleが出しているクラウド上(サーバー)貸し出しサービス)
Conoha VPS

の三つがメジャーところですが、AWS,GCSは料金がドル計算なのと設定が結構ややこしいので熟練SEじゃない場合は、基本的にConoha VPS一択で損はしません!



次にConohaサーバー+ドメインの構築方法はこちら。サーバーにドメインを設定します

ruby_vps
【初心者向け】作成したWEBアプリにドメインを登録する全手順!!(お名前.com+ConohaVPS)+プログラミング言語:言語PHP,Ruby,HTML,Javaなど【初心者向け】作成したWEBアプリにドメインを登録する全手順!!(お名前.com+ConohaVPS)+プログラミング言語:言語PHP,Ruby,HTML,Javaなど...

Conohaサーバーの上に環境構築する方法はこちらにまとめています

ruby_vps
【初心者向け】Ruby on Rails webアプリ+ConohaVPS 初デプロイ(公開)の時に参考にした技術サイト【初心者向け】Ruby on Rails webアプリ+ConohaVPS 初デプロイ(公開)の時に参考にした技術サイト はじめてCo...

参考サイト

devise token auth を使って簡単に早くAPIを作る

devise token auth を使って簡単に早くAPIを作る 1

このサイトに手順が乗っているので非常に参考になります!

基本は、会員登録はdevise(gem)で作ることが多いと思います!
ただ、deviseだとセッションなどが必要なためwebアプリだけに止まってしまいます。

しかし、devise token auth(gem)はトークンベースで認証できる仕様のため、iPhoneアプリやAndroidアプリとRuby on Railsアプリの連携にはもってこいということです!
※トークンとは(参照:wikipedia)
プログラミング言語など(における広義の構文解析)で「トークン」と呼ばれるものは、ソースコード中の文字の並び中の、1個ないし複数個の文字から成る文字列で、キーワードや識別子や演算子やリテラルとして意味を成す最小単位となっているもの、である。

angularでのUI作成の部分もありますが、そこはあまり重要ではない・本目的から外れるので大丈夫です
(railsでjquery使っているケースも多いと思うので、その際は普通にhtml/css/jqueryで!むしろまず機能作る際はあれもこれもやってると進まないので、フロントエンドはhtml/cssで作ってwebアプリ、モバイルアプリの機能が完成(APIがうまく動作)してからフロントエンドを仕上げれば良いと思います!)

Rails5 + devise token authで作る 認証API

Rails5 + devise token authで作る 認証API
上と大体同じような内容が書かれていると思いますが、二つ見ながらやるとよりやりやすいかなとは思います!

deviseを構築済の環境にdevise token auth を使ってAPIを作る場合

私はすでにdeviseを利用してログイン/会員機能をつけてwebアプリとしてリリース済でした

そこにiPhoneアプリとしても追加リリースでしたので、同じような場合はこちらのサイトを参考としてください!

deviseがすでに構築済の場合userが被ったりしていろいろあるので、1つ目のサイトではなく、こちらを参考とすると良いと思います

devise + devise token authでWebにもアプリにも対応

API・通信・iPアドレス・Ajaxなど実務レベルで使える基礎を得るならこれ

レビューなどでも、Ruby on Rails実務者として十分通用するための基礎知識を学ぶことができると評判の本です

APIやそれに関する周辺の知識について学習するにはもってこいの本です。

今後Ruby on Railsで転職・副業する予定なら、持っておいて損はないと思いますし、得られる知識の質を考えるとお値段以上の価値をもたらしてくれる一冊です。(もちろん、知識がついて生涯年収が上がれば、金銭的なバックも本の値段以上得られますし)


DeviseとDevise token authを共存させる(後から追加する)

こちらの記事も非常に参考になります!
私はRuby on Rails側のログインログアウトはdeviceを利用したかったので、この記事は非常に助かりました!
DeviseとDevise token authを共存させる(後から追加する)

余談

WkwebviewでアプリサイトのURLを表示して利用する場合は、Wkwebviewにセッションやcookieを持たせることができるので、その場合はこの記事で紹介する方法でなくdeviseを使った方法でも実現可能です。
(Wkwebviewにセッションやcookieにセッションを持たせることや、iPnohe内のWkwebview以外のパーツにその会員情報を流用するには一手間必要で面倒・難しいので、私は結局devise token authを用いています・・・)

エラー対応時、参考にしたサイト

【Rails】NoMethodError (undefined method `current_sign_in_at’ for #):

作成後、PostしてテストしたらNoMethodError (undefined method `current_sign_in_at’)が出たので、このサイトを参考に対応しました!

まとめ

APIだけの実装であれば非常に簡単だと思います!初めてで、エラー対応しながらも半日~1日あればできると思いますのでやってみてください!

deviseとの共存とかを考慮しながらやる場合は、初めての方は1日以上かかるかもしれないです。。。
(device特有の結構予想外のエラーとか未知のエラーにでくわして時間が取られます・・・)