iOS Eurogame Podcast and Links

So, a new post on my favorite iOS boardgaming blog was published today, and it included a link to the second Boardgame Babylon podcast about iOS boardgames. I listened to the episode tonight, and while there were some good descriptions of the gameplay for various iPhone/iPad eurogame implementations, I didn’t feel like it actually said anything new or particularly exciting to me. I had played all of the games mentioned with the exception of Michael Schacht’s Gold, which I knew about, but had passed on for various reasons.

Coincidentally, Gold was on sale yesterday, for $.99, (also mentioned in the iOS Board Games blog post), and if it had still been on sale while I was listening to the podcast, I would have picked it up, but alas, by the time I checked, the price had gone back up to $3. Normally, I would purchase a game I’m interested in for $3, no sweat, but the reasons I passed on Gold the first time I heard about it still remain, and I guess I just feel like there are a lot of games competing for my time… For $.99, I’ll buy almost any app just to try it out and see if I like it. For $3, I feel I have to actually want to play the game before I’ll purchase. It’s not that I don’t want to play Gold, but I just can’t see myself playing it for any real length of time.

But really, here are the reasons I passed on Gold the first time around: 1) Lack of online multiplayer. Would pick it up in a heartbeat if it had asynchronous. For $3 or even $5, for sure. 2) The rules seem really simple to me. Like maybe too simple. 3) The game was made by the same person/folks who did a few other iOS games I already own, namely High Society, and Money. This game looks to be pretty nearly identical (visually) to those games. Sure, it’s a different game, it’s got different rules, but if it doesn’t FEEL like a different game to me, I will still feel somewhere inside (no matter how irrationally) that maybe it’s too similar. This is one reason I’m not a big player of card games played with a standard 52 card deck, to be honest — those games just don’t feel different enough from one another to be interesting to me in anything other than an abstract game-theory type way. (Which is not to say that I don’t find them interesting, or won’t play them, only that once I’ve played them enough to feel like I “get” what’s happening, I lose interest very quickly.)

So after being slightly disappointed that I’d missed the Gold rush (as it were), I somehow ended up on a site that features articles by the game’s developer, Shannon Appelcline. I think I’d read some of these posts by him before, possibly What Makes a Great Mobile EuroGame?, or Making Computers Think Like Auction Players, or Turning Reiner Knizia’s Money into an iPhone Game, all of which were apparently written after a specific game release. His most recent post about iPhone board game dev (written just after releasing Gold) was Sweating the Details for iPhone Card Games: Visuals, AIs, and Player Numbers. These articles are definitely worth reading, but ultimately feel a bit too much like thinly veiled marketing to me. They aren’t technical enough to qualify as howto articles, and yet that’s what it feels to me like they’re pretending to be.

As a nice bonus, I found out today that someone I’m ostensibly working with (but have yet to meet), wrote a nice roundup of Go implementations for OSX and iOS. He mentions Smart Go Kifu as the winner for him on the iPad, and that’s been on my appshopper wishlist for some time now. I have yet to pick it up, mostly because it is $20, but it looks to be well worth it, with a database of 33,000 games, 30 of which are even annotated in english. The developer, Smart Go, inc, also has a universal app with a bunch of Go books as in-app purchases. If I had all the time in the world, I would read a book about go on my iPad right now. Instead, it’s about time I go to bed.

iOS Book Reviews: Professional iPhone and iPad Database Application Programming

Disclaimer: I do not generally read programming books from start to finish! Instead, I read them much as I would read a blog that I’ve discovered for the first time, skimming the archives (table of contents), and then taking-in the first few sentences of parts that look interesting to me, and bookmarking posts that I want to read in greater depth (dog-earing pages that deserve a second glance). I almost never go back for those second glances, so basically I have a bunch of programming books laying about that look like they’ve been heavily read, when in fact they’ve hardly been cracked. My excuse is that programming books are so seldom relevant past their publish date that keeping them for reference seems silly. If I’m paging through a book’s contents in search of some solution, it usually means I just don’t know the right search terms. When I find some pages that seem relevant, I then turn to the web with my newfound knowledge, and feel vindicated when I find some piece of web-content that appears (at least at first glance) to be superior and more timely.

I do still tend to keep those books around, however, mostly so I can look through their code examples. I find books that consist of mostly code are almost always more interesting than those that try and teach you some general topic. You can usually find nice code examples on the web, of course, but they are seldom explained in as much detail as you would find in one of these “by example” books. In this case, I have in front of me two books that both attempt to teach some topic, but do so with heavy use of examples. They are hybrids, if you will, of books that teach a general topic, and books that consist of mostly code examples. Maybe all programming books exist on a spectrum with pure thought and abstract theory at one end, and pure code (and more easily out-of-date examples) on the other.

