Posts Tagged 'Programming'

Tip: Build and Archive

Just in case you missed this in the release notes for the iPhone SDK 3.2 which is final now so go download it, Xcode 3.2.2 has a handy-dandy new ‘Build and Archive’ command which will place your app and .dSYM into ~/Library/Mobile Device/Archived Applications, and list it in a new ‘Archived Applications’ entry under ‘iPhone Development’ in the Organizer window; from where you can run Apple’s initial validation checks if its metadata is on iTunes Connect, submit it directly, or hit the shiny new ‘Share Application…’ button, which will let you either save somewhere or email directly an .ipa file signed with your certificate of choice.

So, with any luck, it’s goodbye forever to those pesky ad hoc build distribution problems, and without needing to resort to workarounds like dsym-archiver. W00t!

Continue Reading →
3

CrashReportSender

OK, today we’ve got something for you that every single iPhone application developer should implement immediately. It certainly would have saved us being reduced to gibberingly apoplectic frustration last year. At least, you should implement it immediately if you’re not absolutely 100% certain that your app will never crash either because of your own code or because of any change in system libraries’ behaviour. Feel free to stop reading now if that’s the case.

Ah, you’re still here. Yes indeed, even if you yourself do happen to be absolutely perfect, those people who left because they trust Apple are pretty silly, aren’t they now? So let us continue.

The immediate problem we’d been faced with was bug reports like this one:

I observed the app crash during [REDACTED]. This occurred when a button was pressed…  [REDACTED] I believe. But I have tried this additional times and have not observed a crash, so it is not easily repeatable.

Those are great, aren’t they? And of course, the idea of a user being able to follow instructions like “please send me the crash report, which you can find after you next sync at this path…”, well that’s just crazy talk. So we decided that for the sake of our blood pressure, we needed to put in some way to get those crash reports directly. And it seems that state of the art in free code to help you out with that is still the long-ago–mentioned PLCrashReporter … but there’s a new twist to it. An awesome twist. On awesome toast. With a side dish of awesome. And that twist would be the CrashReporterDemo project.

Really, it’s quite sadly misnamed indeed, because it’s not just a reporter demo, it’s a complete crash management and automatic feedback system. “And automatic feedback?” you say? Why, yes, indeed, “and automatic feedback”, we said. Like this. Your app crashes, next time it starts the user gets a screen like this (pardon the greenly redacted bits, but this project is still SOOPER SEEKRIT):

CrashReporterCrashed.png

No particularly big deal so far, if still waaaaaaay better than most apps manage. But this, ah this is the awesome part, the user taps ‘Yes’ and nigh on immediately this shows up:

YeahIKnow.png

Woah. Have you ever seen any application do that before? We have never seen any application do that before. That’s just so insanely awesome that “awesome” blushes and hides itself as not being up to the task of adequately conveying its awesomeness. We do so wish we’d had this last summer as the angry emails poured in and the angry one-star reviews piled up and we begged the grinning gargoyles athwart the Apple approval process to p-p-p-please let us publish a four line fix as they sat back on their evil haunches and cackled hysterically at our discombobulation. Alright, perchance we exaggerate somewhat; it may be that their cackling was not actually hysterical. But it felt that way at the time. Not that we’re bitter or anything, mind you. It was an educational experience that poking around the undocumented corners of the SDK is actually not as clever an idea as it may appear at the time. But we digress.

How this project brings the magic is that it includes online PHP scripts to handle the submission — and local support to symbolicate the crash reports on your own machine and send them back up to the server, how awesome is that indeed — sort it by version, and identify them as being a particular “pattern”. And you can set a fix and a fixed version online to that pattern. Like, for the above, this:

CrashReporterPattern.png

and then on the versions screen — which will fill in the future version you note for a fix automatically — set the type of resolution (fixed, submitted to Apple, now available for upgrade, …) and tell it to notify future submitters;

CrashReporterVersions.png

… and then they will get an appropriate alert as shown above.

So yeah, I trust that now you follow where we were coming from when we said this is something that “every single iPhone application developer should implement immediately“. If not sooner. That repository again, you can find it here.

But wait! There’s even more! If setting this up on your own server is too much of a strain — although it’s not that hard, really — it’s available as a free service online at macdevcrashreports.com! Or it will be, anyways; at present it’s in limited signup beta testing. Probably worth signing up with once they go commercial, I’m sure. In the meantime, the open source version works just fine. We’d call out “awesome” again, but “awesome” is running and crying from overuse in the post already, so we’ll just reiterate that this is something we’re going to consider mandatory for any future projects we’re actually going to be tasked with supporting after initial release!

Continue Reading →
3

Monetization: Burstly

So a couple weeks ago, we mentioned a very interesting looking ad management platform called .app/ads? Yeah, they’ve gone and rebranded themselves,

