アプリについて
本の知識を管理するアプリです。
詳しくはこちら
開発したきっかけ
Color Masterの開発で、結構SwiftUIに慣れてきたので、ちょっと本格的なアプリを作ろうと思ったのが開発したきっかけです。
UI/UXデザインについて
なるべく純正アプリのようなデザインを心がけました。なので、色も、純正アプリのメモのように、黄色をアクセントカラーにしました。
自分はダークモードを使っているので、ダークモードを軸に考えて設計していますので、ライトモードはちょっとダサいです笑。。(後でいい感じにします。)
苦戦したところ
Firebaseのデータ読み込み
今回、本格的にFirebaseを使うのは初めてだったので、タイムライン機能の実装にかなり苦戦しました。
最初にタイムライン機能を実装したときは読み込みに毎回5秒以上かかっていました。。理由としては、直列でタイムラインの情報を取ってきてそのタイムラインのUserIDからユーザーの情報を取ってきてみたいな実装をしていたからです。しかし、それではデータが多く慣ればなるほど読み込み時間は長くなってしまいます。そこで、データの読み込みを直列から並列に変えたところ、読み込み速度が0.5秒くらいになりました笑。変えたのはたった3行くらいです。
もっとデータの読み込みロジックについて勉強しないといけないなと思いました。
Amazonアフィリエイトリンク
Amazonのリンクがいくつか配置されていますが、あのリンクはアフィリエイトリンクになります。
このアフィリエイトリンクを作るのに結構苦戦しました。。
Amazon PAAPIというAPIを使って実装するのがマストだと思いますが、Swiftでの実装文献が全くない上にかなり難しく、実装できませんでした。そのため、他の言語でPAAPIの取得をしてAPIを作ってそれをアプリに送ろうかと思いましたが、Swift以外の経験があまりなかったので、開発にかなり時間がかかるなと思い諦めました。。
が、なんだかんだ諦められず、、実際にAmazonのAPIを使っているアプリの開発者に「PAAPIを使った実装の概要を教えていただけないでしょうか?」と問い合わせてみました。
そしたら、「PAAPIは使っていません。無理やりリンクをアフィリエイトに変換しています。」と返事が返ってきました。
なんと、PAAPIを使わなくても、ISBNさえわかればアフィリエイトリンクに変換できることを知りました。で、色々調べた結果アフィリエイトリンクを作ることができたので、一件落着しました。
しかし、いつかPAAPIを使った実装をしてみたいと思います!
使った技術
使った言語
- Swift
使ったプラットフォーム
- Xcode
- Firebase
- cocoaPods
- SPM
- Illustrator(ロゴ)
- MockView(AppStoreプレビュー)
- WordPress(LP)
使ったフレームワーク
- SwiftyJSON(JSON形式を簡易的に扱えるやつ)
- SDWebImageSwiftUI(URLから簡単に画像を表示できるやつ)
- RealmSwift(データベース)
- PKHUD(ローディングやチェックマークを表示してくれるやつ)
- FirebaseUI(ログイン機能を簡単にやってくれるやつ)
- FirebaseStorage(オンライン上のデータベース)
- FirebaseFirestore(オンライン上に画像のデータを入れるやつ)
- FirebaseCrashlytics(クラッシュしたら通知してくれるやつ)
- SwiftUIImageViewer(画像を簡単に拡大してくれるやつ)
これからの開発
このアプリは、自分の看板アプリとして使っていきたいので、ちゃんとアップデートしていきたいと思っています。(今までのアプリはひどい、、、)
これから追加したい実装や、修正したいことなど山ほどありますので、これから地道に自分の理想のアプリにしていきたいと思います。
修正したいこと優先度:高
- [本を追加タブ]と[本棚タブ]のサーチテキストフィールドの幅を合わせたい
- タブバーを押したら一つ画面を戻るようにしたい
- リザルト画面で本を横にしてその表紙のベースカラーを取得して無限スクロールさせたい。
- twitter、facebookログインできるようにしたい
- ウィジェット入れたい
- ウォークスルー入れたい
- リフレッシュ時はPKHUDを消したい
- 開発者のおすすめの本の詳細を見るで読みたい一覧に追加できるようにする。
- コラムで自分だしすぎ?笑
- くるくるのタイミング(出る時と出ない時がある。)
- グラフのページメモ数、冊数を行き来すると、年代がズレる。
- ページメモを消す時一瞬アラートが表示されてしまう現象
- 通知機能の追加
- 機種変対応
修正したいこと優先度:中
- あなたの最高の3つの本のリンクを作って共有する。
- 自分の投稿の並び替えのところを再帰処理??
- スワイプした本を他の画面行ったときにリセットさせないようにする
指摘されたら修正すること
- 発売日を手動、変更に入れる
- 不適切なユーザーをブロックする仕組み?
- 連続バーコード
AmazonAPIになったら修正したいこと
- 本に出会う画面で、出てくる順番を決められるようにする(現状売上順のみ)(レビュー順、評価順など