Professional iPhone and iPad Database Application ProgrammingThe first of these is Professional iPhone and iPad Database Application Programming, by Patrick Alessi, published by Wiley (Wrox) in 2011. With chapter titles like “Introducing Data-Driven Applications”, “The iPhone and iPad Database: SQLite”, “Displaying Your Data: The UITableView”, and “iPad Interface Elements”, you would definitely not know at first glance that this is an example-driven book. In fact, each of those sections (and all the other sections of the book) run you through the creation of a sample project, each building on knowledge gleaned in the previous chapters. The first chapter includes a very nice introduction to Xcode and shows you how to create a simple UITableView based application.

The following chapter, “The iPhone and iPad Database: SQLite”, goes a bit farther down the UITableView rabbit hole with its sample project, and introduces SQLite besides. This chapter definitely endeared me to the author when it said: “While Core Data is the recommended framework for creating data on the iPhone, you may want to forego Core Data and use the SQLite API directly for several reasons.” The author then lists several compelling reasons! This may be a heretical position to take, but avoiding Core Data has always been my preference, although I do occasionally wonder if there are ever good reasons to use Core Data of which I am simply ignorant.

The author does later dedicate five chapters (about a third of the book) to using Core Data, so he can’t think it’s entirely useless. He does not, IMHO, (at least in the cursory skimming I gave that portion of the book), provide any compelling reasons to use Core Data. The closest he comes is when he says (repeatedly) that using the graphical data modeling tool will dramatically speed up the development time of your data driven app. I fail to see how this is the case! If creating your db schema is taking up a lot of your development time, I think you’re probably doing something wrong, or possibly you just aren’t familiar with SQL in general.

(A decent db abstraction layer to handle your SELECT, INSERT, UPDATE etc. calls is also a must, and I am disappointed to report that Alessi’s book does not cover this topic. There is at least one decent open source wrapper available (called FMDB), although there are things I would change about it — namely the API for retrieving your result sets.)

Unfortunately, the portions of the book dedicated to the Core Data modeling tool fall into the “already obsolete” category of coding examples, because they do not appear to cover the Xcode 4 interface. I created a sample project using Core Data to look at the modeling tool, and like Interface Builder, it has been consumed by the “one window” paradigm prevalent in all things Xcode 4. Reading the first couple of chapters on Core Data will probably give you the base knowledge needed to use it anyway, but as I said earlier, google can probably do a better job.

The last third of the book consists of a couple of chapters about integration with web services. This topic makes a lot of sense to include in a book about data-driven applications, but it’s definitely given less attention than the previous two sections. I really think the book should have been expanded quite a bit, both to go into more detail about the stuff it does cover, and also to cover additional stuff that was notably absent. Off the top of my head, here are headings I would have liked to see: best practices for storing data retrieved from web services, how to deal with syncing issues, common tools for consuming web services, and at least one code example for parsing and consuming JSON. Unfortunately, JSON is given only a cursory mention, and its superiority to XML for the task at hand is not, as I feel it it should have been, firmly established.

In the beginning of chapter 10, “Working with XML on the iPhone”, there is a section called Synchronous Data Retrieval, in which some lip service is given to NSString‘s stringWithContentsOfURL: selector blocking your UI, but then it is not made clear that the subsequent code examples (using NSURL and NSURLRequest) are asynchronous in nature! Also, on the topic of “common tools”, the book pretty much writes everything from scratch in this section. I can understand the impulse that the author may have had to explain all the gory details of xml parsing and NSURLRequests without complicating matters by introducing open source libraries that simplify these processes, but they save far more time than I’m liable to believe you can save by using Core Data. If you are consuming web services from your app, you would be stupid not to use (or at least look at) ASIHTTPRequest. That little project has probably saved me dozens of hours in the last three months. On the subject of XML parsing, the question is not whether you should use an external parser, but rather which XML parser is right for your needs!

Overall, I didn’t expect to read as much of Professional iPhone and iPad Database Application Programming in detail as I ended up reading for this review. I don’t know how much of that was due to wanting to give it a fair read in spite of my bias against using Core Data, and how much was due to the author’s really well written prose. Database applications is about as dry a subject as they come, and yet I never felt lulled to sleep in the way that many programming books have a tendency to do to me. If you are not familiar with SQLite, or programming for UITableView, I would definitely highly recommend the first four chapters of the book. As for whether they are worth the asking price, (currently $30 on amazon), I’ll leave that up to you.

