https://github.com/faizmokh/boostcontacts
Simple contacts list application utilizing MVVM + Apple Combine Framework
https://github.com/faizmokh/boostcontacts
combine-framework mvvm swift
Last synced: 10 months ago
JSON representation
Simple contacts list application utilizing MVVM + Apple Combine Framework
- Host: GitHub
- URL: https://github.com/faizmokh/boostcontacts
- Owner: faizmokh
- Created: 2020-07-18T17:50:41.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-25T03:24:25.000Z (over 3 years ago)
- Last Synced: 2023-02-28T14:52:17.015Z (over 3 years ago)
- Topics: combine-framework, mvvm, swift
- Language: Swift
- Homepage:
- Size: 138 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BoostContacts
BoostContacts is an iOS app that load and save contacts in JSON files. It utilizes MVVM architecture and [Combine framework](https://developer.apple.com/documentation/combine)
## Setting up
```bash
git clone git@github.com:faizmokhtar/BoostContacts.git
cd BoostContacts/
```
Open `BoostContacts.xcodeproj` and run!
## Requirements
- Xcode 11.6
- iOS 13 and above
# Architecture Decisions
- This project is using MVVM architecture
- In some parts it utilizes the new Apple Combine framework to subscribe to changes.
- This project is using repository pattern in `ContactsRepository`
- Unit tests files are put in the same level as the class files. For example
````
/Models/
|
+---- Contact.swift
|
+---- ContactTests.swift
````
- Github Actions have also been set up for this project. You can take a look of the sample test runs [here](https://github.com/faizmokhtar/BoostContacts/runs/895500351?check_suite_focus=true)
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
[MIT](https://choosealicense.com/licenses/mit/)