The code has actually been sitting in the repository since August 11th, but there were a few unresolved issues with the test suite on mobile browsers that I had to sort out — and I finally found a window of free time big enough to do that.

Adding support for mobile browsers was the most requested feature, and I’m glad it’s there at last (especially considering how painful it was to develop and test). The plugin was tested to work in Safari on iOS, the stock browser on Android 2.x and 4.x, and the mobile versions of Firefox, Chrome, and Opera on Android 4.x — which I think is good enough to say we have it covered.

This version is still strong in terms of backwards compatibility — while it is intended to be used with jQuery 2.x, it works just as well with jQuery 1.9, 1.8, and 1.7. Hell, it even pretty much works in IE6 — sounds perverted these days, doesn’t it? However, don’t take it for granted that it will stay that way in upcoming 1.x releases, as my plan is to focus on jQuery 2.x and the browsers that it supports.

That’s it for now — before I drop the “rc.1″ part and do a proper 1.0 release, I need to update the plugin homepage and documentation, and generally wrap things up. I also hope to get some early feedback, especially from people using the plugin in mobile web apps, so be my guest and try it out!

It has been a while since I posted an update about the development of the new version of imgAreaSelect… so here’s an update about the development of the new version of imgAreaSelect.

I am working on the project in my spare time, which is unfortunately an extremely rare commodity for me these days (the joys of running a company), so progress is rather slow. However, over the last few weeks I did manage to fix a couple outstanding issues, and I feel the code is now much closer to my next goal, which is a release candidate for version 1.0.

I must also say I never expected it to be this complicated to make the plugin compatible with mobile browsers — while it did require a few modifications to the basic code of the plugin, other than that it was mostly a matter of adding support for touch events. In reality, it turned out developing and testing a JavaScript UI component for mobile browsers is blood, sweat, and tears.

Maybe you’ve seen this picture, it popped up on my Google Plus feed a few days ago:

You might think, surely it can’t be that bad, it’s not that you have to own every single one of these devices, right? After all, there are simulators and stuff and you can do all the testing from the comfort of your desktop, can’t you?

Well, based on my experiences so far, maybe it’s not that bad, but it’s bad. For reliable results, you do have to test on real devices. While the iOS simulator that comes with the Xcode suite appears to be good enough for mobile web apps testing, the Android virtual device is useless. Its performance is a joke and makes it impossible to work with anything that requires UI responsiveness (such as my precious plugin). So, I’m testing with two real Android devices, one running version 2.2 and another running 4.2, and I hope the results are representative enough to generalize towards the overall population of Android devices out there.

In addition to that, mobile browser debugging tools are still immature. For the Android version of Chrome, there is a very good remote debugging utility, but no such thing exists for the default Android browser distributed with the system (or at least I’m not aware of such a thing). And although the two browsers should be pretty similar engine-wise (as they both use WebKit and are both made by Google), in my tests I did come across a bug that only manifested itself in the default browser and not in Chrome, and so was hard to track down.

I have also experienced funny things like bugs mysteriously disappearing without any changes to the code (and re-appearing later, naturally), strange HTML positioning problems, etc. At one point, when I was trying to reproduce some weird issue, repeatedly hitting that small screen and inventing brand new profanities, I realized that the last time I felt this level of frustration was in the dark ages of IE6. Yes, I mean it — mobile web development can be a horror comparable to dealing with IE6.

*sigh*

Sorry for the amount of whining in this post, I think I just had to vent. I survived IE6, so I’m not going to give up now, either. That release candidate is coming, I will keep you posted.

Here’s a little update on the development of imgAreaSelect version 1.0 with mobile browsers support, since people are inquiring about it every now and then.

I had a plan to release the glorious version 1.0 mid-March, and for a while it seemed everything was going in the right direction — I fixed my iOS testing setup (which is a VM running Mac OS X and the iOS device simulator), resolved some issues that came up, and found the plugin to be working nicely in both iOS and Android 2.x stock browsers. Then, for the first time I tried it in Android 4′s browser, and was greatly disappointed to see it being broken and pretty much unusable.

I’m not sure what is the cause of the issues, but it seems to be related to how touch/mouse events work in the newer Android browsers, and I’m slightly worried that fixing the problems might require a significant refactoring of the event handling code in the plugin. And it doesn’t help that debugging JavaScript on mobile devices is still a pain (though, I’m having some hopes that remote debugging might improve the situation).

All in all, I can’t say how much longer it’s going to take me to fix that and make a release. Nevertheless, I’ll keep working on it and will let you know how it goes.