Unfortunately, I think I’m going to have to leave any in-depth review of my second learn-by-example iOS book for another day: Learning iOS Game Programming: A Hands-On Guide to Building your First iPhone Game, by Michael Daley, published by Addison Wesley in 2011. This book takes you through the author’s process of building an iOS game from start to finish. The game you build, Sir Lamorak’s Quest, is available as a free download from the app store, so you could potentially download it and see if it’s got stuff in it you’d like to know about. I haven’t actually looked at the game for more than a minute or two, but I know from personal experience that parsing through the source code of a game, even one I have no interest in ever making, is always fascinating to me, so I’m quite excited to dig into this book.

Game Center Match-3 Mania!

Game Center games are starting to pour in, and today I stumbled onto the (true**) first Match-3 game I’d seen, (although I don’t think it was the first one on there), called GeoBlocks. I’m going to talk about that, and then I’ll also talk about the second match-3 game I played with Game Center integration, Squaree, and I will actually go so far as to say that Squaree is my new favorite Match-3 game! As of this writing, both GeoBlocks and Squaree are FREE in the app store, so get ’em while they’re hot.

I played GeoBlocks for quite a while, trying to get the next achievement. It’s a pretty standard match-3, with level progression based on the number of matches you’ve gotten in all the colors. In fact, that’s one of the only really interesting aspects of the game… to score really big, you actually want to try NOT to progress, so you can rack up points before the timer (white line at the bottom of the screen) gets going so fast that you don’t have time to think before you match.

I made a note to myself to add GeoBlocks to my spreadsheet listing Match-3 games for the iPhone, and I actually went one step further than that, and added a column indicating whether the game has Game Center integration. I suppose now that I’ve done that, I should really add another column for OpenFeint. Maybe I’ll do that some other time and actually go through all the games listed to see which have which features.

So then I went looking to see if there were other Match-3 games with Game Center, and I found Jewel Craft in the featured list. I wasn’t about to shell out $3 for another Match-3 game though, (especially when I just played a perfectly decent one for free). That got me thinking about what other free Game Center games there might be out there, so I searched App Shopper for “game center”, and sorted by price. That was when I found Squaree.

Squaree doesn’t really look like much, and (as is common when I go app shopping) at first I didn’t even play it, just downloaded it to check out later. But I soon grew tired of scanning through all the crap in that AppShopper search, and Squaree was either the first or second app I opened up to check out.

It’s match-3, definitely, but the way you get your squares is pretty unique. There is a board with a whole bunch of grayed out pieces. Tapping a piece causes un-gray, and for it to fall all the way to the bottom of the board (or until it hits another solid piece). Get three of the same color to match, and two of them disappear, but the third turns into a “locked” piece. Match four pieces and you get a X2 piece remaining, and if you match 5, you get a piece that, when matched, removes all solid pieces of that color from the gameboard.

This is pretty much all you need to know to get started playing Squaree. It’s simple, yes, but I had a lot of fun with it, and I’ll definitely be playing more of it in the next few days. There are two game modes, but only the “Challenge” mode has a high score list. That list is extremely short right now, and I’m hoping to make it to the top with some practice in the next few days. My only disappointment was finding out that there aren’t any Achievements. I wish I could add yet to the end of that statement. :)

**Note that both Azkend and Dice Match had Game Center the day after its launch. They are both solidly in the Match-3 category, but neither has the swap-to-remove mechanic. Both are the kind where the matches already exist and you have to choose which one to remove. (Think Same Game rather than Bejeweled, but you have to touch all the pieces you want to remove.) It would be interesting to write another post comparing and contrasting those two games, but I’m pretty much done for the evening.

New header and tagline

Today marks the re-launch of I had a bit of a revelation in the car the other day, and realized that both the video games I’ve designed and actually completed are hybrid video games mashed-up with board games. This is a mixture that I wholeheartedly endorse and enjoy, and it’s one that I realized that the name “Chesstris” could also be imagined to embody. Anyway, it’s what I will now endeavor to spend more time examining here.

Chesstris, where board games and video games collide.

To kick off this new era for the site, I thought I’d start with a review of one of the most worthy board games I’ve seen converted to a video game for the iPhone, Carcassonne.

