全国道の駅検索 RS Station for iOS 進捗

  • 投稿:
  • 更新:2018年3月 6日
  • by
  • in

IMG_9077.png

Firebase関連以外はすんなり作れたんだけど、案の定というか Firebase-Authenticationで結構ハマりまくりでした。
ネットでは簡単に使えますとか色々サンプルはあるんだけど、いざアプリとして実装しようとすると、簡単に接続するだけじゃなくてエラー処理やら接続へのタイムアウトやらのインプリメントの方が面倒で、言われてるほど簡単じゃなかったです…。

当初は出来合のUI「FirebaseUI」をカスタマイズしようとして実装してみたんだけど、意外にこのカスタマイズも面倒で、ボタンの影を消したり、コーナーのラウンドを変えたり、UIActivityIndicatorViewに余計な黒い背景が付いてるの消したりするだけでも数日かかりました。で、一応できたのがこんな感じです。
オリジナルのソースコードには全く手を付けずに、サブクラス化したViewControllerからボタン等のAppearanceを変更しています。

IMG_9078.png

がしかし、この「FirebaseUI」を使った実装では1つだけどうしても実装ができませんでした。
各プロバイダへのログイン後に「Firebase-DB」と関連づけてサインインするんだけど、その接続が一定時間(だいたい40分位)で切れちゃうんです。そうすると再接続しなければならないんですが、再接続するためのトークンやらアクセスキーやらが、この出来合のUIからは取得することが出来なくて(どっかに隠蔽されてるんだと思うけど)、結局このUIを使うのは諦めました…。
(´Д`) =3 ハァ…

で、気を取り直してUIをスクラッチで実装したのがこれ。

IMG_9080.png

もういっそまったく違うUIイメージにしちゃおうかと思ったのですが、あえてオリジナルに似せて実装してみました(笑)
各プロバイダでインプリメントがちょびっとづつ違うし、ネットで情報を漁るも、大抵は何かが足りなくて、やっぱ最後の頼みの綱は「stackoverflow.com」ですね。
おかげで、Facebook認証とTwitter認証でのオリジナルボタンを使わないで直接認証のコールバックをさせる処理とかはバッチリ実装できました。
これでタイムアウト(?)による「Firebase-DB」への再接続も自動で処理できるようになりました。

それにしても、連携して設定する情報がめっちゃ多くて、もう一度同じ事をやれって言われても、また同じようなとこでハマるハメになると思います(笑)

後、出来合のUIよりはアプリのサイズは小さくなるかと思いましたが、UIをスクラッチで作った物と比べても5MBytes程度しか違いませんでした。使うライブラリの数はそれほど大幅には変わらないんでそんなもんですかねぇ?

日本語へのローカライズ処理もだいたい実装できたので、あとは最終テストと申請関連をなんとかすれば、3月中にはリリースできそうです。