Archive for 'Reviews'

NFC for iOS: FloJack

So you really wish your iOS device was NFC enabled? And don’t feel like waiting around for Apple to bother supporting it? Well, you might want to help nudge this Kickstarter project over the top:

Screen Shot 2012-11-25 at 9.39.55 AM.jpg

As we write they’re some $4K short of their $80K goal with 34 hours to go; the Flomio website is here where you can see the team includes the dude who wrote NFC Quick Actions for Android, and you can check out their SDK at flomio / flojack-ios; so it certainly looks like they’re serious here, and it would be nice to see their project succeed … if only to cut off another talking point from those cackling “ANDR0ID FTMFW!” fandroids. Cheap at the price, really.

h/t: [mobile developer:tips];!

Continue Reading →
0

Review: Test-Driven iOS Development

So we imagine that if you’re reading this, chances are that you’re pretty confident in your programming skills and figure that the optimal development methodology is for people to stay out of your way. We understand. Spent better than two decades repeatedly proving so, in fact. But recently we’ve been shipping additions to a growing family of generally accoladed sports apps; and that has demonstrated to us nicely that the problem with that approach is that it scales past a single app … questionably. At the moment with nine teams in three sports things are still reasonably manageable, but that won’t last, if you get our drift. So we have been looking into things we can do to optimize the scaling process. Which, serendipitously, brings us to Graham Lee‘s new book:

We’d actually talked with Graham briefly after his TDD presentation at the Seattle VTM conference last year, where he’d just about convinced us that TDD might be something other than the development-slowing waste of time we’d previously observed it to be at places that applied it as a management-imposed afterthought, so we had fairly high expectations of the book; and why yes, yes indeed it would be an excellent book even if it wasn’t the one and only out there for iOS on the subject — matter of fact, we unconditionally recommend it to anyone who wants to be a better iOS programmer!

If you’ve already got the TDD religion from other platforms, you can jump directly to Chapter 4 “Tools For Testing”; those of us of a more skeptical bent will find reading through Chapters 1-3 an nice gentle progression through demonstrating the value of testing at all through to “How to Write a Unit Test” and how that leads to safely refactorable design.

Said Chapter 4 goes over the Xcode built-in support thoroughly and introduces GTM, GHUnit, CATCH, and OCMock on the coding side, plus Hudson/Jenkins and CruiseControl on the integration side. That covers anything you’re even remotely likely to encounter in existing projects.

Chapter 5 “Test-Driven Development of an iOS App” starts the 6 chapter process of developing BrowseOverflow, a StackOverflow question browser; full source available on github for everyone. Note that we say “process of” rather than “walkthrough of” developing; these aren’t 5 chapters of simple lecturing, at every step the analysis and alternatives are discussed thoroughly, with asides on design patterns, refactoring, and all kinds of good stuff, finishing up with Chapter 11 on general design principles derived from the process, thoroughly applicable even if you’re not using TDD at all.

Finishing up the book, Chapter 12 “Applying Test-Driven Development to an Existing Project” gives some straightforward advice on grafting testing into your ongoing development, and Chapter 13 “Beyond Today’s Test-Driven Development” surveys techniques not fully baked for iOS development yet.

Overall, we’d say that pretty much every — no, seriously, pretty much every — iOS programmer would solidly benefit from reading this book. Even if you’re already developing with solid test coverage, there’s almost certainly some insights here you’ll find useful. And if you’re in the position of most of us where you’re using tests half-heartedly and more likely not at all, you should put reading this to figure out just how this TDD thing could do you some good at the top of your list of self-improvement tasks. And if you’re new to development in general, why then this should be pretty much the next thing in your programming curriculum after design patterns!

UPDATES:

TDD – is it worth it? nicely summarizes why TDD is very likely worth the trouble to adopt.

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

Review: Cocos2d for iPhone 1 Game Development Cookbook

So, now that we’re all up on the latest in cocos2d web events, let’s take a look as promised at the latest in cocos2d publishing events:

Cocos2d for iPhone 1 Game Development Cookbook

cover_image_250w.jpg

SHORT REVIEW:

Buy it now. No, seriously. Buy it now.

SOMEWHAT LONGER REVIEW:

We absolutely guarantee that just about anyone will find the book worth way more than its price in time saved. To see for yourself, head over to the book’s website

