[Highlight] User Returns

One of the things to handle when you have publicly available software out there is what the users’ response is like.

For Highlight 2, it was overall pretty warm and nice, except for 2 general things :

  • “I can’t scroll the window under Highlight” (1 star review) : Well… yes. A computer has windows on screen that take active user inputs, such as keyboard and mouse events. It’s really an either/or situation where there’s no way to determine if that particular time you wanted to click through or draw a point. Not to mention more modern OS feature some security features that specifically forbid and prevent your app to access another’s memory (and a window is part of the app’s memory). So… well, yea.
  • “It doesn’t work on top of Keynote” (2 stars review) : For reasons not dissimilar to the point above, this is currently not feasible. To get a little bit technical, it’s a matter of screen capture, kind of like in games. Basically, the app expressly states it wants the screen(s) for itself. Unless you have a way to insert yourself in the graphical pipe (through the graphics driver, for instance, which is how NVIDIA does it for its Shadowplay features, or through the graphical library like Steam), there’s nothing to be done. And as a small fry developer, I don’t think I will have any way to install a potentially harmful kext ( Kernel Extension) in the App Store.

Moving on to the things that made me laugh (and far more numerous than I thought):

  • “Why don’t you market it?!? I’ve never heard of it before today!” : Hmmmmm. I’m lazy, that’s all. I kind of want to see it have a life of its own. It’s not free, granted, but it’s clearly not geared towards massive profits… What should I do? post an ad? go talk about it on a show? Come on people, let’s be real :)

  • “Do you want to make tons of money with it? if so, please contact me” : See above, with more laughter.

  

[Highlight] 2.0 in the pipes

It’s been a long time coming. Between my projects with quite in depth dives in BTLE and CoreData (and the various more “classic” iOS development shenanigans) and the fact precious few volunteered to beta test HLT2, I didn’t have much time for getting that release up to publishing standards.

It is now a done deal and the 2.0 version has been submitted to the App Store.

New goodies include one of the top demands for that app, text input. Historically, my main concern about text input had been the potential clunkiness of dealing with a UI that would make sense in a totally mouse-oriented application. I found a solution that seems to be a good compromise : any double click on the screen will bring up a text input bubble (with the color of the pen it will use as a border, because, well, I’m forgetful sometimes). You can obviously setup the font you want to use in the preferences.

The main problem with that, though, had to be technical : NSPopover doesn’t work well at all with multiple screens (radar submitted), so I had to make my own, based on some existing code, but still mostly debugged line by line to work as intended.

Anyway, it works. It’s one of these “it looks easier than it is” things to implement, but it’s there.

Thanks to the bug reporting tool, and kind users sending me emails, I also managed to fix various issues with multiple screens, and laptops, as the dynamic nature of what a screen is wasn’t factored in properly. It now is.

And finally, the old method for global system shortcuts was wonky under more recent releases of the OS, so that had to be redone as well.

Anyway, I’m glad I finally managed to push it out and keep my fingers crossed for the validation by Apple. Hopefully, the 2.0 release of highlight will hit the store in a few days.

Keep sending me feedback, as it motivates me to inject new things in that project! And thanks a lot for making this app a bigger success than I hoped for!

  

[MISC] Development Dance

Nothing new to developers but for some reason sometimes hard to grasp for the profane, the development dance is something that should be taught in schools.

In the mind of the non technical customer/boss, “development” is the process of going from nothing to a highlighted goal (specs, screens, that kind of things).

Most of the time, if you do a whole project with only developers attached to the process, for us code monkeys, it’s more like building something with Lego(s; bricks) : we build something that works, then iterate towards something like an ideal.

Cultural clash happens when the goal isn’t realistic from the point of view of the dev, but is non negotiable from the point of view of the non dev.

Which leads to the Dance : we take a few steps back on the goal, then a couple of steps sideways, then a few steps forward again.

Non technical people have to understand that’s the only way they can get close to what they want. Because the technical side is fraught with pitfalls, unwanted deadlines, miscomprehension, etc. Many a good feature started as a “what if?” coming from down below, only made possible because the foundations allowed them.

Going for a strict top-to-bottom approach gives you apps or websites riddled with bugs (because, as hard as you try, users will always use your work in a way it’s not supposed to support, or that you didn’t think of), and a strict bottom-to-top approach gives apps that are bland or ugly or without global vision.

Only a smart collaboration of the two can result in a decent product. Agree on key features, on a way the program should be handled in a way that’s considered normal, and fill the blanks as you go. That way, devs can geek out and build foundations that will handle anything and everything that they can think of, without having to fear you will change your mind once the hard work is done, and the non-techs can leverage the tech savvy to get something that will satisfy their itch of a beautiful, sensical product.

As with any relationship, concessions have to be made, and so far, the dominant culture has mostly been that developers don’t – and shouldn’t – have any input on the project, that developers are executants. What more companies get in return is a passive aggressive stance of “I’m going to do exactly what you asked, so that you can see it fail miserably”.

  

[WWDC14] Thoughts

I won’t go into details, the WWDC keynote has been covered far and wide.

  • New Look : √
  • New APIs : √
  • New ways to do old things : √
  • New Language : errrrr √

Response among the community was unanimous, this is xmas come early. And it’s true that for us developers, there a lot to be excited about. The new “official” way to communicate with other apps through the extensions mechanism is awesome, the integration of TestFlight will make a lot of things easier, especially for us small teams, and the new language will hopefully make us more productive (yay, less code to write).

There are some blurry or grey areas about these changes that will probably cause some problems, but hey, we’re Da Dream Team, right? We’ll manage.

The only thing that struck me as a slight cognitive dissonance is the fact that outwardly, Apple publicly recognizes our role in the success of the platform (huge), but kind of changes nothing in the way we are treated. I am definitely not asking for exclusive access to the thought process of Apple regarding what’s secretly being working on, I think opening up betas to pretty much everyone defuses the rumor mill, and might help get better .0 releases.

Since we are the people who make the “normals” want to get an iPhone/iPad, why is it so hard to have any handle on how we do it?

Xcode tends to get better, but there is still no way to expand its capabilities, or adapt it slightly to the way our brains handle code-writing. Third party IDEs (like AppCode for instance) that may not be perfect by any stretch of the imagination, yet still give us more flexibility, have a hard time adapting to the internals of the build process. We still have proprietary/opaque file formats for vital parts of the development (I’m looking at you XIBs and CoreData models). Cocoapods have become mainstream, but are still iffy to integrate (and might break).

For the social side of things, since WWDC is harder to get to than a Prince concert, same deal, it’s Apple’s campus, or community based (read no help from Apple whatsoever) things. Kitchens? Local dev events? Access to labs? If you’re not in California, tough luck.

So, yes. We are the main booster for the success of the platform, but we have absolutely no handle on things, in any way, shape, or form.

Am I excited that we get shiny new things to play with? Sure. Is my head buzzing with ideas? Yup.

But I am also a bit bitter that, sometimes, it feels like we’re not working together.

  

[HLT] Version 2.0 in the works

I have been so overwhelmed with work and system changes that it’s been hard to keep up with the Highlight maintenance.

But I’m pleased to announce this is officially over, I stopped slacking and a 2.0 is reaching the Release Candidate stage.

New features include on-the-fly screen changes detections, and text input (yes, you asked for it, you will have it)

Bug fixes include retina weirdness, and global shortcut fixes for Mavericks.

If you have some last minute requests or bugfixes to include, don’t hesitate to fill in a note in the bug/feature tracker