Rooster 1.0.1 Release Notes

Rooster 1.0.1 is a maintenance release to the wake-on-LAN application for tvOS. These are the changes done in this release:

  • New app icon.
  • Fix crash on app restoration
  • Power assertion to keep the Apple TV active during a wake-up cycle.

New App Icon

Apparently Apple does not want an image of the Apple TV to be a part of a tvOS application icon. This was only revealed recently as the initial version of the icon contained such image and was approved. A symbol of flat-screen television takes the place of the Apple TV device in the updated icon. The following image compares the two versions of the application icon.

Rooster app icon changes for 1.0.1

App Restoration

At times Rooster crashes when brought back from the background after a number of other applications was run after it. This occurs when the application was restored from a terminated state — not when it was thawed from a frozen background state. The problem lies in the interaction between Swift and Objective-C runtimes which apparently causes a race condition – this is present as of Swift 3.1 and tvOS 10.3.2.

Warning: technical language. When the tvOS application was restored, some of its classes were not yet fully loaded. At this time, Swift classes with Objective-C superclasses that have not been otherwise referenced nor instantiated have not been made visible to the Objective-C runtime. Hence when the Objective-C runtime tries to create objects from these classes, it could not find them and that crashed the app. The current solution is for Swift view controllers to make a reference to all of its data-object classes that are used the restoration process prior to decoding the actual objects from the restoration data.

Power Assertion

A wake-up cycle could take some time. It typically takes about a minute for our WD MyBook EX2 network-attached storage (NAS) to fully boot up and start responding to network requests from the time it receives the wake-on-LAN signal. Other machines may take longer to boot up. Therefore during this time, tvOS’ idle timer may kick in and put the Apple TV to sleep, making Rooster unable to detect whether the target device has woken up. To mitigate this, there is now a power assertion to prevent tvOS from going to sleep during a wake-up cycle.

Personally I notice that some other tvOS application failed to do this. One notable example is an online radio application that I have had used – about five minutes after tuning in to a radio station, tvOS’ idle timer kicks in and made the radio app stopped playing even though the device was connected to a bluetooth speaker. This made the app pretty much useless — what a shame really, since I liked its iOS counterpart (which, by the way, manages to keep playing despite the display is turned off).

Anything missing?

What do you think of Rooster? Is there a feature that you feel is important but missing from the app? Please write to us and let us know.

Tags: , , , , , ,