QiitaChecker enables you to watch the latest articles of Qiita. However, some problems are existed and should be revised.
In this app, I adopted MVVM + Clean Architecture. A Detail is shown in this figure.
This app separates three layers, presentation layer
, domain layer
, and data layer
. In presentation layer
, UI Event and Databinding are handled with ViewController
and ViewModel
. Essentially, presentation logics are stored in ViewModel
. In domain layer
, UseCase
stores and performs business logics and translates received immutable data (Entity
) into Model
through Translator
. In data layer
, Repository
receives immutable data with DataStore
and pass it to UseCase
. Also, DataStore
receives the immutable data as Entity
from QiitaAPI and pass Entity
to Repository
.
rbenv
,carthage
,mint
setup
Just run this command in your terminal
brew install rbenv ruby-build
brew install carthage
brew install mint
rbenv
install
Just run this command in your terminal
rbenv install $(cat .ruby-version)
- set the path in
.bashrc
and run.bashrc
Write the command in.bashrc
to set the path
[[ -d ~/.rbenv ]] && \
export PATH=${HOME}/.rbenv/bin:${PATH} && \
eval "$(rbenv init -)"
and run it with this command
source ~/.bashrc
- bundler install
Just run this command in your terminal
gem install bundler:2.0.1
- run
Makefile
and open the workspace
Just run this command in the project root in your terminal
make
and
open QiitaChecker.xcworkspace
- Improve UX (ex. add checkbox in TagCell to watch whether item is selected or not)
- add the function to search tags and posts by themselves
- https://medium.com/@rockname/clean-archirecture-7be37f34c943
- https://www.kagemiku.com/blog/archives/442
- https://github.com/YutoMizutani/architectures
- https://www.slideshare.net/ssuser3bddf8/clean-architecture-71046114
- https://qiita.com/H_Crane/items/d2d316b086745417ffae
- https://qiita.com/shira-shun/items/778e65308f26860664fc
- https://medium.com/@aliakhtar_16369/rxrealm-realmswift-part-7-cf83c4a3edb5
Under MIT License