Sure, the Carcassonne app, for iOS has only been around since the beginning of June, but we’ve actually been playing Carcassonne the board game for years in my house. Literally, I’ve been playing Carcassonne longer than I’ve known my wife Florence, which, while it hasn’t actually been that long, feels like pretty much forever. (Not in a bad way, I swear!) I have a bunch of the expansions, and I keep them all together in the special edition wooden box that came with Carcassonne, The City. (The City is actually a stand-alone game, with pieces that are incompatible with the original game. This is the number one reason it is relegated to the closet while we keep the standard game and all its compatible expansions in the living room with the “often played” games.) Anyway, I bought Carcassonne for the iPhone as soon as I heard it was out, and straight away convinced Florence and our friend Angela to play a game with me on the iPad.

Right away I was pretty impressed about how the game didn’t look pixel doubled on the iPad in 2X mode. I was also impressed by what I didn’t experience — frustration with the UI. The User Experience on Carcassonne is pretty darn close to perfect. When you sit down to start listing out the features of this great app, you actually start to get a little overwhelmed with how great it is. It’s no wonder it took a year to make, really. (Incidentally, if you’re a fan of the game, that podcast is well worth a listen, especially if you’re an iOS developer.)
1) They implemented pretty much every kind of multiplayer possible. Pass-and-play on the same device, multi-device on Wifi or bluetooth local networks, internet play with no time limit, and internet play with 60 seconds per turn. There is an invitation system for playing against friends who also have the app, or you can play against random opponents.
2) They built in 6 or 8 different kinds of AI (I forget which), for playing local games on the device.
3) You have a persistent ELO stored, both on your device for local/solo games, and another two — one on the server against friends, and another for playing against those random opponents. Keep in mind, AFAIK, there was no concept of ELO for Carcassonne before this app. (Not to say it didn’t exist, but I didn’t know about it.)
4) Push notifications let you know when it’s your turn to play. This has since become a feature requirement if I make a turn-based iPhone app in the future.
5) This feature, while it may not sound like much, is one of those little details that makes a game feel incredibly highly polished. They could easily have left this out, but I feel certain this was one of those features that someone really felt they had to get in there, and it really adds a lot, in my opinion: On the screen that lists your in-progress games, there is a thumbnail representing the shape of the tiles for that game. This basically “personalizes” each game, and makes the list of games you’re playing feel that much more unique.
6) Can’t forget, there is an entirely new game mode invented for the iPhone app that allows you to play solo against the game, while simultaneously giving you a score at the end that you can compare to everyone else’s score for that particular solo game. (There is one unique set of tiles released each week, or you can play a random set.)

I’m sure there are more features I’m forgetting, but it’s worth mentioning that the game play screen itself is just an amazing piece of touch-based software engineering. It’s got all the standard pinch-and-zoom stuff, and for all the information it’s cramming onto the screen, doesn’t feel cluttered or busy at all.

With no limit that I’ve seen on the number of games you can play, we’ve got about six friends and every permutation of games going. I have a game with Florence and Angela, along with a game with just Angela, and one with just Florence. Then there’s a game with Florence and Angela and Mike, along with a game with just Mike, and of course a game with Mike, Angela, and me, and Mike, Florence and me. You get the idea. I’ll spare you my spelling-out how this scales to include Nate, Roo and Sebastian.

Overall, I have gotten so much more than $5 worth of pleasure out of this app that it’s not even funny. I play Carcassonne on my iPhone as much as, and sometimes more than, I use the Mail app (which I do daily, btw). Carcassonne is not really a hybrid board game / video game, but it’s such a great conversion of one to the other that it’s definitely worth reviewing here. We really enjoy it a lot, and hope you do too!

Master of Tetris

Here is a screenshot of an intriguing new tetris-variant in the app store, Master of Blocks, by Tuomas Pelkonen. I’ve had a chance to try it out, and you don’t get complete cart blanch to drop any old blocks willy-nilly, you basically have to pick from the blocks available, and once you’ve chosen one, you can’t pick that one again until all the others have been chosen. There is also a button to delete a single square that has already been placed.

Probably the most interesting feature of this game is that it supports bluetooth multiplayer, so you can play a head-to-head mode where you choose the blocks for your opponent while they play Tetris, and then they choose the blocks for you. I was confused at first because I didn’t know it was going to switch, and we both had the same score. It might have been hard to balance, but I could have imagined you both getting points for different things while you play that mode, so you didn’t have to play two rounds to figure out who won. My wife and I actually played cooperatively for a while, which was more fun than it probably sounds like it would be. Again, because you can’t give them just whatever pieces you feel like, there is some strategy involved, and furthermore, using the delete-a-square button for good rather than evil was almost as satisfying.

