Archive for 'Software'

Terminally Illin’

Now here’s a veritable novelette on a topic you almost certainly know less about than Craig Hockenberry does:

The Terminal

I’ve been using the Unix command line since 1983 and like most software developers, the Terminal app is a permanent fixture in my Dock. Over the years I’ve learned a lot of things that make working in this environment more productive, but even old dogs like me are constantly learning new tricks.

As much as I love them, these long “trick lists” on Stack Overflow have a problem: they’re poorly organized with little narrative describing why you’d want to use a technique. This long homage to the command line is my attempt to remedy that situation…

As developers, we live and die by our clipboard. Code and data moves between different contexts all day long thanks to Cocoa’s NSPasteboard. It should not be surprising that pbcopy and pbpaste are simple and powerful integration points at the command line…

Most apps have preferences that are managed by NSUserDefaults. You can easily view or modify these settings from the command line using the defaults command…

Speaking of designers, one of the best ways to communicate with them is through pictures. The screencapture tool let’s you do some things you can’t do using the Command-Shift-3 and Command-Shift-4 keys in the Finder…

Spotlight search on the Desktop has become an essential tool for developers. We find code, documentation, messages and all kinds of information that’s related to our projects using Command-space and a simple text field. Would it surprise you to know that you can do more complex searches of the same dataset using the command line?…

It’s incredibly handy to control your desktop apps using the shell. Since AppleScript has always been the best way to control apps, it makes sense that there would be a command line tool. The osascript tool is one the Swiss Army would love…

A lot of the files we deal with are executable. Even if symbols have been stripped from the app, you can still infer a lot of information by looking at the null terminated strings present in the data…

If you’re developing for Mac or iOS, you already know how damn useful Instruments is for tracking application behavior. DTrace is the framework that makes all that possible. Well, take a look at all the stuff in the shell that “uses DTrace”…

Have you ever had a folder full of files that you’ve wanted to access through a web browser? You could setup Apache to do this by editing the httpd.conf file, or just enter the following command in the folder you want to access…

Data is never in the format you need it, is it? The shell’s notion of standard input and output has always made it great for doing data conversion. Here are some tools that you may not know about…

Pretty much guarantee you’ll find a whole bunch of somethings you didn’t know in there!

Continue Reading →
0

Project Management: Kanban

So chances are that, should you follow any kind of formalized project management, it’s likely to be a form of Scrum. And if so, we’ll just betcha that you’ll nod along with this piece:

Why SCRUM Sprints slow you down

Basically SCRUM sprints set you up to commit to something you can’t possibly deliver on. The only way to reach predictable performance in SCRUM sprints is if …

  • … your team’s performance doesn’t change ever: No people leaving, no people joining, no knowledge gained over time, no vacations, no motivation highs & lows,
  • … the items you are working on are highly predictable: You’ve done them many times, know which problems to expect & how to solve them, no external dependencies, no collaboration with others, no changes in scope even if they would make sense, …
  • nothing else comes up that’s more important: Server down, bug in the payment system, a security vulnerability that needs to be closed ASAP, incredible marketing opportunity if implemented & shipped in the next few hours, …
  • Considering this it is quite obvious why reaching predictable SCRUM sprint performance is almost impossible in most real world situations no matter how much time and effort you put into sprint planning and estimates.

    But the main problem is that SCRUM sprints force your team to optimize for predictability (“how much of what we’ve committed to can we get done”) instead of optimizing for value & agility (last responsible moment)…

Preach it, brother! Yes, we feel all that pain. Particularly that last point. Last time we had an interview ask about our experience as a scrum master in our last management job we scoffed “As if we ever knew what our priorities were going to be by the end of the day, never mind multiple weeks down the road!” These problems are obvious enough to everybody that sprints are usually one week these days, at least they are the last half-dozen places we’ve scrummed at … at which time you’re spending more time in planning and review than the effort is worth, amirite?

