日本語(漢字・かな混じり)のテキストを入力すると、ルビ(ひらがな)に直して出力してくれる。
- このリポジトリをcloneする
- Cocoa Podsがある環境で以下のコマンドを実行する
pod install
- 「Rubyfull.xcworkspace」を開く
MVC設計を用いてなるべくファイルを分割して、ViewControllerが巨大にならないように自分なりにした。
エラーが起きた事が明示的に分かるようにした。
また、エラーの中でも
・入力が空白だった場合
・リクエストエラーが起きた場合
・レスポンスエラーが起きた場合
が識別出来るようにした。
通常は一瞬でリクエストが返ってくるが、サーバーが重い時などを考慮して、ロード中であることを明示するため「PKHUD」を導入している
・スクリーンショット
・アピールポイント
・詰まったところ
・課題
などが書いてあり、レビュー者に概要が分かりやすいようにしている
shields.io、絵文字、gifアニメを用いて見やすいデザインになるよう気を配っている。
外部に依存しない形でAPIクラスのテストが書いてある。
入力が大量の文字の場合でも、横や縦に伸びないようにしている
APP_IDやAPIのURLなどを直接書かないようにしている
SwiftLintを導入して、ルールに従ったコードになるようにしている
前回の実機テストの時とiOSもしくはXcodeのバージョンが変わっていたからかこのエラーが出た
ググると「時間が掛かっているだけなので待つと良い」という意見が多かったが、1時間半くらい待っても改善しなかった
最終的にMacの再起動とiPhoneの再起動で治った
IBoutletsの変数名を変えたせいで、古い変数名との接続が残ったままになったのが原因だった
その後もう一度同じエラーが出たが、その時はViewControllerの名前を変更したせいで接続情報がおかしくなったのが原因だった
debugprint()という関数を使えば良いと初めて知った
参考にしたリンク
The bundle “RubyfullUITests” couldn’t be loaded because it is damaged or missing necessary resources.
何も書いてないUITestが失敗する現象が起きて困った
昔も同じ事があったが今回はどのライブラリのせいなのか分からなかった
PodfileのUITest部分にも3rdパーティライブラリを記述して「pod install」する事で改善した
テストで直接APIを叩くと、たまたまサーバーが落ちていたりするとテストが失敗したり外部に依存する事になる。
なのでモックなどを使用するという事は分かっていたが、採用する事にした「MockingJay」というライブラリの情報がそんなに出てこないので苦戦した。
最終的にちゃんと使えたが、結構な時間を浪費した。
上記と若干被るが、「URITemplates」がエラーが出て動かなかった。
GitHubのIssuesを見たら、beta版だと対応していることが分かって解決した。
参考リンク
UITextViewのForce UnwrappingもSwiftLintから警告された。
この辺りは、UITextViewやUITextFieldは初期状態でもnilではないという情報が出てきたが念の為、guardでUnwrapにした。
その他、結構ダメ出しが多く対応が結構面倒だった。
UITestを今まで使った事が無かったので、まともに動かすまで少し苦戦した。 レコーディングが便利だと思った。
同じ場所に改行がないのが少し気持ち悪いと思ったが、実装方法が時間内に思いつかずそのままになってしまった。
特に挙動に問題は無いが、コンソールに「Unable to simultaneously satisfy constraints.」の警告が出ている。
IQKeyboardが原因と思われるが時間内に改善出来なかった。