I imagine the game to have been inspired by the College Humor video The Tetris God (which if you haven’t seen it is well worth the watch), in which a merciless god controls the falling of Tetris blocks.

Random tetris linkdump:

  • There was a 4-story tall Tetris game set up at burning man back in 2008. I wish I’d been there to see it, and wonder where it ended up after the event.
  • This screenshot someone took of a tiny tetris called Tetoris (via offworld) is pretty enough that if it were larger I would consider making it my desktop. The game itself reminds me a bit of the slow pace of Sequoia Touch, which has given me renewed pleasure in 2x mode on my iPad.
  • It’s over a year old, but this Tetris bento box looks quite tasty.

More Juggling iPhone apps

Just downloaded a few juggling related iPhone apps.

Kevin Bertman pointed out his recently released iJuggling application in the comments on my last juggling related post. It’s available in the app store now, and I checked it out. My first complaint is that there are no instructions whatsoever. I started playing the game by selecting the “challenge” menu item (the menu was also confusing, but cool once I played with it a bit–all the menu items are placed on one face of a ball with four faces, so you have to rotate it to see all the menu items). Once in the game, 3 balls fell from the top of the screen into two hands awaiting below. Underneath the hands are a couple of circles that I intuitively (and correctly) assumed were to control the hands.

Then I played around for a while, and accidentally threw a ball or two, but I really had no idea what I was doing. The act of throwing a ball seemed so simple, just flick the hand upwards, right? But that’s not how you do it. I went back to the menu thinking maybe if I rotated the ball enough there would be an “instructions” menu item (but there’s not). The closest is a “Setup” that took me to a confusing screen with the same hands as before, but also with some bars above them and Xes that I could move around. I’ll spare you another description of my frustration here, but eventually I figured out that the Xes are a “target area” where you drag the hands in order to throw a ball. The throwing motion is automatic. You just have to take your finger (or thumb) off the target area and the hand will automatically throw. I spent a good ten minutes figuring this out. (Note that the target area isn’t indicated at all on the playing screen, just the setup screen.)

Once I’d established more or less how to throw a ball, getting three of them in the air at once was fairly easy. Catching them and keeping them aloft was a bit more difficult, but I still got the hang of it pretty quick. When I made enough throws, an arrow indicating I could move on to the next level became available. I had A LOT more difficulty with the second level, and now I think I know why. Remember those bars above the hands on the setup screen? They indicate how high the balls will get thrown. On the second level, the bars are much lower, making the throws faster with less time between them. How do I know this? Only because I finally navigated to the “Stats” menu item, which shows you your high scores for each level you’ve played. The level itself is indicated by a small graphic representing the setup screen for that level. The bars are lower on the second level than the first. The third level was 5 balls. Definitely a lot harder than the first or second, but I’ll admit that I only played with it for a few minutes before putting it down to write this review.

iJuggling looks very slick. The graphics aren’t amazing, but they’re good, and there are some nice touches that indicate to me that there was a lot of thought put into them. The hand grab points fade out once you touch them, for example, and the arrow pointing to the next level fills up as you get close to achieving the next level. There is some sound, indicating when a throw and/or catch has been made. It’s simple, but again, doesn’t detract from the experience. The most frustrating thing was in figuring out how to play, and after that the difficulty. I like a good challenge though, and I will definitely play with this again.

One additional note/downer: In iTunes, and on its website iJuggling is billed as the first realistic juggling simulator on the iPhone. While it’s fun, and definitely a juggling game, (a unique one, at that, I think), it definitely wasn’t the first. I thought about also debating whether it’s a simulator, but that’s… well, debatable.

After playing with iJuggling, I searched the app store for juggle, as I indicated in that last post I was going to eventually do. I’ll mention the highlights of what I found here:

JuggleFit Tracker is a free utility that allows you to track your progress (a number and a date) associated with a juggling pattern. You can then allow it to tweet your progress if you like. There are quite a few arbitrary limitations (it only stores 5 progress rows for each pattern–it would have been much cooler to store them all, and maybe graph them over time, for example). But if you’re interested in tracking your juggling, this might be a good place to start. Another nice feature are the “tips” for beginning jugglers. I imagine those are quite useful. And hell, it’s free, so this is probably worth checking out if you’re a regular juggler.