By popular demand, I’m releasing a new version of imgAreaSelect, with added support for the latest and hottest release 1.9 of jQuery. There was a number of significant changes in jQuery (made in preparation for the upcoming 2.0 version), like the removal of jQuery.browser, which turned out to be incompatible with the plugin.

Thanks to everyone who provided feedback, especially toÂ Shane Shipston, who identified the problems with the new jQuery — this helped me roll out this update pretty quickly.

By the way, I noticed the jQuery Plugins website is back — I hope I’ll have enough free time in the next couple of days to get my plugins up on it.

I have finally released the new version of imgAreaSelect, numbered 0.9.9, which is intended to be the last version in the 0.x line (the next one is going to be a glorious 1.0 release).

The new version fixes a few minor issues, and is tested to work with the latest version of jQuery (1.8.3). As always, lots of thanks to all the people that sent me feedback and helped me with debugging.

I also promised to give you an update on the mobile version of the plugin. Well, it’s in a somewhat stalled state. I can’t get back to really working on it, because my beloved testing environment went broken — specifically, I can no longer test on an iOS browser. Since I don’t own any iOS devices, I used to do testing on an iPhone/iPad simulator, on Mac OS X running on a VirtualBox virtual machine. But, on my new system, I can’t get the VM to work. I spent countless hours reconfiguring the machine, creating new instances and reinstalling the OS, but so far nothing worked.

Anyway, I’m still determined to get back on it and get the mobile version to a release state, so either I’m going to get this bloody VM to work soon, or I might just end up getting an Apple device (gasp!).Â I also considered building a Hackintosh, but this might lead to the same problems that I’m having with the VM — ain’t nobody got time for that.

I’ve received numerous e-mails in the past couple of days asking me when the new version of ImgAreaSelect will be released. I wanted to make that happen this last weekend, but, well, precious technology failed me. My laptop, which I’ve been using as a development workstation for the past few months, started overheating really badly, up to the point of becoming unusable. I’m waiting to get it fixed, and until then I have to use an old netbook that’s only good for e-mail and web browsing, so I have to take a little break from development.

Actually, I was going to take a break anyway — I’m on a short hiking trip from today until the end of the week. But, I hoped to roll out the new version of ImgAreaSelect before leaving for the trip, and the overheating trouble thwarted that plan.

It has been just three days since the previous release of imgAreaSelect, and I’m already here with a new version! How’s that for short release cycles? But seriously, I screwed up a bit with the last release. There was a problem with the implementation of scaling which limited the area available for selection on scaled images, and it somehow went unnoticed during testing. Anyway, version 0.9.8 fixes it.

ImgAreaSelect 0.9.7 has just been released. It’s a few days later than I originally anticipated, as I bumped into some problems with the automated tests. Well, I guess with a dozen browsers, some running on virtual machines, some compiled from source code, I can’t expect things to be easy. Anyways, the significant changes in this version are:

The minWidth/minHeight/maxWidth/maxHeight options now respect scaling

There is a new API method, cancelSelection(), which cancels the current selection (as the name suggests)

Big thanks to everyone who provided feedback, especially to Loa and Greg.

With each new version, I spend some time making sure the plugin code is as small as possible — after all, the project home page states “the packed version is less than 8 KB”, and I want to keep it that way. But, the packed code for this release was initially about 40 bytes more than 8 KB, so I had to do some refactoring. By changing a few regular expressions, I managed to get it down to 8191 bytes, which happens to be exactly one byte less than 8 KB. That’s a close call, but, hooray, my statement still holds true!

A quick announcement: the GitHub project page for imgAreaSelect now includes a Roadmap, which lists the planned updates for the upcoming releases of the plugin. At the moment, I have a couple things in the backlog that I want to implement in the next patch-level release (0.9.7), and in the major milestone version 1.0. The changes planned for version 0.9.7 are rather simple, so I hope to release it this week or the next, and then we’ll be on the straight way to 1.0.

All the hype nowadays is about mobile technologies and mobile web, and one of the major updates in imgAreaSelect 1.0 is going to be mobile browser support. I’ve been working on this for some time, and the result so far is something that pretty much works in the standard Android browser and in Safari on IOS devices (iPhone and iPad). However, it’s probably going to take a few more weeks before it’s ready to go live, because a) I want to (try to) get it to work in other browsers, specifically Opera Mobile, and b) mobile browsers support required significant changes to basic plugin code, so I need to make sure everything still works as it did before, and probably rewrite a couple test cases.

ImgAreaSelect version 0.9.6 is out. A new major release of jQuery (1.6) came out a few days ago, and it turned out that the previous version of imgAreaSelect was not compatible with it — this version fixes this problem.

As always, thanks to all the people who reported this issue and provided feedback (especially to Rob Crawford and Giovanni Battista Lenoci for their valuable input).