📱 The iOS app for Home Assistant, the open-source home automation platform running on Python 3
Switch branches/tags
testflight/2.0.0/8 testflight/2.0.0/7 testflight/2.0.0/6 testflight/2.0.0/5 testflight/2.0.0/4 testflight/2.0.0/3 testflight/2.0.0/2 testflight/2.0.0/1 testflight/1.5.0/19 testflight/1.5.0/18 testflight/1.5.0/17 testflight/1.5.0/16 testflight/1.5.0/15 testflight/1.5.0/14 testflight/1.5.0/13 testflight/1.5.0/12 testflight/1.5.0/11 testflight/1.5.0/10 testflight/1.5.0/9 testflight/1.5.0/8 testflight/1.5.0/7 testflight/1.5.0/6 testflight/1.5.0/5 testflight/1.5.0/4 testflight/1.5.0/3 testflight/1.5.0/2 testflight/1.5.0/1 testflight/1.2.0/38 testflight/1.2.0/37 testflight/1.2.0/36 testflight/1.2.0/35 testflight/1.2.0/34 testflight/1.2.0/33 testflight/1.2.0/32 testflight/1.2.0/31 testflight/1.2.0/30 testflight/1.2.0/29 testflight/1.2.0/28 testflight/1.2.0/27 testflight/1.2.0/26 testflight/1.2.0/25 testflight/1.2.0/24 testflight/1.2.0/23 testflight/1.2.0/22 testflight/1.2.0/21 testflight/1.2.0/20 testflight/1.2.0/19 testflight/1.2.0/18 testflight/1.2.0/17 testflight/1.2.0/16 testflight/1.2.0/15 testflight/1.2.0/14 testflight/1.2.0/13 testflight/1.2.0/12 testflight/1.2.0/11 testflight/1.2.0/10 testflight/1.2.0/9 testflight/1.2.0/8 testflight/1.2.0/7 testflight/1.2.0/6 testflight/1.2.0/5 testflight/1.1.2/11 testflight/1.1.2/10 testflight/1.1.2/9 testflight/1.1.2/8 testflight/1.1.2/7 testflight/1.1.2/6 testflight/1.1.2/5 testflight/1.1.2/4 testflight/1.1.2/3 testflight/1.1.2/2 testflight/1.1.2/1 testflight/1.1.1/11 testflight/1.1.1/10 testflight/1.1.1/9 testflight/1.1.1/8 testflight/1.1.1/7 testflight/1.1.1/6 testflight/1.1.1/5 testflight/1.1.1/4 testflight/1.1.1/3 testflight/1.1.1/2 testflight/1.1.1/1 testflight/1.1.0/3 testflight/1.1.0/2 testflight/1.1.0/1 testflight/1.0/54 testflight/1.0/53 testflight/1.0/52 testflight/1.0/51 testflight/1.0/50 testflight/1.0/49 testflight/1.0/48 testflight/1.0/47 testflight/1.0/46 testflight/1.0/45 testflight/1.0/44 testflight/1.0/43 testflight/1.0/42 testflight/1.0/41
Nothing to show
Clone or download
Travis CI
Latest commit 8b2edeb Oct 16, 2018
Permalink
Failed to load latest commit information.
.github Enable move bot Apr 29, 2018
.idea/codeStyles Working decently enough Aug 23, 2018
APNSAttachmentService [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
HomeAssistant.xcodeproj [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
HomeAssistant.xcworkspace Add new IDEWorkspaceChecks.plist file Jun 11, 2018
HomeAssistant [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
HomeAssistantTests [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
HomeAssistantUITests [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
MapNotificationContentExtension [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
NotificationContentExtension [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
Shared [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
SharedTests [ci skip] Version bump to 1.5.0 (19) Oct 16, 2018
fastlane Adding retry logic Oct 4, 2018
icons Fix beta icon size Nov 8, 2017
push_certs Add lane for generating push certs Apr 15, 2017
.gitattributes Add .gitattributes file to fix pbxproj issues Jan 3, 2017
.gitignore Update and localize iTC metadata Nov 10, 2017
.swiftlint.yml fix deprecated rule name Apr 11, 2017
.travis.yml Start using Xcode 10 for Travis builds Oct 6, 2018
CLA.md Update LICENSE.md and CLA.md to reflect the new Apache 2.0 license Jan 28, 2017
CODE_OF_CONDUCT.md Add organization docs Jan 23, 2017
CONTRIBUTING.md Fix broken link in CONTRIBUTING.md. Oct 4, 2018
Gemfile Add Synx and the fastlane plugin for it, along with a Gemfile Jan 7, 2017
Gemfile.lock Adding retry logic Oct 4, 2018
LICENSE.md Update LICENSE.md and CLA.md to reflect the new Apache 2.0 license Jan 28, 2017
Podfile Rework Camera Notification Content Extension to work with new auth API Oct 10, 2018
Podfile.lock Rework Camera Notification Content Extension to work with new auth API Oct 10, 2018
README.md Bump version Oct 3, 2018

README.md

Home Assistant for iOS

Swift 3.0 Platform iOS Build Status codebeat badge GitHub issues License MIT Twitter

Getting Started

Run the following two commands to install Xcode's command line tools and bundler, if you don't have that yet.

[sudo] gem install bundler
xcode-select --install

The following commands will clone the repo and install all the required dependencies.

git clone https://github.com/home-assistant/home-assistant-iOS.git
cd home-assistant-iOS
bundle install
pod install
bundle exec pod install

Now you can open HomeAssistant.xcworkspace and run the HomeAssistant target onto your simulator or iOS device.

Code style

This project will follow the GitHub Swift Styleguide in every way possible.

In order to enforce this, the project will also have a Swiftlint build phase to run the linter everytime the app is built.

Project Structure

To keep the Xcode layout mirrored with on-disk layout we're using Synx.

Dependencies

Model

Networking

UI

  • CPDAcknowledgements: Show your CocoaPods dependencies in-app.
  • Eureka: Elegant iOS form builder in Swift
  • FontAwesomeKit: Icon font library for iOS.
  • MBProgressHUD: MBProgressHUD + Customizations
  • Whisper: Whisper is a component that will make the task of display messages and in-app notifications simple. It has three different views inside

Utilities

  • DeviceKit: DeviceKit is a value-type replacement of UIDevice.
  • KeychainAccess: Simple Swift wrapper for Keychain that works on iOS and OS X
  • PromiseKit: Promises for Swift & ObjC
  • SwiftLocation: Easy Location Manager and Beacon Monitoring in Swift sauce

Environment

  • SwiftLint: A tool to enforce Swift style and conventions.
  • SwiftGen: A collection of Swift tools to generate Swift code (enums for your assets, storyboards, Localizable.strings, …)
  • Fabric: Fabric is a mobile platform with modular kits you can mix and match to build the best apps
  • Crashlytics: The most powerful, yet lightest weight crash reporting solution
  • Synx: A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
  • Fastlane: The easiest way to automate building and releasing your iOS and Android apps

Continuous Integration

We are using Travis alongside Fastlane to perform continuous integration both by unit testing and deploying to Fabric or iTunes Connect later on.

Environment variables

To make sure Fabric and iTunes can deploy, make sure you have them set to something similar to the following environment variables. The values are only examples!.

Note: For ENV variables to work in Xcode you to set $ defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO and launch Xcode from the terminal. Apple Developer Forums

Signing

  • HOMEASSISTANT_CERTIFICATE_KEY: The Certificate key used in Match
  • HOMEASSISTANT_CERTIFICATE_USER: The username for the git being where Match is saving the Certificates.
  • HOMEASSISTANT_CERTIFICATE_TOKEN: The access token for the git being where Match is saving the Certificates.
  • HOMEASSISTANT_CERTIFICATE_GIT: The address or the git being where Match is saving the Certificates. (e.g. https://gitlab.com/username/Certificates)

Fabric deployment

iTunes deployment

Deployment

Although all the deployment is done through Travis, you can do it manually through Fastlane:

Deployment to Fabric

bundle exec fastlane fabric

Deployment to iTunes Connect

bundle exec fastlane itc

Contributing

See CONTRIBUTING.md

LICENSE

Apache-2.0

Credits

The format and some content of this README.md comes from the SwipeIt project.