http://cocos2dcookbook.com/

and check out the Explore The Book section for videos and explanations of the recipes in each … and download the demo apps. Yep, the demo apps, there’s free demo apps up on the store for you to check out the recipes in action:

Cocos2d Cookbook Ch1-3

Cocos2d Cookbook Ch4-6

Cocos2d Cookbook Ch7-8

Now that’s how you go about supporting a book!

Also check out the book’s thread on the cocos2d-iphone forums for some subtle understated commentary like

  • “This book looks like it is going to be a requirement in every developer’s library!”
  • “Ok, I have read a handful of recipes and I am completely sold. This is an awesome book.”
  • “…every developer needs to have this book.”
  • “this book is an absolute must for anyone developing cocos2d apps.”
  • “Great book, instant buy!”

Gee, gushing much? But it actually does deserve all that and more. Let us take the very first recipe, “Drawing sprites”. Oh for crying out loud, you think, how does that merit a recipe? Is this thing going to be full of fluff I already know? Well, no actually, that simple sounding recipe goes over drawing from files, images, textures, and frames; explains mipmapping and batch nodes; and tops it off with colorizing rectangles. Well, that is pretty good for a first recipe, isn’t it now.

The first graphics chapter goes on to cover not only common drawing and animating but movie playing, particle effects, simple 3D effects, texture animation, palette swapping, screenshots, parallax, and lighting. Pretty much a worthwhile purchase already, and we’re barely started!

Second chapter covers user input of varying types, including virtual joysticks, d-pads, and accelerometer; nothing too novel here, but useful time savers here if you’re newish to cocos2d.

Third chapter covers data management; reading and saving plist/JSON/XML … and even SQLite and Core Data. Probably not much completely new to you here either, but the details of working with sprites and the like are handy.

Fourth chapter is on physics and is a particularly valuable one for those of us weak on the background there; focusing on Box2D, takes you from basic setup through impulses and forces to joints, bullets, ropes, and ending up with a 2.5D isometric game engine! That’s a pretty standout one there.

Fifth chapter, ‘Scenes and Menus’, is mostly pretty straightforward but still handy code. The sliding menu grid and minimap are particularly nice.

Sixth chapter, “Audio” is another notably useful one, nice explanations of sound manipulating, positioning, metering, recording, iPod library usage, and finishing up with creating a MIDI synthesizer with MobileSynth and then speech recognition/synthesis.

Seventh chapter, “AI and Logic” is well-nigh invaluable for those without a background in it; basic waypoints, targeting, line of sight, flocking, pathfinding (the “in a Box2D world” getting special mention, good luck figuring that one out without some help!) and finishing off with discussion of Lua integration.

We figured the last chapter “Tips, Tools, and Ports” was a bit weaker; the tools picked here mostly aren’t up to the currently regarded best of breed mentioned in yesterday’s roundup, and the cocos2d-x and cocos3d intros were too short to really be of much use. But hey, still worth a read.

Closest thing we have to a real complaint is that you have to email the author to get the extra chapter which was omitted from the print versions; really, how hard would it be to put it as an addenda in the electronic versions most of us are going to be buying anyways? But hey, if mild inconvenience is the worst whine we can come up with, that’s pretty solid.

So, yeah. We pretty much can’t imagine anyone developing with cocos2d who won’t find something in here well worth the price; for those just starting out it might be a bit over your head, but it would make a perfect second step after one of the introductory books or our starting recommendation The iPhone Game Kit. So buy it now!

Continue Reading →
4

Localization: Linguan

So there’s a new app out today purporting to be of assistance with that pesky translation task for your iOS and OS X apps:

Linguan

Linguan greatly simplifies localizing your Mac and iOS apps. It gives you an intelligent editor for all strings files contained in your Xcode project.

You get warned about duplicate tokens or missing translations. Then you can export and e-mail all missing tokens for a specific language to your translator, who can also use Linguan for filling in the translations or use his text editor of choice.

When you get the translators results back Linguan automatically merges the results into your project, even if the tokens originated from multiple different strings files.

That all sounds pretty handy then, doesn’t it now? As it happens, just a little while back we did a 12-language-localized project, and the memory is fresh enough to remember the hassles involved. So let’s start out by seeing how Linguan handles opening that file and sorting out the contents:

Linguan opening.jpg

