Hope you all like the new update! I untethered you from the projector. The lock screen seemed like a good idea at the start, partly because I didn’t know how Apple would deal with my app for review, and I wanted to make it clear what the app did, and how it wouldn’t really work without a projector.
It does a lot more now than just simply projecting videos that it makes sense to be able to work without being connected to the projector, also I kept getting frustrated trying to show the app to people being interested in it, and not having a projector handy. Another issue is that people are buying it, and I’m so glad you are, and I it makes me feel apple will take it a little bit more seriously. The Reality Augmenter is a continually evolving app and I would love to hear your feedback BTW.
The layer geometry screen still needs some work, I’ll change it so you get full animation when not connected to the projector in the next couple of weeks. Currently it is still geared towards having the projector, and is deliberately low resource to draw quickly when connected and interfer as little as possible with the projected view. Obviously, if no projector is connected, that’s not an issue, just redoing the OpenGL for that part was going to need a rethink, and I figured you’d still like the new feature.
Well it took a while but I finally completed testing development, not that such a thing is always complete, but now my app is covered by many, many more tests. Split into UI and unit tests, it should cover nearly all the functionality of the app, meaning I’m less likely to forget some aspect of my app before releasing to everyone.
This all became necessary as my app grew more and more complex from it’s initial basic functions, and I have even more complex features to come, it’s important that all the basics work with every release, and as a developer, I’m always more excited about my new features and it’s easy to forget some of my earlier work!
You can see my automated GUI tests in this video, covering nearly all the functions available to the user tested in various ways. The video has been sped up 3x as the full GUI test run currently takes about 1/2 an hour.
I’m already working on the new version, I’m going to get rid of the lock screen that blocks access to the app without a projector connected. There’s so much more we can do without the projector now, it seems unnecessarily inconvenient. It’s a little more work than expected, the app has to respond to a projector being connected and disconnected in many more states, and how it reacts in each situation has to be considered.
Testing continues, after finally getting my testing environment in a good state, I’ve added over 100 tests in the last week alone, significantly increasing code coverage.
I reckon I’ve probably got a week left to cover the rest of the code and we can get releasing new features again.
All this is necessary as I gain users, I want to ensure you all get the best product you can get, and that I don’t accidentally break features you use. It will also cut down time between releases as each change catches potential bugs at every step.
It’s been quite a big job, as well as setting up an automated environment, I’ve had to do quite a bit of code refactoring to expose more of the application to proper testing standards.
I’ve been updating my testing environment to automate as much testing as possible, to eliminate simple bugs that have slipped through in the past, and make sure new features don’t interfere with existing functionality.
However, this is turning out to be a bigger job than I imagined, not so much writing the tests, but getting XCodes development environment work in tandem with the iOS simulator to setup different scenarios.
I’ve recently discovered simctl, which allows setting up custom simulators and adding media to a simulator, this is very useful as the default iOS simulator contains no videos to test with, and it used to require adding one manually, which is useless for automated testing. Now at least we can create simulators through the command line with preconfigured media, allowing me to better test videos for example, so that’s progress…. But I still have to remember and resurrect my command line and scripting skills, which have long been neglected. It’s been slow progress.
I run into other problems too, starting with what data the app starts with, what user defaults have been set etc, basically to replicate the app in any state and test it properly, none of it is easy to setuup in xcode and requires some rather ingenious hacks.
All in all, writing the tests is supported well in xcode, setting up the test environment is less than ideal though. I’m plodding through it, the next release will contain some minor bug fixes, then we’ll get stuck into some big new features.
Uhm, haven’t written anything here for a while, the last update seems pretty stable so in the run up to christmas I’ve been winding down a little. I’ve been improving testing, but nothing really significant has turned up so far, I’ll be improving the testing environment over the next couple of weeks to prepare the ground for more updates in the future. I doubt I’ll get a significant update out before Christmas so that’s it for the year, but plenty of new stuff to look forward to in the new year!
Well, combination of things, summer’s been around so I’ve been taking a few days off by the lake, and I also went to the Zurich Open Air festival to see a bunch of bands I wanted to see for ages.
On top of that, I’m learning all about how to use web based APIs to add some functionality (you’ll be able to directly download vids from dropbox), it’s all a bit unfamiliar at the moment as I’m not dealt much with web based queried and JSON, but I’m picking it up quick, still I run into some unexpected problems here and there.
Rest assured, a new release will be released as soon as it’s ready, hopefully in the next week or two.
I’m working on some new features, but it’s in an area I’m unfamiliar with, so I’m having to do a bit of learning and been down a few blind alleys. Once I get over the first hurdles I’ll be back in familiar territory, new updates soon.
EDIT: Further to this, I finally figured out how to get my OAuth tokens and am now figuring out the whole web APIs and JSON stuff for online cloud services. I found getting the token to be very confusing and poorly documented, but once I got access, using the APIs seems much simpler.
Been a bit quiet the last couple of weeks haven’t I? Took some time off for the local Blue Balls festival here in Luzern (That is the real name, I’m unsure if the swiss were aware of the double entendre…).
Anyway, back to work this week and working on a new feature which should be pretty exciting, keep checking for updates!
OK, so I’ve come up with a workaround to the orientation of videos filmed on apple devices, we can apply the rotation when the video is played (Which was already happening with portrait videos). This isn’t as good as converting the video to the correct orientation as additional real time processing is required. I will continue to look into the problem and see if I can raise a bug on it, or find a more effective workaround.