Some software companies are starting to embrace continuous delivery and feature pipeline visualization tools inspired by lean manufacturing concepts and Kanban.

This helps them to release improved versions of their software as soon as they are ready. On top of that it enables them to drop arbitrary sprint time-boxes if they want to.

By using Kanban and feature pipelines you pull new work items into your process once space (focus) frees up on the board.

This enables you to defer decisions & commitment to the last responsible moment, a time when usually more information & context is available allowing your team to be more agile compared to SCRUM time-boxes…

Well, this certainly sounds more like a project process that would actually work in the world we live in. Here’s another good discussion:

When to dump Scrum for Kanban

Kanban is useful when requirements and priorities change quickly and often. This becomes evident in teams who can see that their Sprint Planning doesn’t quite hold up for the entire Sprint duration. Kanban helps you react faster, but…

Contrary to popular belief, in Kanban, it’s not only about reacting faster, it’s about being closer to a state of Zen

But how do you get there? Simply prioritize: focus over speed

Well, that sounds worth a try. Let’s see what tools are out there:

Blossom is from the fellow who wrote that first article up there that got our attention; pricing is $19/month for 5 seats, $59/15, $149/25.

There’s approximately a zillion other Kanban tools, but these two seem widely well regarded for getting your feet wet:

Kanban Toolpricing is $5/user/month or $9 with time tracking, and a basic 2-user free one too.

LeanKitpricing is free to 10 users for basic features, $15/20 user/month for more

Us, we’re going to give Kanban Tool a shot, since the price is right and Adding tasks with Siri on iOS devices sounds pretty cool. But as always, if you have any particular recommendations of tools of this type you’ve tried and can recommend, or recommend against, please share!

Continue Reading →
0

Sales Tracking: AppViz 3 and App Annie Advertising

Well, it’s been quite a while since we last made any note of developments on the sales tracking tool front … oh, wait, that’s because there really haven’t been any of note until this week. But then, there were two!

First off, our desktop tool of choice AppViz has undergone quite the revamp, becoming now a cloud-stored subscription. As should shock to the core nobody sensible really, as the economics of maintenance for a tool of this type are pretty ridiculous.

So what’s new? It would be easier to say what isn’t. In partnership with the Iconfactory, we’ve rethought, redesigned, and redeveloped AppViz, resulting in a more polished, elegant and powerful experience. The app was rewritten from the ground up, its code reviewed and optimized. In addition to a beautiful new interface, we focused on improving performance so that the new features and UI will scream on even modest hardware.

AppViz 3 is packed with powerful features we think you’ll love, from a Dashboard that gives you a bird’s eye view of your market performance, to the Financial module that can reconcile your bank statements with Apple’s financial reports and compute revenue splits with partners. Even our graphs have been redesigned, providing a greater level of detail and analysis…

You can check out all the features here, but we’ll just highlight the two we stopped reading at:

• Partner Splits – Add partners to your apps & calculate monthly splits

• Financial Reconciliation – Reconcile monthly reports with your bank account

Shut-up-and-take-my-money.jpg

That ‘Reconcile’, that’s the key. If there exists any other method to have that sorted for you, we don’t know of it. Good-bye, annoying spreadsheets!

Of course, if that isn’t a compelling feature for you, hey have a look at appFigures’ current feature set. We paid for it for a while to get the email reports, which caused us more headaches than they saved anyways because exchange rates are estimated (see ‘Reconcile’ above, did we mention we find that compelling?) but dropped it when App Annie started sending out sufficient enough emails to satisfy our reporting requirements; and if anything new and exciting has happened over there we’ve missed it, but check if you want and let us know if you find anything overly useful that AppViz is missing.

Which brings us to App Annie, where the big news is integrated ad network reporting:

Screen Shot 2013-11-19 at 6.03.27 PM.png

Our Advertising Analytics service is free and simple to set up, no SDK or app-coding required. Just log-in to your App Annie Analytics account and click on “Connections” to get started. To find out more, we’ve set up a page to tell you about all these new features.

