前回はQiita Jobsの求人をPythonで取得し、ちょっとしたデータ分析を行ってきました。
今回はそのデータを持って、今あるQiita jobsをFlutterで再現してみました。Flutterの経験がまだ少ないので、設計の面を大目に見ていただけると幸いです。
出来上がり
公式サイトの一覧とフィルターは大体こんな感じです。
再現の感じ
公式サイトの一覧には画像と「気になるボタン」と「画像」については、こちらの目的とやや無関係なため、なくしました。
画像表示したければ、静止画をAWS S3に保存し、CloudFrontで加速することで行ける気がします。
公式サイトによると「気になる」は、求職側と採用側に「作用」するので、そこまで再現する必要がないと思いました。
フィルター機能
公式サイトの一覧確認でできる「利用技術」と「職種」で絞り込み以外に、勤務地のフィルターも追加しました。
詳細閲覧
今回はそれぞれの求人の詳細を取得していないため、新たなタブを開き、Qiita jobsの公式ページにリンクさせていただきました。
結果なし
結果がなければ、何も表示しないのが普通?かもしれませんが、それですと、今までの表示履歴がなくなるので、Dialogで結果がないことを知らせることにしました。
所感
再現することにあたって、最も困難なところはFlutter WebとFirebaseの連携&使用だと思います。
Flutterには、Android、iOS、Web同時開発できますが、Firebaseとの連携においていまいちだと思います。
今回はFirebaseのFirestoreに保存したデータをget, query, filter などにをするに苦労しました。それらを解決するにはもちろん公式ドキュメントやFlutterFireが一番の選択肢だが、他に特に参考になったURLはGoogleとこちらです。
どうしてもない場合、サンプルデータでTry&Errorでやってきました。その中でも記憶にあるのは、
- ページ化(Pagination)
- フィルター機能(Filter)
があります。
改善点と今後
今回は極一般的な機能を作成してみました。このほかにまだまだ追加できそうなものもあります。
-
Filterの機能を豊富にする
年収範囲、複数の技術選択などを追加する
-
Full-text search
全文サーチは公式サイトに確認したところまだ公式対応はないみたいが、Algoliaなどのsearch serviceを利用することでできるとのことでした。
-
AWS Lambda, SES, API gatewayなどのクラウドサービスを使用して気になった勤務地、技術の求人があった場合のメール連絡もできる気がします。
-
などなど