burstly-logo.jpg

so for the sake of easy archive searching after the however long it is until we actually get around to thinking about putting a new ad platform into a project, here’s an update to point you at the all-new, all-wow, www.burstly.com. Very pretty indeed. And Apple developers will have a bit of a chuckle at their documentation library design, no doubt.

Also, check out this good introductory app monetization blog post. From which we also learn that they do see themselves as having a direct competitor, the new to us AdMarvel. Although since AdMarvel is now owned by Opera, one does wonder just how much focus they’re going to be sparing for iPhone development needs.

And see what the press is saying at MobileBeat and at TechCrunch, and this missive from a VC investor. Certainly does look very interesting, and something that looks worth jumping into right away …

… if not for the elephant in the room here, which is what’s reportedly coming from Apple in short order.

It certainly is interesting times on the advertising front!

Continue Reading →
1

Source: SCSegmentedControl

You ever had that problem where you just had too darn many choices to fit into a UISegmentedControl? Well, here’s a solution: make it multi-line!

SCSegmentedControl.jpg

Cute. Maybe stretching the HIG a trifle — but cutely stretching them! It’s part of the TouchCustoms repository on github, which is apparently a collection of kibbles and bits used by ScreenCustoms a duo out of Belarus. Looks like some other goodies in there too if you rummage a bit…

Continue Reading →
2

Source: FJSTransitionController

Here’s a possibly handy piece of source from The Flying Jalapeño Lives — FJSTransitionController! Which is:

Well, FJSTC is a custom “top level view controller” to be used as a replacement for UINavigationControllers and UITabBarControllers. It handles transitions between view controllers, but with more flexibility.

Instead of managing a stack or an array of view controllers, FJSTC manages a Dictionary. You can associate VCs with keys and load them arbitrarily…

That would’ve been kinda handy, well last week actually, when we were putting a bunch (thirty-one, to be exact) of inconsistently hierarchical views into a navigation controller and winding up with hints of inelegance whilst doing so. But hey, it’s working-ish now, although we might consider retrofitting it, since FJSTC includes a few other nifty features like FTUtils-provided animations. If that sounds interesting, source on github and project on codaset!

Continue Reading →
0

Library: ASIHTTPRequest

We’re not quite sure how we managed to overlook this so far, but if you’re outgrowing NSConnection and figure that you need something CFNetwork based, there is an excellent library called ASIHTTPRequest that wraps it nicely, is compatible with iPhone and desktop both, and has plenty of features, some of the more nifty being:

Yes, that is indeed a comprehensive feature list. Source on github; group on Google; and Lighthouse bug base even. And BSD-licensed to boot. Why, it’s like an awesome sundae topped with awesome sauce!