… why, with perfect aplomb, that’s how. And well look at that, it found an error: “Multiple translations for token ‘PRODUCTINFOLINK”. Seriously? OMG, it’s right. Well, apparently the shipping version is using the right one, otherwise we probably would have heard. Still, nice catch already.

Moving on, let’s see the missing translation finding. We know we don’t have any so we’ll have to seed it with one, but just to check … wait, what? Ah, that’s it, it found an untranslated one in a comment we’d left in for some reason:

//controller.title = NSLocalizedString(@”TITLEROOTTABLE”, nil);

And it seeds it into the table of tokens above. So let’s call it “A table.” in English, and hit ‘Wizard’ to see how wizardly helpful it is. And very so. So let’s put in a Spanish translation,

Linguan wizard.png

Hit save … why yes, there’s our newly translated string appearing over in Xcode. Now let’s check out the export functionality to provide lists for translators when you need those, this string in Korean say … why yes, yes it does so nicely.

/*
@LANGUAGE ko
@DIRECTORY resources
@FILE Localizable.strings
*/

/* No comment provided by engineer. */ "TITLEROOTTABLE" = "";

Awesome.

Alright, we’re convinced. It’s evident in mere minutes that this would have saved us on the order of days developing the project we’re checking it out with. Straight to the head of our Essential Third Party Development Tools list it goes. And for only five bucks? A veritable steal, we tell you. From the announcement post:

… We believe that Linguan provides a piece of functionality that should have been provided by Apple, but wasn’t. So we tried to make a tool thats worthy of being mentioned with Xcode on the same breath. Check it out on the Mac App Store. If you find any issues or have feature requests then you can use our bug tracker for that.

And succeeded nothing short of magnificently, it appears. If you’re shipping your projects in anything other than your native language — and if you’re not, you should be! — buy it NOW. NOW! NOW! NOW!

(And you, yeah you, the twerp in said announcement post’s comments bitching “I won’t make them pay some software, no matter how great it is” — for the love of God Almighty, man up already and gift it to your volunteers then. $5 a language? Suck it up, buttercup.)

UPDATES:

Having trouble with the Xcode 5 preview? Xcode-select will help!

Continue Reading →
3

TexturePacker 2.4.0

So for an embarrassingly long time now, we’ve been meaning to get around to doing a head to head review of the two main Mac OS X sprite sheet creators for cocos2d, Zwoptex and TexturePacker. Unfortunately, time for that just has not turned up … and it’s not likely to in the foreseeable future. So in lieu of actually producing that, let’s just tell you:

Are you creating sprite sheets as a part of a workflow? Running just about anywhere, targeted just about anywhere? Then you need to look into TexturePacker carefully … and if you have before and it didn’t crank you up, check out the sparkly new version 2.4.0 again!

A) Running just about anywhere:

Versions are available for recent OS X, Windows back to XP, and Ubuntu Linux. Which makes it an instant winner if your asset workflow involves those other, lesser, OSes. There is a bit of a downside to that — being a QT application (judging by the package contents) some things will work a little unexpectedly for your platform. For instance, file handling in TexturePacker is somewhat fragile; you would be wise to put your asset files somewhere they’re not going to move from before starting to create your sheets, as apparently QT’s file handling is not as OS X-savvy as it could be.

B) Targeted just about anywhere — previous versions had:

and 2.4.0 adds:

And you can even create CSS sprites. So, yeah, seriously, just about anywhere.

And it’s fairly straightforward to integrate with Xcode as well.

And … well, hey, check out the feature list and release notes for yourself. Particularly notable in the new release are autoimport from .swf files and a .pvr QuickLook plugin. Which is actually catching up with Zwoptex … yes, we must get around to that detailed comparison sometime. But on sheer mass of features and prolificness of updates; well, you just can’t go wrong picking TexturePacker, it seems.

There’s a nicely introductory step by step tutorial here from a fellow who moved from Zwoptex to TexturePacker, and of course Ray Wenderlich has a tutorial, as he does for everything:

How to Create and Optimize Sprite Sheets in Cocos2D with Texture Packer and Pixel Formats

As a final note, if you really want to get the inside scoop, you’ll probably want to pick up the new rev of Steffen Itterheim’s cocos2d book:

