The PLAN
This release implements some features that have been requested for a while but that required a lot of code to change. I try to group together features that affect the same code so that I’m only ever working on one part of the application at a time. For this release I wanted to look at improvements in zooming and progression within and between comics.
In particular I wanted to address the following requests:
* A settings option to choose between page-fit and width-fit when turning a page.
* An option to lock a page in position to remove borders and have that lock maintained between pages.
* Go to the next comic automatically or to have a pop-up when reading a comic is finished to ask the user if they want to go onto the next one.
* Integrate with Drop Box.
* Brightness control.
In addition to those I also wanted to bring the rest of the Settings from the iPad Settings app into Comic Zeal, fix a few bugs and provide some small enhancements.
The challenging thing with user feedback is working out what the users actually need to do, instead of how they envision doing it. The first three items in the request list above ended up taking slightly different forms to what was requested. I’d like to spend a little time going through them.
Page-fit and width-fit snap:
I planned to add a setting for this, but I’m just not a fan of adding settings. What I ended up doing is to add a ’snap to’ when zooming. So if the user releases a zoom gesture close to the page-fit zoom the application snaps them to that, if they release it close to the width-fit then the application snaps them to that. If the user is viewing a landscape page the application snaps to height-fit instead.
What the user is actually selecting here is whether they want to read the whole page at once or scroll the page.
Once the user has snapped to either of those settings the application will remember it when the user turns the page and adjust the zoom level of the next page to fit either the whole image or scroll along the longest dimension. It ends up working like a silent setting and Comic Zeal remembers your preference between sessions. In reality you’re likely to change that a few times within a session but adjusting the zoom level is a very natural way to change your preference.
When the fit-to-width/height mode is enabled Comic Zeal helps you scroll in the chosen direction while ignoring movement in the other. So if you have a page that’s taking up the whole width of your screen and can be scrolled up/down, and if you start to scroll the page vertically, then Comic Zeal won’t let you scroll it horizontally. You can always scroll in whatever direction you want of course, this just makes it easier to only do it in one.
Locking zoom and position:
A couple of users wrote in with the suggestion that Comic Zeal should be able to lock in a zoom level and page position so that page borders can be consistently hidden between pages.
I toyed around with this for a couple of days before coming up with something I was happy with. It really makes a difference too. Most of the Golden Age comics are much more readable when zoomed in and positioned to hide the borders. It’s not a huge increase in text size but it makes a big difference as in many cases readability is marginal.
To enable this feature the user performs a zoom gesture until they have just the right zoom level and page position, the best way I’ve found to do this is by bringing both thumbs from the side of the iPad onto the screen. While zooming they can also move the image around to bring the borders to the right place in the page. Once it’s right they hold the zoom for half a second. A graphic pops up indicating that the lock is enabled.
Now, whenever they turn a page, if the page is in the same orientation as the one that was locked, and as long as the device is in the same orientation , the zoom and positioning is reproduced.
To break the lock, the user performs another zoom gesture.
There was a problem with double page spreads, the careful positioning and zooming goes out the window, similar to what happens if the device orientation is changed. To overcome it, Comic Zeal performs a fit-to-width whenever the orientation of the page is different to the orientation that was locked (ie. when you lock a portrait page but turn the page to a landscape page) or when the device orientation changes. The lock is brought back into effect as soon as a portrait page appears again or the device is bought to the original orientation.
Going on to the next comic:
I had a few requests to make it easier to go onto the next comic. These requests have taken the form of ‘have a dialog that pops up’ or ‘automatically open the next comic when the current one is finished’.
I didn’t like either of those options. I think dialogs should be used when you really want the user to pay attention to something, not two or three times per reading session to do a routine task. Automatically going to the next comic could be confusing to new users and occasionally annoying to those who are more experienced. Neither of those work very well when the comics are out of order either.
So the solution I’ve come up with is to bring up the ‘Collection’ pop-up when the user tries to turn past the last page. In most cases the user will just tap the next comic in the list, the interface is hidden and off they go. Same number of taps as a dialog BUT it lets them chose another comic if they are out of order.
Obviously to make this work the Collections pop-up had to show the currently read comic instead of scrolling to the top all the time too, so I’ve fixed that bug too.
Every little change
Here’s every change that will go into this release:
- Added a snap to page-fit and width-fit.
- Added a lock feature that is accessed by holding a zoom gesture in place for half a second.
- When an attempt is made to turn past the last page, the collection view is presented with the currently displayed comic at the top. This it to make going on to the next comic much easier.
- When a comic is selected the interface is automatically hidden, this is also to make going on to the next comic a lot easier.
- Moved the settings that were still in the ‘Settings’ app into Comic Zeal.
- Added a manga mode that allows reading from the ‘back’ of the book as in eastern comics. Page turns and transitions all work to reflect that.
- Added a brightness control to the settings.
- The interface can no longer be hidden if no comic is being displayed.
- Improved the sorting of comics (issue_1,issue_10,issue_2 is now sorted as issue_1,issue_2,issue_10)
- Changed the icon.
- Changed the maximum comics that can be downloaded through SyncDocs in one transfer to 3000.
- The ‘magic’ background now shows the default background when there is no comic selected.
- Added a system-wide association for cbz/zip/cbr/rar files. When you encounter one of these files in something like Mail or the Drop Box app you’ll be able to open them with Comic Zeal 4.
- Fixed some crashes during importing, specifically a memory leak that I’d missed and a threading issue (thumbnails were updating themselves when they shouldn’t).
I hope to get this to Apple early next week and with any luck you’ll have it a week after that.