入力した漢字にルビを振るアプリ。
docomo Developer supportが提供するひらがな化APIを使用しています。
- Xcode: 11.5
- Swift: 5.2
- Cocoapod: 1.9.1
- Carthage: 0.34.0
プロジェクトをクローンしてからターミナルやiTtermで以下のコマンドを実行して下さい
$ make bootstrap
and
$ make project
①docomo Developer supportでひらがな化APIを使用することを申請しAPIKeyを発行して下さい。
②RubiApp/API/APIKey.swiftにあるの環境変数に取得したAPIKeyを入いれて下さい。
let APIKey = "ここにAPIKeyをいれてください"
issueに基づいた開発を行い、zehHubで進捗管理をしています
ブランチは、master・develop・feature/issue番号/で運用しました。
各ブランチ説明は以下です。
master: リリースした時点のソースコードを管理するブランチ
dev(masterから派生): 開発作業の主軸となるブランチ・リモートのDefaultブランチがこれです
feature/issue番号: 実装する機能毎のブランチ
MVVM + レイヤードアーキテクチャを採用しました。
MVVMの責務の認識は以下です。
画像の引用元MVVMとMVPパターン
これにレイヤードアーキテクチャを加えて以下の責務にしました
コンポーネント別で作業分担が明確にでき、FatViewControllerを避けることができるため。
また、個人的にRxSwiftでのバインディング処理を学びなおしたかったからです!
システムアーキテクチャを導入するにあたって、学習コスト・導入コストが一番低いと感じ、今回のアプリ範囲だとレイヤードアーキテクチャが適切だと感じたからです。
RxRealmについて
- http://rx-marin.com/post/dotswift-rxswift-rxrealm-unidirectional-dataflow/
- https://github.com/RxSwiftCommunity/RxRealm
- https://qiita.com/katafuchix/items/5909fa2d38b5f5455df1
MVVMについて
レイヤードアーキテクチャ