I’m proud to have Andreas Löw (@CodeAndWeb) as a co-author for the 2nd Edition of the Learn Cocos2D book! Andreas is the developer of the indispensable Cocos2D (and other game engine) tools TexturePacker and PhysicsEditor.

Andreas volunteered to make all the necessary changes to replace Zwoptex with the more state-of-the-art TexturePacker, and VertexHelper with the much more powerful PhysicsEditor. He also provided the new graphics for the Shoot’em Up and Pinball projects, as well as making them Retina compatible…

Yeah, just in case you don’t think TexturePacker is an impressive piece of work, there’s that PhysicsEditor thing he does too. Be nice to getting around to reviewing that too, one of these days…

Continue Reading →
4

Ad Hoc + Crash Reporting

So it’s been quite a while since we last surveyed the state of ad hoc distribution, and even longer since we made any notes about crash reporters — remember when CrashReportSender was a massive novelty? Ah, how the time does fly — but the progress in merging those functions has been dramatic enough that yep, let’s pick today to get out of our comfortable rut and try something new.

To bring you up to mid-June speed, this was a comprehensive-appearing overview of state of the art at that point:

The battle of the iOS crash reporters

Want the short version? Use HockeyApp.

We generally concurred, although the pricing was problematic for those of us who do lots of little apps; but there is the alternative of setting up your own server with the open source HockeyKit/QuincyKit combo which power the HockeyApp service. Unfortunately, time isn’t free either, which is why that hasn’t happened. In the meantime, HockeyApp’s added Bug Tracker Integration and various process improvements and the HockeyMac Xcode upload helper. Busy busy busy, those HockeyApp folk!

You might note in the comments that we mentioned the Crittercism “Support Infrastructure for Mobile Apps”, which a project we’re involved with was trying out at the time. Nice mix of services, but not ad hoc distribution, which is a rather natural pairing for your crash reporting solution, so that takes it out of serious consideration here.

And at just about the time that was written another beta distribution service Apperian AppRamp was introduced allegedly addressing issues with Testflight, which was newish at the time of our last survey and we didn’t really see any compelling reason to move away from our trusty friend BetaBuilder. It also doesn’t appear to include any crash reporting functionality.

So that wraps it up right, game set and match to the HockeyApp team? Well…

If You Weren’t Using TestFlight Before, You Will Be Now With Their New SDK

Will we now? And why would that be?

… All the features announced today are Free, including Enterprise IPA support.

  • Crash Reports : Real time reports with environment snapshots, full session activity, and your NSLogs.
  • Check Points : Monitor tester engagement and watch as they progress through your app…
  • Sessions : Discover how testers are using your application…
  • In-App Questions : Get the answers you need right when you need them…
  • Feedback : Gather more feedback with in-app forms or via tester email replies…
  • In-App Updates : Prompt testers to install the latest version of your app and they can update instantly over-the-air.
  • Enterprise IPA Support: …added benefit of unlimited devices with all the TestFlight features.
  • Build Reporting : View realtime build status and tester activity.

Hmmm. That’s a lot for free, indeed. The one thing is, we really quite like QuincyKit’s symbolication integrated into HockeyApp … oh, wait …

Real time symbolication

We wrote a portable version of Apple’s closed source atos command line tool to power TestFlight’s new real time symoblication of crash reports. We are considering open sourcing this tool for the iOS community to leverage as a whole if there’s interest.

To use this new feature, upload a .dSYM via the crashes page; your crashes will be symbolicated as they occur and you can start solving issues even faster…

OK, well, that kinda tips the balance from tempting to compelling, given the whole “free” thing, wouldn’t you say? Questionable as the long-term prospects of that business model would appear, at the moment TestFlight does indeed appear to be the support service par excellence for the frazzled iOS developer. So off to grab the SDK we go … and we’ll be sure to update you if we encounter any reason to reconsider!

UPDATE:

Ah, here’s the reason to reconsider: Using SDK in product for crash collection on app store?

As of right now applications from the app store sending us data is not something that we officially support and once we have a full solution for that we will be making a more public announcement.

Well, having our crash reporting solution work with App Store builds is kinda a requirement, yes. We’ll see what happens on this front, but that’s kinda an obvious candidate for a premium service. Which would very likely incline us back to setting up the QuincyKit/HockeyKit stack ourselves in order to get full control of the process. In the meantime, why yes so far TestFlight is very pretty and convenient, just as advertised!

