First things first, happy new year to all! Pots of luck, good health, and all the rest that should apply to you this year!
New year’s resolutions notwithstanding, I wasn’t so conservative in the past couple of weeks.
First off, pissed by the lack of stability and dogged slowness of Xcode on a fricking 8-core/16GB of RAM machine, I gave AppCode a spin. And for reasons that I’m not completely sure I understand myself, I got myself a new Nexus 7.
I didn’t plan it that way, but the first post of the year will be a feedback on these products.
First off, it’s meant to be an Xcode complement, and not a replacement, as some things like editing XIBs and CoreData models still have to occur in Xcode, and the debugging/packaging of applications have to rely on Xcode’s toolchain anyway.
So, as the name suggests, it’s mostly for code editing and debugging. For someone who’s never used daily an IDE on another platform (I’m looking at you Eclipse and Visual Studio), some of the philosophy might be irritating or challenging. AppCode is made by the people who did IntelliJ, a popular Java IDE, and therefore comes with a different set of conventions.
The very VS way to have the “tabs” (or sticky editors, or views, to use older parlance) vertically on the left and at the bottom of the screen has the advantage of finding easily your build log, the TODO list (yaaaaaay), and such, but at the price of taking some screen space for “nothing” sometimes. And the opposite approach to regular tabs from Xcode takes a little time to get used to: where you had permanent tabs that would represent kind of a workspace, where one file is open at a time switches to plenty of tabs, one for each file, that are not reassignable.
I guess the crux of what I’m saying is that if you used to be a VS or Eclipse or IntelliJ user (or if you still are), the gap is not that big of a deal, but if you’ve only used Xcode in the past few years, it will take some time before you zip through your interface again. But that’s ok, right, we’re not that conservative anymore!
AppCode shines mostly where Xcode doesn’t: it feels really responsive, it has text edition capabilities that make me wish for a lovechild between them and BBEdit to make it even better, has a plugin SDK for us to add the missing features or to patch the existing ones, and analyzes the code in a controllable fashion. It’s a tool made by developers who apparently would like me to tinker around, which I read as a good sign. After all, we the clients are in the same business as them, and therefore share a few longings and values…
Of course, having to go back to Xcode whenever I need to edit some “proprietary stuff” is a little jarring. I can’t completely break free of Xcode to compare them on equal footing, side by side.
But all in all, it’s giving me new ways to do things that might ultimately be good for me. Just the amount I spend swearing has been cut by two thirds… For everything that has to do with text editing in the context of a project (where BBEdit can’t, unfortunately, help me) I am more efficient.
For a wide variety of reasons and potential future projects, I went and bought an Android tablet. I should add that I’m not a tablet kind of guy, even though I currently have 4 in my care. For some reason, apart from reading an article every now and again, or a comic book in digital form, I don’t really have any use for it.
I should also mention that I recommend tablet-like devices to people who would benefit from having one instead of a laptop, so it’s not an ideology thing, but my way of using electronic devices revolves around two things that tablets can’t provide for me: a screen big enough to have lots of things on it, and the ability to switch back and forth rapidly between applications, because I’m copying and pasting, or testing, or using specific tools to edit such and such chunk of data.
That being said, I have played a lot with iPads, and I feel like I can at least compare the two devices on the basis that I use them in the same way: because mostly, I have to.
First off, forget about the regular trolls. From where I’m standing, both tablets are a pain in the neck to get data on. They go through hoops to “make it simple” for the user, only to have another (and sometimes confusing) way for moving things around between applications and the OS. They took a different tack on Android than they did on iOS which should appeal to me as a “computer nerd”: I can access the filesystem or use one of the many “file selectors” available on the google store.
And here lies the thing that aggravates me most about the tablet: it’s hard to “get it”. Removing an app has to be done from the app list (which is logical) by doing the same thing as if I wanted to add it to the main screen (which is not) with a small variation. I have to put it in the trashcan that only appears when I’m holding an app. OK, that’s just a habit to get, right?
Trouble is, pretty much everything I encountered as a newbie on this thing is of the same ilk. If you know how to do it, it’s not overly complicated, but if not, it’s more of a game of Pin the Donkey. I spent half an hour on the phone with my good friend Marc (from the podcast), who got one too, and we both had something to teach the other, in terms of “normal” use.
And I won’t even mention my crushed hopes for an app store that would be so much better than Apple’s, because it’s made by people who nailed the web search…
As a developer though, I’m rather happy. I can tinker, tinker and tinker, and the device doesn’t get in the way. I also think that the Activity/Intent mechanism as a good thing: you declare your app as being able to do this or that, and whenever another app needs those features, they can call you, or ask the system to find you. That’s pretty neat for reusability.
Hardware wise, it’s a nifty little machine. I have yet to see it struggle with something other than poorly designed user interaction features, and could finally play with Alex Ku’s port of the blender game engine. After months and years telling everybody and their kin that the Blender project was nothing short of miraculous, and pretty much a solution to every single one of their problems, I can show them. The tablet does 3d graphics so fluidly that most people I showed it to thought it was a showreel. Loved it.
Anyway, I figure that based on my usage of tablets in general, and my work, I’ll use the iPad and the Nexus pretty much indiscriminately: they both give me a solutions to problems I don’t have and don’t really fit that well in my way of using electronic devices. But I’m glad they exist, as I can totally understand that laptops and computers in general can be daunting or challenging or just plain weird to a lot of people who just want to get their things done.