バイセル Tech Blog

バイセル Tech Blogは株式会社BuySellTechnologiesのエンジニア達が知見・発見を共有する技術ブログです。

CASHのiOSアプリを支えるライブラリ

テクノロジー戦略本部の一ノ瀬です。

モノをキャッシュにできるサービス『CASH(キャッシュ)』のiOSアプリの開発に携わっています。

今回は、CASHのiOSアプリを動かしているライブラリはどんなものを使っているか紹介したいと思います。

Realm

モバイルデータベースライブラリ。APIから取得した査定アイテムのカテゴリや、査定対象のブランド情報、製品情報などをRealmに保存しています。

これらのデータで、サーバー側のDBと差分があれば、Realmを更新して、査定できる内容をアップデートしています。

Moya

Moyaは通信ライブラリAlamofireのラッパーで通信処理をカプセル化して扱いやすくしてるライブラリ。このMoyaを使い、Service単位でインターフェイスを定義してAPIとの通信処理を実装してます。

これとは別に、openapi-generatorで自動生成したコードを使ってAPIとやりとりを行っていて、新しいAPIではこちらを使うようにしています。

SwiftyJSON

APIのレスポンスはSwiftyJSONを使ってパースをしています。Codableに少しづつ移行していっています。

Kingfisher

画像取得やキャッシュ化は、Kingfisher を使っています。

ReactorKit

リアクティブで、図のように単一方向ストリームのアーキテクチャを提供するフレームワークです。新しい画面やViewではReactorKitを取り入れて実装しています。

処理の流れがわかりやすく、どこに何を書くのかが決まった設計となるので実装がしやすいです。

f:id:bst-tech:20201214194541p:plain

https://github.com/ReactorKit/ReactorKit より

Gifu

gifアニメーションをサポートしてくれるライブラリ。CASHアプリ内にはところどころで表現されるリッチなアニメーションがありますが、gifファイルをGifuを使って再生しています。

lottie-ios

CASHアプリ内のアニメーションの中には、一部lottieを使ったものもあります。lottieは、jsonファイルをもとにアニメーションを再生してくれるライブラリです。

FSCalendar

カレンダーUIを簡単に表示できるライブラリ。ユーザーがキャッシュ化したアイテムを、自宅に集荷してもらう日付を決める際に利用指定されています。

XLPagerTabStrip

画面をスワイプしたりタブ選択をすることで簡単に画面遷移ができるContainer ViewControllerを提供してくれるライブラリ。

CASHアプリには、すぐにアイテムを査定できる「いますぐ査定」と、アイテムをまとめて選んで査定ができる「まとめて査定」があります。

buysell-technologies.com

「いますぐ査定」と「まとめて査定」ができる画面をXLPagerTabStripを使って切り替えられるようになっています。

f:id:bst-tech:20201214202556p:plain

 

「まとめて査定」の施策については、 ↓ で紹介されているので気になる方は読んでみてください。

tech.buysell-technologies.com

おわりに

CASHのiOSアプリで利用している主なライブラリを紹介させていただきました。

よく使われているライブラリが多かったと思いますが、CASHのアプリがどう動いてるか少しだけ知っていただけてでも親しみを感じていただけたのではないでしょうか。

バイセルテクノロジーズでは一緒に開発をしてくれるエンジニアを募集しております。

バイセルテクノロジーズ、CASHに興味を持っていただけた方、是非お待ちしております。

 

依存関係地獄におさらば〜マイクロサービスのバージョン管理について〜

テクノロジー戦略本部の和田です。もうすぐ 2020年も終わりですね。 年の変わりって、メジャーバージョンのアップデートに似ている気がしませんか? というわけで、今回は、弊社で運用中のマイクロサービスのバージョン管理の話をしたいと思います。

続きを読む

CASH APIのRspecの実行時間が肥大化していた話

始めまして!2020年に新卒入社したテクノロジー開発部の富澤と申します。

普段は弊社が配信しているCASH(キャッシュ)のサーバーサイドの開発を中心に様々な開発に携わっています。

cash.jp

今回はCASH APIのRspecの実行速度を調査、改善した時の事を記事にさせて頂きます。

続きを読む

ロジカルシンキングのススメ

テクノロジー戦略本部の丸山です。

今回はロジカルシンキングというテーマで記事を書かせていただきました。

仕事をしていく上で同僚や上の役職の人に説明や説得をすることもあるかと思いますが、どうすれば納得してもらえるかを考えたときに必要になるスキルかと思います。

自分もまだまだできていないことだらけですが、ロジカルシンキングとはどういうものか、仕事上でどうすれば自分の意見を通しやすくなるかということの参考になれば幸いです。

ロジカルシンキングとは

ロジカルシンキング(logical thinking)とは、一貫していて筋が通っている考え方、あるいは説明の仕方のこと

ロジカルシンキング - Wikipedia

かなりざっくりですが、仕事上であれば、企画や何かしらの課題を解決したりする際に、どの様にすれば解決できるかを論理的に考え、必要に応じてアウトプットできる様になれば、ロジカルシンキングができているということになるかと思います。

論理的というと難しく聞こえるかもしれませんが、「なぜそうなのか」をしっかり説明でき、その説明に矛盾や疑問点などが出ない様になっていれば大丈夫です。

こうして文字にしてみると大したことはなさそうですが、実際にこれがしっかりできているかとなると、意外とできていないことが多いように感じます。

続きを読む