OctoPhone is iOS client for OctoPrint v. 1.2.15. The app is written in pure Swift, with MVVM architecture and reactive approach.
The source code is part of my bachelor thesis at FIT-CTU in Prague. Last commit included in final thesis is 53b3dca. Since then, it's open source and ready for your contribution! 🎉
- Implements API of OctoPrint 1.2.15
- Automatically searches for printers on local network
- Shows video stream of current printing if it's available
- Print head controls
- Files management
- Terminal emulator
- Everythin' is reactive
- Install Carthage dependency manager
- Install SwiftLint Swift linter
- Install SwiftGen which generates translations
- Run
$ carthage bootstrap --platform iOS
- Open
OctoPhone.xcodeproj
- 🎉
This project also contains tests.
These are located at OctoPhoneTests and are used to test ViewModel layer.
You can run tests in Xcode with cmd + u
keyboard shortcut.
This project is build with a huge help of its dependencies:
- Realm (MIT)
- Alamofire (Apache 2.0)
- ReactiveSwift (MIT)
- ReactiveCocoa (MIT)
- Moya (MIT)
- SnapKit (MIT)
You can run octoprint in docker for testing purposes (on virtual printer). Simply run docker container:
$ docker run -p"32768:5000" josefdolezal/virtuprint-docker
Octoprint now runs on port 32768
.
App should be able to find your docker OctoPrint instance and connect to it.
In docker container is test user called octophone
with octophone
password. There is pregenerated access token for your app:
76DA2D98FFF8447681E1A5C6420B8F4F
Now you are set up. OctoPhone is now available to control virtual printer.