It all begins with 7 ad networks today, but over the coming months we’ll be aggressively adding more and more so you get the most comprehensive list of networks possible. Currently, you can connect to AdMob, Chartboost, iAd, Jumptap, Tapit, TapJoy and MDotM. If there’s a particular ad network or feature you would like to see added to Analytics next, email us at iwantthis@appannie.com and let us know.

So if you use any of those networks, hey it’s free. As is their basic tracking service, which might be all you need. As long, of course, you can live with the discrepancy problem noted above with appFigures:

Currency conversions. Apple’s “Financial Reports” use Apple’s own currency rates, whereas App Annie always uses today’s exchange rate.

Did we mention already that ‘Reconcile’, that there’s a killer feature we’ll happily pay for? Why yes, yes we think we did. And far as we know it’s only available in the new AppViz, and there aren’t any particular pain points we’ve noticed troubling us about sales tracking otherwise, so that pretty much narrows down our choice of service to no choice needed. With a mental note that if we ever get into the ad-pushing business on our own behalf, App Annie has a unique to our knowledge integrated offering there. But if any of you think I’m dismissing or have overlooked some important consideration in one’s sales tracking tools, be sure to let us know!

Continue Reading →
0

PhotoScrollerNetwork

Now this looks worth a serious look if you need to drop a downloadable photo gallery in somewhere — and who doesn’t?

Apple’s PhotoScroller sample code for iOS looks to many as a perfect starting place to display a scrolling list of photos that can each be zoomed significantly. It uses a CATiledLayer as a backing store so it does not have to load whole images into memory.

That said, after you see the three pretty jpeg images in the project, you lift up the covers and find approx 800 pre-tiles png files – its the pretiling of the jpegs that makes this project work.

Why, yes. Yes, we had noticed that.

So, I’ve taken that project and greatly enhanced it:

https://github.com/dhoerl/PhotoScrollerNetwork

And enhanced how? For instance,

- blazingly fast tile rendering – visually much much faster than Apple’s code (which uses png files in the file system)

- you supply a single jpeg file or URL and this code does all the tiling for you, quickly and painlessly

- provides the means to process very large images for use in a zoomable scrollview

- is backed by a CATiledLayer so that only those tiles needed for display consume memory

- each zoom level has one dedicated temp file rearranged into tiles for rapid tile access & rendering

- demonstrates how to use concurrent NSOperations to fetch several large images from the web or to process local image files

- the incremental approach uses mmap, only maps small parts of the image at a time, and does its processing as the image downloads and can thus handle very large images

That’s a pretty handy set of features for your large image display needs, isn’t it now?

UPDATE:

If that’s a little overpowered, you might want to check out MWPhotoBrowser — A simple iOS photo browser

Continue Reading →
1

Resource Checking: Cong

Here’s a handy tool for running over your OS X apps to look for resource issues — Cong:

What is Cong?

To check for leaks, you use leaks or Instruments. To check for obvious (or less obvious) bugs, you use gcc and LLVM options, or you use the Build and Analyze feature of Xcode. To check that your code works, you test it. But what do you use to check the resources of the bundle of your application? Say hello to Cong.

Checking what is obvious to stop being oblivious

Cong checks multiple points and details that can seem obvious but which are not always known by everyone. Your application may be running fine, may have won Awards and still be not perfect. For instance, did you know that there is a limited set of characters allowed for a bundle identifier and that ‘_’ (underscore) is not one of them? Did you know that the recommended encoding for .strings files is UTF-16? Did you know that the CFBundleGetInfoString key is deprecated for Info.plist files?

Looks handy, yep. So we ran it over our last OS X release, and …

Screen shot 2011-02-13 at 11.57.22 PM.png

… and so it actually is handy. Fancy that. OK, straight into our regular toolchest that one goes!

h/t: xcode-users!

Continue Reading →
1

Ride Buddy beta

