Skip to content

geekshu625/RubiApp

Repository files navigation

RubiApp

入力した漢字にルビを振るアプリ。
docomo Developer supportが提供するひらがな化APIを使用しています。

以下Demo動画です。
rubigit.gif

環境

  • Xcode: 11.5
  • Swift: 5.2
  • Cocoapod: 1.9.1
  • Carthage: 0.34.0

セットアップ

cloneしてからすること

プロジェクトをクローンしてからターミナルや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の責務の認識は以下です。

スクリーンショット 2020-04-14 15.11.55.png

画像の引用元MVVMとMVPパターン

これにレイヤードアーキテクチャを加えて以下の責務にしました

MVVMにした背景

コンポーネント別で作業分担が明確にでき、FatViewControllerを避けることができるため。
また、個人的にRxSwiftでのバインディング処理を学びなおしたかったからです!

レイヤードアーキテクチャにした背景

システムアーキテクチャを導入するにあたって、学習コスト・導入コストが一番低いと感じ、今回のアプリ範囲だとレイヤードアーキテクチャが適切だと感じたからです。

参考文献

RxRealmについて

MVVMについて

レイヤードアーキテクチャ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published