Skip to content

3DprintFIT/octoprint-ios-client

Repository files navigation

OctoPhone - OctoPrint iOS client Build Status codebeat badge codecov

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! 🎉

Main

Features

  • 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

Setup

  1. Install Carthage dependency manager
  2. Install SwiftLint Swift linter
  3. Install SwiftGen which generates translations
  4. Run $ carthage bootstrap --platform iOS
  5. Open OctoPhone.xcodeproj
  6. 🎉

Tests

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.

Dependencies

This project is build with a huge help of its dependencies:

Local usage

Docker setup

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.

Login

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.