LoginSignup
1
1

More than 5 years have passed since last update.

iOSエンジニアがはじめてのReactで技術書レビューサイトを作った話

Posted at

技術書レビューサイト

早速だが、作った技術書レビューサイト「Compile Books(コンパイルブックス)」を貼る。
良かったら使ってみて欲しい。

スクリーンショット 2019-05-01 2.41.37.png

主な機能

レビューを見る

レビューを見たい本をタイトルで検索して、書籍詳細ページでレビューを見ることが出来る。
レビュー項目は技術書に特化した項目を設定しているため、一般的な本のレビューサイトやECサイトのレビューサイトと異なり、技術書として有用かどうか?を知ることが出る。
まだまだレビュー自体が少ないが、これからどんどん増やせるように努力したい。

レビューする

もちろんレビューを投稿することができる。
選択性の4項目は必須、フリーワードの項目は任意項目としている。
スクリーンショット 2019-05-01 2.50.11.png

お気に入り

書籍詳細のページの「気になる」ボタンを押すことで、特定の本を自分のお気に入りリストに追加することが出来る。
レビュー、気になるの履歴はマイページから確認することが出来る。
レビューを見る、投稿するだけでなく、技術書の管理サービスとしても使ってもらえる。

技術的なお話

ここからは「Compile Books」で使用した技術スタックについてまとめて、感想や解説を書いていく。

React、Redux、ReduxSaga

ここで私が説明するまでも無いフロントエンドにおける組み合わせの主流の1つです。
Reactのライフサイクルという概念は普段iOSの開発を行っている私にとって、理解しやすかったです。
逆にStoreで全てのStateを管理するという概念には馴染みがありませんでしたが、面白いと思いました。

GoogleBooksAPI

「Compile Books」を作るにあたって一番のハードルは、書籍情報をどのように取得するか。
今回は「GoogleBooksAPI」を使用することで、書籍情報を取得している。
実際の使い方についてはQiitaでもいくつか記事が上がっているのでそちらを参照して欲しい。
注意点としては、

  • 一部の書籍でサムネイル画像のURLが無い
  • 電子書籍もレスポンスに含まれるためISBNが無い書籍も存在する
  • 独自のidが書籍ごとに振ってあり、そのidで検索することも可能

がある。
レスポンスをしっかりハンドリングして表示する必要があった。
「GoogleBooksAPI」を使用する場合は注意して欲しい。

AWS(lambda, dynamodb, cognito, s3. cloudfront, route53, amplify, ACM)

バックエンドや認証はすべてAWSに任せている。
特に今回はドメインを取得してサイトを公開する必要があったが、そこまで全てAWSで出来てしまうのは非常に助かった。
また、普段Realmを使用している私にとっては「dynamodb」の存在は心強かった。

最後に

「技術書に特化したレビューサイト欲しいな、よし作ろう!」と思って作った「Compile Books」であるが、まだまだ不完全な箇所が多いのは見てもらうと分かる。

こんなバグあったよ、とかこんな機能欲しい!という要望があればお知らせ頂けると嬉しい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1