-
v1.1
- 入力欄に何も記載がないときにボタンを非活性にする機能を追加
- Light mode 使用時,ボタンにドロップシャドウを追加
-
v1.2 (趣味でやったことなので評価から外していただいて構いません)
- 変換の履歴を画面下部に表示する機能を追加
- 最新の変換履歴と同じ変換を試みる際はボタンが非活性になる機能を追加
-
v1.3
- API のエラー処理を改善
- かな/カナを変更した際に変換ボタンが押せない不具合を修正
- 入力された日本語テキストを全てひらがな・カタカナに変換する.
- 変換には goo が提供するひらがな化APIを使用.
- 出力の UITextView をタップすることで出力されたテキストをクリップボードにコピーする
- SegmentedControl を用いたひらがな・カタカナ選択機能
- 以下の場合に適切なアニメーションを表示する
- 変換している時
- コピーした時
- 変換できなかった・通信に失敗した時
- Dark Mode への対応
- 変換履歴を Realm により追加した
- UXに配慮して,ごちゃごちゃせず必要最低限な機能のみを実装した.
- シンプルで上から下へと操作が自然に流れる UI を意識した.
- ポイント色には私のブログ(AstroNOTE!)と同様のグラデーションを採用.
- Dark Mode, Light Mode 両方に対応.
- エラーハンドリング
- 現状,API通信に関して,結果を取得できたかそうでないかだけを判断しています.そこにエラーレスポンスも判断するようにしてユーザーに対して問題点を教えてあげるようにしたいです.
- 債務の明確な切り分け
- 勉強不足で Delegate などの理解が足りていないので債務の切り分けが全くできていないと感じます.
- テストの不足
- テストコードの作成方法への理解が足りず,テストを行っていません.
- 履歴の表示
- データベースを用いて変換履歴を表示したいと思っています.
- 今考えているのはハーフモーダルでの表示です.
- 自分の実力で間に合えば実装したいです.
- 追記 : v1.2 で追加済み
- 履歴のお気に入り機能
- 画像認識を用いた入力
- カメラで読み取った日本語をひらがな・カタカナに変換する機能を実装したいです.
- Localization
私がどういうルートで実装したかを記します.判断材料になれば幸いです.
- 詳細な課題内容を頂いた.
- Scrapbox で以下のような設計思想をまとめた.
- 基本機能
- 自分なりに実装したい機能
- 評価ポイント
- 必要な基礎知識の勉強
- 基本文法
- APIとは
- XCode11の使い方
- Hacking with Swiftのチュートリアルで Swift UI による簡単なアプリを作成
- ブランチの切り方などがとても雑ですが,一応リポジトリ残してあります.
- 本リポジトリを作成し,gitignoreを編集した.
- 将来チームで実装することを考慮し,Gitブランチモデルの体系化が必要と判断.
- Gitブランチモデルはこちらで学びました.
- 設計パターンも知らなかったため,設計パターンをいくつかざっと調べ,今回はMVCで十分と判断.
- 次に,本アプリのメイン機能に必要なAPIの扱い方を学んだ.
- API通信用モデルを作成.
- 入力欄,ボタン,出力欄を実装.
- Storyboardでは後の編集が大変になるのでは無いかと思いコードレイアウトについて必死に調べた.
- 結果,実装できず,そのままStoryboardで行くことに…
- ちなみに,Swift UIを使わなかったのは,後で余裕があればiOS 12以前に対応させたかったため.
- コピー機能・アニメーションを実装.
- UI の改善.
- エラー処理の追加.
- READ ME の編集.
- Alamofire (Swift PM)
- UITextView+Placeholder (Cocoapods)
- PKHUD (Carthage)
- RealmSwift (Swift PM)
書き漏れがあるとは存じますが,特に参考にした文献をリストアップします.
このリポジトリを参考になさる方のお役に立てたら幸いです.