Cat Juggling, while the name and idea are enticing, is not so much a juggling game at all. It’s more one of those games where you have to bounce things in the air. You have two hands to bounce with. So it’s juggling themed. The graphics are really “cute” (I’m sure that’s what they were going for), and I was surprisingly “into” the silly (and repetitive) music track. Also, you get 9 lives, which is funny. There’s not a lot of depth, though it does save some high scores. Probably worth getting for the idea alone, but if you’re not into that, don’t bother.

iCircus – the Juggler actually uses a control scheme the closest (of all these apps) to the juggling game I originally intended to create. The unfortunate thing is that it’s way too hard to control. Like iJuggling, the “catch point” is represented by a hand and offset from the “touch point”, or point your finger touches to control the hand. Unlike iJuggling, the touch point is not shown, and this is a much smaller hand, (the graphic also includes an arm, but it’s not clear how much of the arm can be used to catch, so that’s a hindrance rather than useful).

iCircus – the Juggler also adds breakout-style “stars” that you are trying to throw your balls into while “juggling”. This is actually its saving grace, and the only thing that (probably) makes it worth your $.99. As your ball (you start with only one) passes through the stars, they are collected, and when you get them all, the level is complete. The second level adds a second ball of a second color, and stars are only collected by balls of the same color.

All in all, this makes for some very interesting possibilities, but I found the game almost unplayable with the existing control scheme. I only got to the third level, and only then because the game appeared to take pity on me and allow me to progress without collecting all the stars for the second level.

Polyball also comes up in the app store when you search for juggling. It’s a space themed game similar in gameplay to Cat Juggling, but it has a bit more depth to it (including Open Feint achievements and particle effects). I actually already had this game on my phone because it went down to free back in December, and I had yet to play it. It’s okay if you like that sort of game. A lot like Uggles, which has similar gameplay and depth. (Note that Uggles also comes up when you search for juggling, and it’s about as much juggling as this is. That is to say… kinda sorta maybe to someone who has never juggled before. It’s been widely reviewed, and is probably way more successful than any of these other games, so I’m not giving it its own section.)

There were some other apps in the app store that had juggling in their titles, Cannonball Juggling, Juggle Gears, Juggle Pong, GolfBall Juggle, Picsaw Juggle, but none of them were really juggling. (Or they were that other soccer meaning of the word juggle.) This concludes my informal survey of the state of juggling apps in the app store. Enjoy!

iPhone Developer’s Library App reviewed

The iPhone Developer’s Library App (appstore link) contains an great set of e-books that any cocoa developer would be proud to have on their phone: Programming in Objective-C 2.0, by Stephen Kochan, Cocoa Programming for Mac OS X, by Aaron Hillegass, and The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK, by Erica Sadun. There can be no question that this is a great selection of books, so I focused my review on the e-book reader itself, which contains some bonus features for developers that make it really shine.

Unfortunately, some of those features can be a bit difficult to figure out at first. When I launched the app, I expected to see a menu or a help button. I think this reader in particular could even have given me a brief tutorial when I first launched the app. Regardless, there is a help screen, but you have to get all the way into reading a book before you can get to it. Click into the book you want to read, then click past the table of contents, and only then you can tap the center of the screen to bring up the menu. From here the Q&A style help screen is accessible by touching the question mark icon in the upper right. I know I wanted to read this first.

Once I got started actually reading one of the books, things were pretty much as I’d expect from any e-book reader. The main exception to this is that clicking on an image, a link or a bit of code requires a touch-and-hold method. This is indicated nicely with a sort of shrinking border around the item you are selecting. I think this was probably implemented to avoid accidentally opening something when you meant to page forward through the book, but I found myself avoiding those types of things instinctively when touching to turn a page, so I think it would be nice if that was configurable someday. I also found the length you have to hold before one of these opens (two, maybe three seconds) seems a bit on the long side.

Speaking of configuration, the settings screen has three different tabs full of configurable items, but still somehow felt bare to me. Most of the settings were on the “Appearance” tab, which consisted entirely of color options, but I missed the ability (common in e-book readers) to simply reverse all the colors to view white text on black instead of the default black on white.

I was pleasantly surprised to note that clicking a link opens a browser page without leaving the app, but still gives you the ability to open the link in safari. Clicking an image opens the image in what might also be Safari for all intents and purposes, allowing you to scroll and zoom in a recognizable fashion. Clicking on a bit of code opens the much-touted “code view”, which I found to be a very nice addition. Essentially this allows you to scroll and zoom (via a text-size slider) a given piece of code. You can copy and paste the text here, but more practical is the ability to email it to yourself for use on your mac.

Now I’ve got a lot of reading to do.