テクノロジー戦略本部の一ノ瀬です。
モノをキャッシュにできるサービス『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を取り入れて実装しています。
処理の流れがわかりやすく、どこに何を書くのかが決まった設計となるので実装がしやすいです。
Gifu
gifアニメーションをサポートしてくれるライブラリ。CASHアプリ内にはところどころで表現されるリッチなアニメーションがありますが、gifファイルをGifuを使って再生しています。
lottie-ios
CASHアプリ内のアニメーションの中には、一部lottieを使ったものもあります。lottieは、jsonファイルをもとにアニメーションを再生してくれるライブラリです。
FSCalendar
カレンダーUIを簡単に表示できるライブラリ。ユーザーがキャッシュ化したアイテムを、自宅に集荷してもらう日付を決める際に利用指定されています。
XLPagerTabStrip
画面をスワイプしたりタブ選択をすることで簡単に画面遷移ができるContainer ViewControllerを提供してくれるライブラリ。
CASHアプリには、すぐにアイテムを査定できる「いますぐ査定」と、アイテムをまとめて選んで査定ができる「まとめて査定」があります。
「いますぐ査定」と「まとめて査定」ができる画面をXLPagerTabStripを使って切り替えられるようになっています。
「まとめて査定」の施策については、 ↓ で紹介されているので気になる方は読んでみてください。
おわりに
CASHのiOSアプリで利用している主なライブラリを紹介させていただきました。
よく使われているライブラリが多かったと思いますが、CASHのアプリがどう動いてるか少しだけ知っていただけてでも親しみを感じていただけたのではないでしょうか。
バイセルテクノロジーズでは一緒に開発をしてくれるエンジニアを募集しております。
バイセルテクノロジーズ、CASHに興味を持っていただけた方、是非お待ちしております。