After a long period of inactivity, our IOS client has received flurry of new activity and is now live. This has been done entirely by a new contributor, Tim Müller-Seydlitz (@timbms ) who has worked tirelessly for the last few months bringing our application into the modern world
While there are numerous changes and updates that can be found in the release notes below, by far the largest one is not something that will be immediately visible to end users, but is critically important for future development. Tim has completely ported our Objective-C based code to Swift. I can’t overstate how large this undertaking was, while there are tools that can assist efforts like this, the amount of code rework and rewrite was enormous. With our codebase now in Apple’s preferred language, we are hoping more of our community will be able to contribute and enhance our IOS application.
Other development improvements include using Fast Lane for automated builds and using BitrIse as a cloud based build and deploy server. Bitrise is linked to our github repo and will build and deploy branches and PR’s automatically using Fast Lane.
Please give Tim a big thank you for his work!
As always you can find the source code, submit issues and create pull requests at
(PS it may take 24 hours for Apple to distribute the new build to all regions)
Migration from ObjectiveC to Swift. Though this migration was as the start just a technical migration to a different programming language, it allowed to get the openhab iOS app out of a dead end and to come up to par with the development on other platforms and to be aligned with latest requirements on iOS.
Addressing known issue and bugs:
- Setpoint got fixed, handles now decimals properly
- Sliders cells fixed to honor min, max and step, improved to show value that will be set on release
- Handling of images and videos got fixed
- Maps: a default height is set, if none is given. Closes #184
- Icons are fixed - App is now able to handle png AND svg icons
- Long labels are correctly cut off
- Accessibility improved by handling changes in font size
- Reworking the connection to remote myopenhab.org
- Search bar for items was added
- Authentication with mTLS client certificates
- Fixed handling push notifications
- Automated generation of screenshots
The excellent ObjectiveC code quality allowed the usage of the migration tool Swiftify for the body of the application. Still, internally a lot of changes were applied:
- Unit tests were introduced.
- JSON decoding was migrated to Decodable
- Frameworks were upgraded to more recent versions
- Migrating to UNUserNotificationCenter
- Migration to built-in functionality of iOS,
- Migrating to Swift 5 and Xcode 10.2
- Got rid of all compiler warnings - some remain in external frameworks (
- Swiftlinted source
- Got rid of trailing constraints in storyboard
- Addresses deprecations for instance NSAttributedString and Reachability
- Getting rid of last viewWithTag
- Cleaning up code commented out
- URL Strings composition migrated to Endpoint
- Migration to logging framework os_log instead of print with typed access to UserDefaults.standard for string
- Migrated to os_log for logging
A watchOS app is in the making and will be released soon.