Posts Tagged 'Programming'

UI Design for Artists

You getting a bit tired of explaining over and over to artists the specifications for what iPhone applications need for artwork and pointing them at helper files and goodies? Yeah, us too. But these great people actually went to the trouble of collecting info to get past all the common artist questions in one place:

iPhone Guidelines And Resources For Artists

Covers device specs, icon specs for app and tab bar, fonts, and layout helpers, with links to various helpful resources overlapping a good bit with the ones we’d previous mentioned in the links above. Excellent to have it all in one place to send a link to for people who’d rather ask you than use Google!

Continue Reading →
2

Tools: Simulator Helpers

And it was just a little while ago that we brought to your attention the first Simulator helper for sending accelerometer data from an actual device that we’d run across — and all of a sudden, why, there’s a veritable plethora of them out there! Okay, three, but still.

The commercial offering is iSimulate, that does not only accelerometer but touches and GPS and pretty much everything, with a real website with an SDK and documentation and all that; and there’s a really very nice paid client for it

iSimulate

which you should pop over to take a look at the screenshots of.

And if that’s too rich for your blood, there’s a free server/SDK bundle called SimRemote to check out as well, client expected to be on the App Store soon.

Must admit we’re still inclined to use the accelerometer-simulator library we originally brought to your attention, as it’s open source and all and we like the option to muck with things … but hey, if you want the snaz, or support, always good to have options!

h/t: MobileOrchard!

UPDATE:

If you stumbled across this from a search engine … check out our followup iSimulate review!

Continue Reading →
1

Xcode predefined macros

Here’s a couple tips for finding what macros are defined/available in Xcode that showed up on xcode-users for the question

Hi, I’m looking for information on Xcode or the preprocessor that would indicate whether or not my code is being compiled for a non Mac GNU target or Mac OS X or iPhone OS…

You might have known this answer, how to print out a list of gcc predefined macros from the command line:

gcc -E -dM -x c /dev/null

But we’ll just bet you didn’t know how to extract them for a particular file in compilation context!

The easier way to do this (and get more precise, per-target-per-configuration results from Xcode) is to select a source file, Get Info, click the Build tab, add -dM to it, then Preprocess that source file.

You know, there’s been times when porting particularly convoluted befuddlements of allegedly cross-platform libraries that having known that tip would have saved us literally days of flailing around…

Continue Reading →
1

Library: Satisfaction Remote Component

Here’s a service we hadn’t heard of before which could be of use to your iPhone programming — GetSatisfaction.com, which “provides customer communities for products and organizations”. Basically, it looks like a free way to set up a support/feedback forum. Or, as they put it,

How are companies using Get Satisfaction?

  • As a primary support channel
  • As a fully branded, standalone community
  • As the community portion of a multi-faceted strategy
  • As a gateway to product innovation and ideation
  • As Social CRM “front door” to welcome customers

Aside from that anyone who uses the word “ideation” without overt irony should be flayed and their wounds salted for overt pretentiousness, that does look possibly interesting yes? And there’s a library, satisfactionremotecomponent up on Google Code, which lets you embed support for it within your application! That could be a more substantive method of support than an ‘email us’ button, indeed. Not that we’ve actually got around to even that so far, but hey, best of intentions here.

In the meantime, if you’d like to see it in action in an iPhone app try out Locavore a locally grown food finder — actually, even if you wouldn’t, if you’re in the U.S. take a look at Locavore anyways, it seems to be a pretty decent guide to finding fresh produce — or if you’re really interested in the GetSatisfaction.com community, the above library is from the Satisfaction Remote application which lets you interact with the collective GetSatisfaction.com oeuvre off your phone!

h/t: iPhoneKicks!

Continue Reading →
2

Chat room warning!

Here’s something you should be aware of if you’re planning to add any chat room type feature to your application — it forces you into a mature rating on the app store! This email arrived from those OpenFeint people who do a social networking platform for iPhone games that we mentioned before:

Developer community members contacted OpenFeint to let us know that Apple is actively flagging new updates/submissions as “mature user generated content” when chat rooms are included in their games. OpenFeint actively monitors and bans users for inappropriate content, however, some developers have not updated to the latest OpenFeint release limiting our ability to ban inappropriate users permanently. We are actively contacting these developers to accelerate the update process which will allow us to better monitor our community. As of August 14th we will be disabling access to OpenFeint applications using versions earlier than 2.0.

What are your choices?:

1. Disable the chatroom feature in your game – this is recommended for developers needing the lowest application rating in the apple store. Documentation for this can be found here:

http://help.openfeint.com/faqs/guides-2/disabling-chat

2. Submit to apple with a “Mild Mature/Suggestive Themes” – this is recommended for any games that do not fall into choice #1 above.

Not really too fond of either of those options? Yeah, neither are we. Seems that this iPhone thing being, you know, a phone with the real internet and all, restricting access to a game chatroom is a bit on the silly side, as it’s not as if other communication avenues are lacking exactly. But hey, if that’s what we have to deal with that’s what we have to deal with, forewarned is forearmed, and all that!

Continue Reading →
1

Code: UITableViewCell-Compatibility

If you’re trying to maintain iPhone source that uses UITableViewCell — and really, what doesn’t? — across 2.x and 3.x OS version targets, here’s a helpful set of functions for OS version agnosticism from the redoubtable Erica Sadun:

@interface UITableViewCell (Compatibility)

- (void) setLabelText: (NSString *) formatstring, ...;

- (void) setDetailText: (NSString *) formatstring, ...;

- (UILabel *) getLabel; // not 2.x friendly, iffy workaround

- (UILabel *) getDetailLabel;

+ (id) cellWithStyle: (uint) style reuseIdentifier: (NSString *) identifier;

// Must be called during tableView:willDisplayCell:forRowAtIndexPath:

- (void) rectifyDetailLabel;

@end

Handy, that. And whilst checking out her site, we also note that iPhone Developer’s Cookbook 3.0 Edition code is now up at github as well. Goodies everywhere!

h/t: iPhoneSDK!

Continue Reading →
0

Library: geo-location-javascript

Here’s a library of interest to our web-developing friends; geo-location-javascript, which wraps a number of different device’s GPS capabilities into a JavaScript API that is “aligned” to the W3 Geolocation API specification:

Usage Scenario

The framework provides two key methods, it determines if the handset has client side geo location capabilities and one method to retrieve the location (of course only after a request for permission). So a mobile web site that provides location based services can first determine if the client has client side geo capabilites and ask him to assist him in finding his location. If no geo capabilities are given or they are disabled the site can fallback on a manual location input method and use a geodata database/service to map the input to a pair of latitude/longitude coordinates.

Supported platforms

  • iPhone OS 3.x
  • Browsers with Google Gears support (Android, Windows Mobile)
  • Blackberry Devices (8820, 9000,…)
  • Nokia Web Run-Time (Nokia N97,…)
  • webOS Application Platform (Palm Pre)
  • Torch Mobile Iris Browse
  • Mozilla Geode

A comprehensive — nay, well-nigh exhaustive — list of platforms indeed!

As a side note, if you’re unfortunate enough to be stuck on a Windows platform and would like to have an iPhone (and Pre, and …) emulator to test out your webpages, there’s this MobiOne thing which looks like it could be useful for you, check it out.

h/t: iPhoneWebDev!

Continue Reading →
3

Source: XPilot

Here’s another GPL’d game ported to the iPhone, like World Challenge that we mentioned earlierXPilot, an old school multiplayer game that now has a new lease on life. But, as we pontificated in the World Challenge notes, there are those who have issues with this kind of resurrection; and in this case, it includes one of the original developers. From the Slashdot article “The Ethics of Selling GPLed Software For the iPhone”:

…We priced it at $2.99 on the App store (we don’t expect it to become the Next Big Thing, but hoped to recoup our costs — such as server charges and Apple’s annual $99 developer fee), released the source on our web page, then enthusiastically tracked down every member of the original community we could find to let them know of the hoped-for renaissance. Which is where things got muddy. After it hit the App store, one of the original developers of XPilot told us he feels adamantly that we’re betraying the spirit of the GPL by charging for it.