[UPDATE: But ho! The very next day, we stumble across a purported good reason to NOT use it --

I'm sorry, I have to speak out against the ASIHTTP library. It's mostly quite good, but because it doesn't sit on the NSURL* classes it ignores any global proxy settings. This is particularly an issue in a VPN environment, but it comes up in other situations as well. Unless you're willing to deal with wonky support issues (and bad reviews as a result), don't use it.

Hmmm. That does sound like a worry ... but we could swear that CFNetwork can use CFProxySupport to get the global proxy settings, because we've done that. On the desktop, mind you. Perhaps CFProxySupport is not available/functional on the iPhone? Or this fellow is just making stuff up? If you have some actual iPhone experience to know one way or the other, please share!]

Continue Reading →
5

Monetization: .app/ads

Well, this looks like a remarkable step up in monetization functionality for the penurious iPhone app developer: the (still in beta) OPEN! and FREE! .app/ads “ad management platform for iPhone developers”. And what is an “ad management platform” exactly?

.app/ads gives you complete freedom over the ad space within your apps by providing an open and free ad management platform. There are a lot of revenue opportunities for app developers today, and you can count on even more direct ad and ad network opportunities being available in the future. Given the turnaround times on App Store approvals, locking your app into using just one ad network, or even just one ad network aggregator, could cost you substantial ad revenues. Take advantage of all the opportunities available to you now and in the future with .app/ads. You can easily manage and run third-party ad network and aggregator SDKs (AdMob, Mobclix, TapJoy, AdWhirl, et al.), direct ads, house ads, content (such as Twitter and RSS feeds), in-app purchases, and developer-direct marketplace offers from just one platform. Use one dashboard to manage your ad space and optimize what is going to make you the most money while maximizing your users’ experiences.

That does sound exceedingly comprehensive, indeed. We had been intrigued by the Flurry AppCircle idea, but since they’ve shown a distinct absence of willingness to answer any emails sent to them, we’ve kinda cooled on the idea of relying on them for any business purpose. [UPDATE: Why look at that, the AppCircle SDK arrived in our mailbox first thing the very next morning. How coincidental!] And these guys certainly do a great deal more, if the non-beta version lives up to the advertising (heh) here. Read more about them at TUAW and at TechCrunch.

Indeed, it would be an interesting exercise to see just how many of the ad providers listed in our increasingly disjointed advertising/analytics collection one could fit into this platform…

Continue Reading →
3

APNS Update

So we’re just about to the point in That Big Project that’s been chugging along here where the server’s message delivery system moves over to an APNS basis, which will no doubt be very interesting indeed. So we’ve been looking around for some help with that.

The scale and immediacy of messaging envisioned makes reliance on third-party services potentially problematic for this project, so those are out. (Although as an aside, in the iLime vs. Urban Airship competition for your third party APNS needs, last fall we did an exploratory APNS-based project and picked iLime because it looked simpler at first glance and fit in with our Google App Engine prototype nicely, and had no complaints about how that worked out.)

So, since the last time we noticed an APNS roundup, anything new out there on the roll-your-own side of the things? Why yes, yes there is indeed. Here’s some more resources that look interesting:

Programming Apple Push Notification Services

A comprehensive walkthrough of how to implement the client side and “test” with an OS X-hosted faux server.

Easy APNS

Open source PHP/MySQL application, looks very comprehensively documented indeed.

ApnsPHP: Apple Push Notification & Feedback Provider

Another PHP application.

pyapns — An APNS provider for your app

XML-RPC based with Python and Ruby native APIs.

java-apns

Java? People still use that? Well, if that’s you, check this out.

[UPDATE: When we did our server, the pem/passphrase problem was the biggest hurdle: this post lays out nicely how to sort that!]

And hey, if any of you out there have anything good or bad to say about these various bits and pieces out there for the DIY APNS service writer, or if there’s anything of potential note we’ve overlooked thus far, please share!

UPDATES:

mattt / rack-push-notification: “A Rack-mountable webservice for managing push notifications.”

Apple Push Notifications with Mule Cloud Connect

How to build an Apple Push Notification provider server (tutorial)

Sending Apple Push notifications in rails with Redis and apn_sender

Apple Push Notification Service Gem

Open Source Easy To Use Multiple App iOS Push Notification Provider (Python and Twisted Based)

Apple Push Notification Services in iOS 6 Tutorial: Part 1/2 and Part 2/2

Easy To Use GUI Tool For Debugging iOS Push Notifications

Continue Reading →
6

Platform: Z2Live

So this email showed up on the iPhoneSDK list today:

Hi Developers,

We’re excited to announce the availability of the Z2Live Multiplayer SDK for iPhone, iPad and iPod touch.

Features:

  • Multiplayer networking that works on WiFi, Edge and 3G
  • Voice Chat between players
  • Friend Invitations via Push Notification
  • GKSession API compatibility to make porting Bluetooth games to the Internet easier
  • No need for a game server (the devices connect directly to each other)

Please follow this link to begin building your next generation multiplayer games and set yourself apart from the pack:

http://www.z2live.com

Thank you and great gaming!

And why yes, if you follow that link, particularly to the features page here, it does look like quite the platform indeed for building your multiplayer games on. And as our biggest project right now (actually, our biggest iPhone project yet by a good bit) is putting together a multiplayer game, we’re keenly aware of just how time-consuming this stuff is to put together on your own.

Oddly enough, we do not see at first glance any hint as to pricing we are so blind that we completely overlooked the quite blatantly obvious and straightforward pricing on the terms of use page. And that would be: 30 cents per user per year. So you’re probably not interested unless the features are offered as part of a subscription package. And how well will that work? Well, we’ll have an idea sooner or later, as that multiplayer game we mentioned above is indeed meant to be monetized in precisely that fashion. It’s a pretty seriously server-centric the deal that wouldn’t be too appropriate for Z2Live anyways.

But hey, if you are putting together something that could use it, you probably want to check it out for a build or buy decision. And if you do, let us know what you think, k?

Continue Reading →
1

Source: FTUtils

Oooh, here’s some cool stuff: a bunch of nifty canned CoreAnimation routines called FTUtils:

The code in FTUtils is common utility code extracted from Free Time Studios iPhone projects. Currently, there is only one primary utility (FTAnimation) and some simple preprocessor macros. Some unit tests exist for the code, but more are needed.

OK, it could be described more enthusiastically, along the lines of “DOZENS OF TEH AWESOME CORE ANIMATION FX!1!one!”

But hey, if you want that little extra bit of groovy animation polish in your app — and who, we ask rhetorically, doesn’t? — it’s definitely worth checking out: see the video at the above link or just grab the source off github and run the demo!

h/t: The Flying Jalapeño Lives via iPhoneFlow!

Continue Reading →
1
Page 62 of 89 «...3040506061626364...»