Public service announcement time: So, you ever had a problem missing your stop on public transit? Well, apparently the good folk that we worked with in previous incarnations and have now reconstituted themselves as the intriguingly-named 14 Oranges do … or at least they think you might … because as their debut iPhone product they’ve decided there should be an app for that:

RideBuddy2.jpg

Ride Buddy is a simple iPhone app that helps you make sure you never miss another bus or train stop again. If you are travelling in a unfamiliar city, onboard a bus where the foggy windows make it hard to tell where you are, on a crowded train, or simply wanting to sleep on your way to work, Ride Buddy can help you make sure you don’t miss your stop.

Yeah, we could actually have used that on our Japan/Korea trip last winter, since once you get away from the Shinkansen unilingual navigation is … challenging. Particularly, we remember with a mild shudder, in Nagasaki. But that’s another story altogether…

Any-ways, if this sounds like something you could use, the beta is now open,

We are now accepting names for the Ride Buddy Beta app which will be coming out soon. To qualify, you need to ride public transit (bus, subway, train, metro, monorail, ferry) on a frequent basis and have an iPhone 3G, 3GS, or if you are lucky 4 and using iPhone OS 3.0 or higher. If you are interested, e-mail us at support@14oranges.com, with your name, where you live (City and Country), and also let us know what type of transit you will be using.

so sign up, and spread the word!

Continue Reading →
0

Review: LifeGoals

Something a little out of the ordinary today: by request, we’re doing a review of the LifeGoals iPhone app from Reefwing Software. Mainly because, well hey we were asked and we’re an agreeable sort of troll, but also it was an opportunity for a little introspection and pontificating that we don’t do very much of and it’s good to on occasion, the unexamined life is not worth living and all that.

To break it down to its simplest, the idea of goal setting is to eliminate unproductive activity and develop productive activity through prioritization and autosuggestion. If you prefer those principles wrapped up in mystical nonsense, then you’ll enjoy books like The Secret. (Thanks, Mom! Great present! We love you, really!) But as most of you Dear Readers no doubt like us would prefer your self-help quota to be approached more in the nature of an engineering problem, we’ll direct you to what was and still is based on our browsing around this last week the best book ever on this subject:

Seriously, if you haven’t read it you should. If there’s any better primer on psychological success anywhere, we certainly are not aware of it. And you really do need to get the basic principles down so that tools to reinforce it, like the LifeGoals app we’re going to get around to talking about sooner or later, are going to be of any use whatsoever. In the meantime, the online help at Reefwing’s website is a pretty decent introduction.

Now, about those tools. We’re not big on rigid organization in anything, and especially not in goal setting. You’ve heard the “no battle plan survives contact with the enemy” aphorism? Or, to expand on that, perhaps you’ve heard Eisenhower’s quote on the Normandy invasion, “The plans were useless, but the planning was indispensable”? That’s pretty much the way we see it. Achieving your goals isn’t about laying out a rigid timetable and sticking to it, which is pretty much guaranteed to fail, it’s about having your Plan A, and Plan B, and Plan C, and on down the line, all ready so that whenever something serendipitous — or negatively serendipitous, whatever the word is for that — comes your way you have a range of possible actions already thought out and prepared. And in the worst case, you end up with what you’ve no doubt seen in large organizations attempting to manage projects what we can call “TPS Syndrome” — that uselessly wasting time on the superficial trappings of process managment becomes a substitute for, you know, actually managing the process. And we’re instinctively inclined to suspect any tool designed for management, whether of software development or life goals, of being an open invitation to fall into that trap.

Now, on the tactical level, a tool to organize immediate tasks has great value. But even there, we’d never found a piece of software worth the trouble of using until last fall, where you may recall our gushing paean to the near-perfection of Cultured Code’s Things task manager. And yes, we still pretty much stand by that, we are relying on it completely, as a matter of fact we’ve started to push long term goals into it, making it pretty close to competition to what LifeGoals is intended to be. Sooo, is there any place for it? Well, let’s — finally! — start to actually take a look at the application.