Beta Testing iOS Apps Made Easy has handy TestFlight deployment scripts.

MORE UPDATES:

Quality Tracking/Crash Reporting Services for Mobile Apps covers the October 2012 state of the tools:

kstenerud / KSCrash looks like it does a more thorough job that the established players

Continue Reading →
1

Free PayPal API Book

Here’s a hot action tip — pop over to the O’Reilly site today or tomorrow for a free book:

PayPal APIs: Up and Running

paypalAPIs.gif

Does your web application provide users with a convenient way to complete transactions? This book introduces you to PayPal’s APIs with instruction and resources for integrating this popular payment solution in different application environments, including mobile. By the end of this book, you’ll have a clear understanding of what PayPal is and how you can get the most out of its powerful features for your particular payment situation.

Note particularly the “including mobile” part of that. Remember quite a while back we noted that they were beta testing an iOS PayPal integration component? Why yes, yes the last chapter of this book is all about that:

Mobile Express Checkout Library for iOS

PayPal provides a MEC library for iOS, available for download… This MEC library supports two different programming flows: it can be called either directly from your mobile application or via a PayPal button on your mobile website.

MEC Mobile Application Integration

MEC can be integrated into your mobile application, allowing you to start and end the payment process with screens inside your application…

And hey, you might want to put PayPal payments into an app sometime … so grab the book for free while you can!

(Or, if you’re stumbling across this via a search engine months later, here’s the regular book page for your convenience.)

h/t: @rwenderlich!

Continue Reading →
3

Autograph Library

So you got an application you need to capture actual signatures for? Release form, shipping delivery, that kind of thing? Well, here’s a licensable library to make that easy:

Ten One Design Autograph iOS Library

  • Simple integration with any UIView, or just call the built-in modal view.
  • Customizable stroke color and width, and signature size.
  • Advanced stroke smoothing for accurate signatures.
  • Velocity sensitive stroke width for biometric verification.
  • Customizable message. Show your customers what they’re signing for.
  • Three-finger swipe to undo/redo strokes.
  • Optional inclusion of date.
  • Optional unique security hash watermark for each signature (for tracking purposes).
  • Freely available demo version allows you to try it out before committing.

Handy if you need it, as we say. Check out the free Autograph app that makes your device into a signature capture pad to check it out, along with Mac and Windows helper apps to do something with those captured signatures.

Now, you thinking to yourself “Dude, I don’t sign my name with my finger”? Why no, no you don’t, and these Ten One people make a capacitive stylus “Pogo Sketch” for any device or the “Pogo Stylus” specifically for iPhone/iTouch to help you out with that. Or any other kind of drawing/writing etc.:

Drawing Applications: The Pogo Sketch is an interesting alternative to expensive graphics tablets, and a lot more portable. On a mobile device, the Pogo Stylus makes sketching a lot easier.

Taking Notes: TThere are some incredible note taking applications for the iPad and iPhone. They’re all great companions to the Pogo Sketch.

See our recommended iPhone/iPad applications here

Okay, we definitely have to check some of these note takers out. This stylus just might make the iPad actually better for our preferred scrawling style of note taking than paper, it looks like.

And to finish off on another note completely while we’re looking around their site … want an analog joystick for your iPad? Well look, they’ve got just the thing!

h/t: MacNN!

Continue Reading →
2

AirPlay Emulation

So you’d like to put AirPlay support in your app, but hardware to test with is inconvenient (or completely unavailable in your country)? Here’s a couple ways to sort that out:

Banana TV – $7.99

… Banana TV lets you use AirPlay for your Mac as well – play video or images from your iPad, iPhone or iPod Touch running iOS 4.2 or higher directly onto any networked Mac. It runs directly on your Mac, and is a great tool for showing off pictures or video on your Mac’s monitor, at a friend’s house, or the office. Even use your iOS device photo library as a presentation tool…

ShairPort – open source

… This program emulates an AirPort Express for the purpose of streaming music from iTunes and compatible iPods. It implements a server for the Apple RAOP protocol. ShairPort does not support AirPlay v2 (video and photo streaming) …

Any other AirPlay development helpers you’ve found of assistance, Dear Readers?

h/t: iphonesdk!

Continue Reading →
3
Page 2 of 5 12345