This would be the kind of person that Fake Steve Jobs coined the term ‘freetard’ for. The GPL not only doesn’t mandate a price of nothing, it explicitly allows the charging of whatever fee you see fit for distribution, so long as all source is made available. So nobody serious believes that said original developer has any point. But it does bring up where the real debatable point is, since you can’t recompile on your own phone or redistribute through the App Store without the $99/yr licensing fee by Apple, does that constitute a violation? If you read through the 581 and counting comments, you’ll see every shade of opinion … including a link to the one that we can take as authoritative, I have no doubt: Brett Smith. And who is Brett Smith, you ask? Why, he’s the “Licensing Compliance Officer” for the FSF. Seems that this subject was brough up last year with him over at Linux.com, and here’s the scoop: There is no barrier the FSF sees to GPLv2 compliance. However, GPLv3 is off the table:

…The iPhone Developer Program establishes Apple as the sole provider of iPhone applications. You can choose not to charge for an app you author, but the iTunes Store is the only channel through which it can be delivered to end users and installed. Apple signs the apps it approves with a cryptographic key. Unsigned apps won’t run on the iPhone.

This condition conflicts with section 6 of the GPLv3, the so-called “anti-TiVoization” provision. In particular, it prohibits Apple from distributing a GPLv3-licensed iPhone application without supplying the signing keys necessary to make modified versions of the application run, too.

Thus, you as the developer could attempt to place your code under the GPLv3, but Apple could not distribute it — and since only Apple-signed programs will run, no one else could distribute it either.

The FSF’s Smith says the fact that the author of the program (i.e., you) and the distributor of the binary (i.e., Apple) are unrelated entities makes no difference. “If a program is meant to be installed on a particular User Product, GPLv3 imposes the same requirements about providing Installation Information whether the software is directly installed on the device or conveyed separately.”

Because of the GPL’s viral nature, any app that is derived from other GPLv3 code must be licensed in a way that preserves GPLv3′s code signing requirement. But there are still projects that have chosen to retain earlier licenses, such as GPLv2, and prior versions of the GPL did not include the code signing requirement. Thus you could in theory place your work under GPLv2, as long as it was either entirely original or derived only from code licensed under GPLv2 and earlier…

So there you go, we’ve got that question officially settled then; any program licensed under GPLv2 is cool with the FSF for the App Store, long as you make the source available. Excellent. Soon as we find some free time under the couch or something we will definitely look at picking a project like these to port to the iPhone for the benefit of those who enjoy rooting through code written by their potential contract trolls.

In the meantime, support these fellows’ trailblazing efforts, pick up what all the fuss is about for a mere $1.99!

XPilot

Continue Reading →
1

UI Design Patterns

If you’ve got anything to do with designing iPhone interfaces — on paper or not — do not miss this post over at the new to us but worthwhile looking Flyosity blog about the advantages and disadvantages of different types of conventional iPhone application view organization

These three main interaction concepts correspond to three different types of View Controllers: Navigation Controllers, Tab Bar Controllers, Modal View Controllers and Table View Controllers respectfully. These are the building blocks for crafting iPhone applications.

and designing custom interfaces as well, with several paradigms of each type. Nothing overly surprising, but a nicely crafted overview, and the custom examples chosen are particularly interesting.

h/t: Daring Fireball!

Continue Reading →
1

iPhone Stencil Kit

Now here’s something that we bet you didn’t see coming as an aid to your iPhone UI design: a stainless steel stencil. Yes, the kind that works with paper.

iphonestencil.jpg

Personally, we figure Interface Builder live design is the way to go when trying out interface ideas … but hey, there is a body of opinion out there that believes in paper prototyping, and if you’re one of them, this is for you, indeed. Besides, it just looks cool, doesn’t it now?

h/t: LinkedIn!

Continue Reading →
3
Page 74 of 90 «...5060707273747576...»