So it starts up, and there’s a pretty comprehensive list of categories one would set goals in: “Artistic”, “Attitude”, “Career”, … blahblahblah. Well, we’re a troll. There’s really only one thing that qualifies as an overriding goal in our life, and it would be summed up nicely as “finish mosttraveledpeople.com“:

According to our members, the world is made up of 871 countries, territories, autonomous regions, enclaves, geographically separated island groups, and major states and provinces. To visit all 871 would be to go everywhere.

Now that’s a goal worthy of a troll, indeed. And at 202 out of those 871 (23.19%) we’re not doing too badly, but some more formalization is quite possibly in order. So we go to the ‘Travel’ section, create a ‘Finish mosttraveledpeople.com!’ goal, and add a couple tasks towards that goal that we had in mind for the nearish future. And a third rather larger task.

traveltasks.png

That all goes smoothly, the editing process is well thought out. But well, there isn’t much room for LifeGoals to display its prioritization and balancing features if that’s the only thing we track. So let’s add something else. Well, as it happens there is something that could help with; we definitely do tend to spend more time at the computer than is optimal for peak health, so there’s a bit more troll around then we’d ideally like there to be, if you get our drift. Not enough for us to be bothered enough to actually pay attention more than sporadically to actually doing something about it … but that’s pretty much the whole point here, isn’t it? So, let’s add an appropriate goal and a couple achievable daily tasks towards it in the ‘Health’ section:

healthtasks.png

… and whoa, we run smack into the problem that there appears to be no way to set recurring daily tasks. Hmmmm. Well, perhaps we are thinking less strategically than the tool is really intended to be aimed at, but you’d think there ought to be some way to do that, wouldn’t you? So we dig around a bit, and heh, look at this on the Reefwing blog:

… Two obvious mistakes (in retrospect) was ability to edit/add categories and repeating tasks. Rest assured that I am continuing to improve and develop Life Goals…

… Yes repeating tasks will be added. This has been one of the most requested features…

Not just us that wants to use it as a task manager then! Arguably, just putting those tasks as daily tasks in Things would be a lot more sensible anyways … but we can see that putting in a comprehensive set of goals could be of use in filling out the prioritization matrix a bit. And it is pretty cute. Actually, we’re kinda amused how it splits our entries between pretty much trivial and off the chart.

prioritization.png

Yep, it’s very pretty. That goes for the rest of the application too — very nicely designed and intuitively laid out and apparently well programmed, you can pretty much take all that for granted by our lack of observation that it’s not. But is it actually worth the effort to use? Hmmm-mmm-mmm. Well, if you actually need help balancing your various long term goals, why yes we can see this would be an excellent tool. If your strategic directions are pretty much set (that would be a politer way of saying “as one-dimensional as we are”) and you’re only really interested in some help with tactical management, not so much … and at the moment the lack of repeating tasks is a pretty hard block to that, although as mentioned above it looks like that lack will be remedied.

So, there you have our thoughts. If this sounds like something you figure could help you out — click away!

XPilot

Continue Reading →
1

New releases

Looks like October’s a big deadline date all around: we’ve got a veritable plethora (ok, three) of new releases that all came to our attention today!

SCM CLIENT:

Zennaware Cornerstone which we’d already designated the best SCM client EVAR jumps to version 1.5, with a laundry list of new features and interface improvements — go click and read it yourself, it’s very long indeed — but we’d like to note that we particularly appreciate how the 22 working copies it’s tracking for us (yes, it’s been busy around here since we first started using it…) which were taking just enough seconds to synchronize at startup to border on mildly annoying, are now instant. Yes, instant. FSEvents rock. If you’re using any other SVN client, you really should check Cornerstone out. If there’s any reason left to use any other Mac client, we sure can’t see what it could conceivably be.

DEBUGGING/VIDEO MAKING TOOL:

Vimov iSimulate which we’d concluded was pretty darn handy for hooking up the Simulator and device input is now version 1.1, and get this, they’ve added screen streaming:

While your application is running on the iPhone Simulator, whether it is a UIKit-based application or an OpenGL game, iSimulate will stream it as a video to your iPhone or iPod Touch in realtime, so that you can more easily move your fingers across the screen, and accurately touch the buttons and controls.

We actually hadn’t found lacking that as much of a problem as you’d think — but hey it’s great to have! Also adds orientation change notification and customizable touch indicators. So yep, for the $32 it’s up to know, we’d call that a pretty compelling addition to your bag of development tricks, yep.

OPENGL PROFILING TOOL:

Graphic Remedy’s gDEBugger which we’d sized up as vital if you do low level OpenGL is now officially released and up to speed with SDK 3.1 and OpenGL ES 2.0, at an introductory $550 price. Still a bit pricey, we grant you … but hey if you are doing any hardcore OpenGL work, there’s just no other way to get this kind of information and it’s going to pay for itself right quick.

Why, it’s just like Christmas with all these new toys to play with!

Continue Reading →
0

Review: Things

OK, this isn’t a “review” really, just a flat out recommendation — buy Things for the Mac and Things for the iPhone, they’ll improve your life.

As you can probably imagine even if you’re not one, being a freelance contractor, and particularly a freelance contract iPhone programmer, involves juggling a vast array of conflicting projects, usually running at least three levels of interrupt deep. And although over the years we’ve dabbled at many, many forms of online and offline organization, most popularly these days some kind of derivation of the GTD™ cult (which if you’re part of, check out this collection) they’ve all ended up in short order being either too unwieldy to be actually useful, too structure-imposing to actually match the real world, or too consumed on process as a substitute for actual achievement … and we end up actually using the good ol’ Stuff To Do piece of scrap paper tucked under the keyboard.

Until now!

We’d been noticing rave reviews of the simplicty of Things popping up all over the web (just check the product pages above on the right for lots of examples, a particularly good one here) but the goodies list here was the one that finally roused us enough to figure hey, if the desktop and iPhone versions actually worked well together, this could finally be one that was worth the effort to get into. And shocked, shocked we were to find that it not only had a learning curve approximating zero, it was actually less overhead than paper. Six days into running it now, and it’s completely taken over running our life, as it works just the way we do … but easier. Amazing, that.

The only thing that comes close to a flaw is that we’d like to see MobileMe (or whatever) sync so that our various computers, iPhones, and iPods could all share state through the cloud with complete transparency. But hey, even without that, it’s still the best — nay, the first and the only — personal task-management software that actually helps us manage tasks as opposed to having us fiddle with managing tasks. Matter of fact, it’s pretty much verging on killer app status for the iPhone platform, that’s how good we think it is … and if your life is anywhere near as unavoidably unstructured as ours, we’re pretty sure that you’ll agree!

XPilot

Continue Reading →
4

Review: iSimulate

So you may recall a little while back we mentioned the various options out there for integrating input from the device into your simulator-running application, and today we’re going to delve into just how well the paid option, Vimov‘s iSimulate, actually works — since they were trusting silly kind enough to provide us with a review copy. Let’s see how that works out for them, shall we?

First off, we’re going to try it out with an accelerometer-controlled cocos2d game that we’re going to be working on soon as things slow down a bit around here — so look for that around the year 2015! Ho ho! — but has the accelerometer input working, so makes a solid test.

Having installed iSimulate.app on our device, we start it running, then download the SDK and read the instructions:

1. Add the iSimulate library file named “libisimulate.a” to your Xcode project…

Drag, click, done.

2. Add the CoreLocation framework to your project…

Click, scroll, drag, click, done.

3. Add to “Other Linker Flags” the value “-ObjC”…

Hmmm, that’s an interesting request. And what is that option, exactly? Ah, so that’s what it is. That explains how they do this without any source changes, then. Any-hoo, we do all our configuration in .xcconfig files, so we’ll just edit the base one for this project to

OTHER_LDFLAGS = $(inherited) -ObjC $(TW_CONFIGURATION_OTHER_LDFLAGS)

4. Oh, wait … there is no 4.

Alrighty then. So we run the app, and lookee there, immediately up shows our computer on the device (You remember from above we started it running before downloading the SDK, yes?):

iSimulate_connect.png

Tap that, and in scrolls the active view:

iSimulate_active.png

Very pretty, yes. Now, your immediate reaction is that makes it impossible to use the thing to actually manipulate a touch interface, since you can’t see what you’re touching. But they’ve addressed that in a surprisingly effective fashion; translucent dots appear on the simulator at the points where your fingers are touching, as in this screenshot of three fingers touching, one directly over the’Menu’ button:

iSimulate_multitouch.png

Turns out surprisingly workable, too, if not the most precise.

And speaking of precision … just how precisely does the response in the simulator reflect the actual device input? Hmmmm … well, it’s not absolutely perfect, we definitely noticed a tendency to overshoot the ball’s acceleration on the play sceen. But it is somewhere between “very good indeed” and “excellent”. As well, our test subject here has extremely twitchy response (by design) so we’re inclined to believe that the input lag here is as good as you can reasonably expect anything going over Wifi to be.

We proceeded to try various combinations of stopping and restarting the device app and the simulator app to see if we could manage to confuse it, and nope; managed to detect/connect/reconnect with casual aplomb.

So it works great for an OpenGL game.

For part 2, we were going to try it out with the multitouch resize ‘Fit Pose’ overlay feature of Poses Volume 1 … but somehow it managed to escape us that iSimulate would, in fact, not make the simulator magically have a camera. And that didn’t occur to us until we’d taken the 30 seconds to go through Steps 1-3 to add it to the project and run it, of course. Oops. So while we were there anyways, we tried it out with the swipe navigation gestures in the full screen gallery, and it worked just as expected on those; and since those work, and we can see the pinch/zoom dots rolling around, we’re quite sure if we bothered to enable the transmogrification in those instances the multitouch would work as well as the single touch does.

However, there was one failure we noticed; whilst tapping on an individual table cell works as expected, it did not seem to recognize a swipe to scroll the table. Which, had we bothered reading to the bottom of the documentation page, we would have seen documented:

Due to technical restrictions, iSimulate does not send touch events for the following UIKit objects (as well as any object based on them): Keyboard, UIScrollView (including MKMapView), UIPickerView and UITableView. All of the other UIKit objects receive all touch events. There are no limitations on OpenGL-based applications.

Hmmm. Wonder what’s up with that? Well, you can always just use the computer’s devices to provide those inputs, so that’s just a mild inconvenience. Although it would be interesting to know exactly what these “technical restrictions” would be, curious trolls that we are.

So! What’s the verdict? Pretty much unqualified recommendation, that’s what the verdict is. As you can see above, integration with our test products took longer to liveblog about than it took to actually perform; there was no mucking with the source whatsoever, just adding a couple libraries and a linker flag; the application found risible our best efforts to confuse it; and although it’s not absolutely faithful to how the device reacts natively, it’s very close indeed and probably as good as you can reasonably expect given that there’s a Wifi connection in between. For the $16 it’s priced at as we write this, by the time it saves you half a dozen install cycles it’ll have paid for itself quite handily.

And we haven’t even touched here on the other big benefit of having this around: that when it comes time to make screencasts of your finished product, they’re going to be much more helpful when made off the simulator with this assistance rather than pointing a video camera at your hand blocking the screen like most of the blurry demo videos you see around. See the samples here for how well that works out; those little gray dots really do make the video quite more informative, indeed.

Convinced? Of course you are. And you know what to do now!

iSimulate

Continue Reading →
2
Page 1 of 2 12