Sabtu, 31 Oktober 2009

Lesson from the School of Hard Knocks

If you've got an App in the App Store, or are planning to sell an app there, it might be a good idea to learn from somebody else's mistake.

SmartPhone Comparison

I found this comparison of the current generation of smart phones to be interesting. Droid is shaping up to be a heck of a phone. I don't think it's going to pull a lot of people away from the iPhone, but I think it will do well and will probably be the biggest boost for the Android platform to date.

Are there really 10,000 applications on the Android Market now? I'm somewhat surprised that it's that high. I think even if that number's true (Googling finds me a lot of people regurgitating this same estimate from an unofficial source, but I can't find an authoritative source for the actual number of apps in the store), that comparison doesn't really represent the true differential between the App Store and the Android Market. Not even 1% of the applications in the Android Market have been downloaded over 250,000 times (including free ones!), and less than a quarter of them have even been downloaded even 5,000 times. By App Store standards, almost every app in the Android Market is a failure, including the best selling paid apps. That will change, but it hasn't yet and it's definitely a factor in comparing the phones. The App Store is, to put it simply, far more than 10x better than the Android Market.

My concerns about Droid's battery life don't appear to be true if the numbers in this comparison chart are accurate. Although the standby time for the Droid is noticeably shorter than the iPhone, the talk time is greater by a comparable margin. I'm also wondering if these are manufacturer's claims, or real world results. I'm especially curious to see how the Android's battery holds up when playing games or video on that big, beautiful screen. I really wish I could get my hands on one of these for a few weeks. Actually, at some point, I may buy a developer phone just to try and do a real comparison of the platforms from a developer's perspective and also to see if there are any good procedures for developing apps for both platforms simultaneously. I probably won't do that until I'm sure Android has secured the #2 spot, though, and the Android Market starts showing more commercial potential.

One thing I've heard from a few people, and the videos I've seen seem to support it, is that Droid's use of hardware acceleration is really inconsistent. Certain things like video must be leveraging the GPU to work as well as they do, but many other aspect of the UI don't seem to use it at all, which means things like scrolling or zooming often seem sluggish, at least compared to the experience on the iPhone. It's a subtle thing, but the iPhone's ubiquitous ability to leverage hardware acceleration really is a big deal, and one that's not often mentioned in phone comparisons.

Also, I'm hearing mixed things about multitouch on the Droid. The best I can figure is that it does support multitouch, but doesn't make very extensive use of it. It seems to be at least the case that the default browser doesn't support multi-touch gestures like pinch-zoom, which I would find annoying. If anyone can clarify this for me, I'll be happy to correct the post with the right information.

Other than the bigger screen, the iPhone and Droid are surprisingly comparable. In a way, that's bad, though. I'm not sure that having a higher-resolution screen (which I've heard looks nice, but isn't really noticeable unless you put the screens next to each other) and a higher-megapixel camera is enough. I was kind of hoping that Android would kick the iPhone's ass in a few more categories, because that would be a great motivator for Apple. If the Droid is really trying to be an "iPhone Killer", it won't be enough to be as good as the iPhone. But, the smartphone space is big and growing, and the Droid doesn't have to be an iPhone Killer to succeed. It certainly looks to be better than what Palm is offering, or any of the Windows Mobile devices that are available.

I will admit that Droid does look to be a pretty darn nice piece of hardware. If Motorola were willing to invest some time and resources into making Android's interface more intuitive and less designed-by-committee and also was willing to throw some resources at implementing system-wide use of that big GPU they've got in the phone, they could have a real winner on their hands. They've got the hardware in place to challenge the iPhone, but it looks like they're still falling short on software. Even though they are falling less short than others, Software is still king, and until they get that right, they're going to continue to be bridesmaids, and never the bride.

One row in this chart that I want to niggle with a bit with is the multitasking row. First of all, the iPhone does have muli-tasking. It has a very good preemptive multitasking kernel very similar to the one in our Macs. The ability to use it just isn't exposed to third-party developers through the SDK. And, that's not necessarily a bad thing.

In the early days of the iPhone SDK, I was one of the loudest proponents of adding multitasking and background tasks to the iPhone SDK. There are whole classes of applications that would become possible if Apple did, and that's all I was concerned about as a developer. But, you know what? Now that I've spent twenty months with the SDK and know more about the current state of embedded hardware, I've come to realize Apple was right on this call. The time isn't quite right yet. The tradeoff is such that you are doing most of your customers a disservice if you allow multiple applications to run. I've seen multitasking on the HTC Hero, the Palm Pre, and on a few models of Windows Mobile phones, and having multiple background apps running can really kill your performance and your battery life.

Sure, you can just quit those apps if performance suffers, right. Yeah, if you're reading this blog, sure. But the iPhone isn't a device targeted only or even primarily at tech-savvy people like developer. I'm reminded of when I would sit down at a certain family member's computer and he would have every application he had opened since he last booted his computer. It never occurred to him to quit programs he wasn't using. I suspect that there are more people like this family member than like you and me in the pool of potential customers. On a modern computer with virtual memory, who cares if there's a bunch of unused applications open, since they don't really have much of an impact. But on a phone? It still matters.

At some point in the near future, it will make sense on phones, too. But for now, given the hardware limitations, more people will have a better experience if they don't let developers write background processes or let users have more than one app running at a time. Battery life will be longer in real world use, performance will be better, and there are relatively few applications that can't get by without this ability.

Frankly, I'll be honest. I hope Droid fails for a completely selfish reason. I want to see Verizon get the iPhone. Of all the cell phone companies I've used, they were the least obnoxious and had the best service. If they got the iPhone, I'd go back to them in a heartbeat, even if I had to pay a termination fee to cancel my AT&T contract. At present, I just don't see the Droid betting better by enough to lure me away from the iPhone as either a consumer or a developer.

Ah, enough Saturday night rambling. I've got to go finish Chapter 10 which needs to be finished by the end of the day tomorrow.

iPhone Tech Talk Hamburg

I've heard from a handful of people that the Hamburg Tech Talk acceptance e-mails have started. Good luck to everyone who applied.

Jumat, 30 Oktober 2009

More iPhone 3 Development Mini-Update

Our original belief that a chapter on supporting online play with GameKit would be long turned out to be accurate. The first draft of the online play chapter just knocked the last Core Data chapter off of its pedestal. Clocking in at 56 pages, this chapter goes through the process of creating re-usable objects to listen for network connections and to exchange information with other devices using streams. We also show you how to use Bonjour to find and connect to peers on your local network.

It's been a bear to write, but I think it's good addition to the book. I could be wrong, but I think this will be the most comprehensive step-by-step guide to adding online play to a GameKit application that's available and, frankly, most of the hard work was in writing the two reusable classes that you'll be able to just copy into other projects and use.

Tech Talk London

Sounds like the London Tech Talk World Tour acceptances have started to seep out of Cupertino. That's almost a month before NYC, so it may be a few weeks before the NYC ones start escaping from One Infinite Loop. That's a long time to keep fingers crossed.

Kamis, 29 Oktober 2009

On Private APIs

I'm hearing from a couple of different sources that Apple's App Store reviewers now have some way to scan submitted applications to detect the use of private APIs. I've never been an advocate of using Private APIs, and Dave and I strictly avoid them for the book examples, but I always thought it strange that Apple left to the honor system any use of private APIs that couldn't be easily discerned.

Looks like you need to step more carefully now if you have used any private framework APIs.

I know this step will annoy some developers, but in the long run, it's for the best. Private APIs add fragility to an application, and they also discourage people from submitting enhancement requests, which are how Apple gauges whether a currently private API should be made public.

Derek Jeter Real Baseball

iTunes Link

Derek Jeter Real Baseball is a baseball game by Gameloft. $0.99

[A modified post from TheAppEra]

This game is the latest in Gameloft's Real Sports series, this time featuring one of the best known baseballer's today, Derek Jeter. Having a big name like Jeter on their game, I was hoping for actual MLB teams and players

Sadly, they haven't been able to get the rights to the names (MLB World Series 2009 is the only game to date with the rights to the teams, no players). Go Yankees? Or does this game tank?

With no MLB teams to convince you to buy this game what does Gameloft put on the plate to convince you to buy the game exactly? What about some quite realistic graphics and a baseball experience that is more true to the actual game than anything else on the App Store.

This game is fun to play, with easy to use controls that look great in one of the awesome looking baseball stadiums. If you have had enough with playing the addictive arcade baseball games like Baseball Superstars 2010 and Homerun Race 3D and want a real baseball experience, this is certainly the perfect game for you!

As I said before the graphics in this game are freaking sweet! This is by far the most realistic sports game in Gameloft's list and that's saying a lot when they have games like Real Soccer 2010 and NFL 2010.

The characters in this game look so real and detailed that at times it's almost like you are watching the real thing. This game has got everything in the game right down to the crinkles in the players outfits. The players are very close if not better to the footballers we see in Electronic Art's Madden 10. That's how impressive they are.

The animation is quite smooth for a game with graphics as good as they are. I encountered hardly any lag and the game ran smoothly if you had reset your iDevice within the last day or so. The fielding, pitching and batting animations all replicated real baseball extremely well and also managed to keep up with the pace of true baseball. This isn't something other games have been able to do so far and it's great to see someone 'get it right'.

Derek Jeter Real Baseball uses controls similar to MLB WS 2009 but they have been slightly improved to make the game easier. When batting, all you have to do is swing the bat by tapping on the screen, without the need to aim at the ball. This is a smart move on Gameloft's behalf because the ball is coming a lot faster than any other baseball games.

Pitching is pretty standard with it involving selecting a type of pitch, tilting your device and tapping to select that spot of the pitch. Next comes up to power meters that require you to try and stop it at the required spot to get perfect power and accuracy. It takes a bit of practice but you can generally get at least perfect accuracy all the time.

For the first time you can control fielding. This basically lets you run to pick up the ball and decide what base to throw it to. While it's not all that spectacular it adds for a bit more excitement and action in the game.

For those who have absolutely no idea how to play baseball, the aim is to get more runs than your opponent in 9 innings. In Derek Jeter however, we can be impatient little gamers and play with either 3, 6 0r 9 innings in a game. There are a few games modes to choose from including quick play, season mode, playoffs and home run contest. Again you can play these in a variety of difficulty modes with easy, medium or hard.

Quick Play lets you choose a team to play with and against and is for fun. This probably won't be used much as you are better off playing Season mode. This allows you to play a number of different games in a season to hopefully win your way to the playoffs. You can choose any team to play out of the made up teams and players (Excluding Derek Jeter playing for New York of course). Lastly is the Home Run Contest which gives you three rounds to get as many home runs as possible before getting out 10 times. This is alright but gets a bit boring and dry to the end of the 3rd round. Winning it gives you a sweet trophy however.

The game is incredibly good at acting like a real baseball match. The pitching is fast paced and was a real shock when I first played the game, as all other games I have played have quite a slow pitch. This makes for more quick decisions on whether to hit or miss and makes the game much more exciting. Even on easy I found batting a nice challenge. Pitching is fairly simple but depicts a real baseball match yet again very well. Even small detail like the ball being thrown back to the pitcher is put into the game.

Really, this is the baseballers game. Those purists who want the true simulation experience will love this game to bits, providing everything I can think of in a baseball game. It is a shame that they couldn't get the naming rights to the game but the game content makes up for it. Gameloft have certainly hit a winner with this game, and I don't see how it can't be a very successful game.

Derek Jeter Real Baseball easily commands top spot in the category of baseball games, especially simulation games. For $4.99 (insanely priced at) $0.99, I find this game to be a great pick up and a well earned change from the arcade baseball games we are used to seeing. Baseball and sport fans in general won't be disappointed with this game. Seriously, just pick this up and get a homer already.

Gameplay- 9/10
Graphics- 10/10
Sound- 7.5/10
Overall- 8.5/10


I would recommend this game if you enjoyed- MLB World Series 2009

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Pro Surfing Wildcard

Thanks- iPhone_Reviews

Rabu, 28 Oktober 2009

Unity Indie Now Free

The 3D game-making toolset called Unity is now available for free to independent developers who gross less than $100k on products made with the tools. This is an interesting move on the part of Unity3D. I haven't used the tool myself, but I've heard mostly good things about it. Now that it's free for indie use, there's no excuse for not checking it out.

DevDays

If you want to see some interesting chatter, take a look at the Dev Days backchannel on Twitter. It's very amusing. There's lots of ignorant hyperbole, including claims that Apple is the most evil thing on the planet because they chose to use Objective-C along with the typical complaints that it's not what they're used to, so it's bad, or ugly.

There's also a fair amount of positive chatter as well. It's interesting to see just how different people's opinions can be.

Most of the negative comments are just people expressing their honest (though sometimes ignorant or ill-informed) opinions, but some are just downright snarky as well as being ignorant.

I know most of my readers know this, but Objective-C has a garbage collector. A really, really good garbage collector. Apple chose not to use it for the iPhone SDK (yet) because the iPhone is an embedded device with processor and memory constraints. It was felt that the benefit to the programmer of not having to do some basic memory management was simply not worth the overhead cost. Unlike languages like Java or C#, we have the flexibility to do memory management manually when there's a performance reason to do so.

There's a reason why GC didn't become popular earlier than it did. On slower, single-core machines (especially ones with limited memory or without virtual memory), the overhead of GC is non-trivial. Discarding a technique because it's no longer popular is idiotic. Discarding it because it's no longer valuable makes sense, but understanding memory management always has value, and in this case, using it very much has value.

Droid Looks Nice

Here's a breif article on Droid with some nice pictures. The keyboard doesn't appeal to me, but to people who want a physical keyboard, this should have a lot of appeal, since they've put a decent-size keyboard on a phone that's almost as thin as the iPhone. I'd really like to check one of these out. I honestly do not think it's an iPhone Killer. To be that, the Android 2.0 OS would have to take a quantum leap forward in usability. It wouldn't be enough to become as-good or even a little better than the iPhone. To become an iPhone killer, a phone has to be significantly better than the iPhone. On the hardware side, though, there's some stuff that looks great on paper.

The screen has a much higher resolution than existing iPhones at 854x480 pixels. I'm curious about this item, though. It's one of those things that we geeks like to salivate over. Look at all those extra pixels! But, I wonder how much of a difference that will make to the end user and what the tradeoff will be. That's a very high PPI. It might be one of those things where they've pumped up the resolution to have a better spec for advertising purposes, but that having the extra resolution doesn't offer much real benefit to the user.

Plus, it seems like it would have to be more of a drain on the battery than a lower-resolution screen. That's an awful lot more pixels to push (roughly 300% of the iPhone), which means much more work for the GPU, which also means a drain on the battery. The iPhone's 320x480 screen already has a higher PPI than most computer screens, so I'm curious if the higher-resolution screen is really a good idea in practice, or if it's just geek-pr0n for people who get off on having better specs than their neighbor, sort of like the MHz processor wars a few years back when Intel started increasing clock speed by reducing the amount of work done per cycle because the clock speed had become the main marketing point for processors.

I'm not saying that's the case. I don't have access to a Droid so don't have the ability to form an opinion of the Droid. This is all just conjecture at this point. I'm curious, though: Do most people's eyes need significantly more than 150 points per inch, when each point is capable of displaying a range of millions of colors.

If I had to predict, I'd guess that the difference as far as the end-user is concerned will be very little. Fonts and images will be drawn a tiny bit smoother. But, I also predict that it will have an impact on battery life and game performance because there are so many more pixels to push.

But I could definitely be wrong. I would actually love to be wrong this time. If they've really managed to make a significantly better screen without sacrificing battery life or performance, it would be a truly awesome thing, especially if they can combine it with a version of Android that, to the end-user, is nearly as good as the iPhone. I can't think of anything that would push Apple more than having someone nipping at their heels with something that is truly better than the iPhone in some respects and as good (or nearly so) in all others. My fear, however, is that this resolution touting is just another case of trying to compete with the iPhone based on a feature list or spec sheets. If you try to compete on either of those, it shows that you completely fail to grasp what it is that makes the iPhone so popular and indicates that you aren't yet capable of producing an iPhone competitor, let alone an iPhone killer.

I have my fingers crossed that the Droid will live up to the hype, but I'm not betting any money on it.

More iPhone 3 Development Update

The writing of More iPhone 3 Development is starting to move faster now, at least in terms of the number of pages we're churning out. It's not going as fast as we'd like, and nowhere near as fast as Apress would like, unfortunately, but it is going faster. The good news is that we're really happy with what we've written so far. More iPhone 3 Development is not just more of what was in Beginning iPhone 3 Development. We have a much greater focus in this book on application design and on writing code for maximum reuse. Many of the objects we write can be used unmodified in your own applications. We assume that the reader has done some development and is ready to take things to another level.

We're just finishing up the networked applications chapters. Our original plan was to just cover GameKit networking over Bluetooth, which is relatively straightforward since Apple provides high-level objects that handle all the gnarley aspects for you. We were originally not going to cover online play over regular network connections. Our original thinking was that because there's no high-level objects yet for sending and receiving over the network that are suitable to network play, that to do an online play chapter well would require a really long chapter. Long both in terms of number of pages, and in terms of how long it would take us to write, and we didn't feel like we could afford another long chapter in light of our schedule.

To be perfectly honest, I had hoped that GameKit would add support for online play and then the whole thing would become a moot point since the GameKit chapter would be all you needed. Apple may still add that functionality to GameKit at some point (there are certainly hints in GameKit), but they haven't yet, and frankly, there just isn't a good place to go and find out how to do online play. All the information is out there, but nobody's put all the steps together in a single, easy, comprehensive place, at least as far as I've been able to find.

So, after some back and forth discussions with Dave, we came to the conclusion that we needed to cover online play in addition to the straight GameKit chapter in our original Table of Contents. We decided to do it as a follow-on chapter to the GameKit chapter. We take the game that we created in the GameKit chapter and add online play to it. We show how to use Bonjour to let the user find other peers (pretty much the same way GameKit does over Bluetooth) and show how to connect to them and exchange data in a similar manner to GameKit so we don't have to substantially rewrite the application's logic. The use of Bonjour limits play to opponents on the same network subnet (basically, phones connected to the same router or WiFi base station), but the techniques are the same for play over the internet, and we're going to have a sidebar that shows how to connect to remote machines based on a DNS name or IP number and port. The other thing this offers over GameKit is that the code can be used on a Mac, so you can write code that lets an application on a Mac talk to one on an iPhone, which opens up a whole slew of possibilities.

As with the Core Data chapters, our focus has been on writing code generically to maximize reuse, and I think we've done a good job as far as the online play stuff is concerned. We've created a class that works very similarly to GameKit's GKSession class. You pass it NSData instances to send, and it takes care of sending and receiving the data, re-assembling the packets, and making sure its delegate receives the data in the same order it was sent in. You should be able to just drop this class (along with another supporting class) into your other projects and use them as-is, making it relatively easy to implement network play. To add online play to an existing GameKit app with this should also be relatively trivial since that's what we do in the chapter.

For those who have asked what fruit will be on the new book, it'll be a blood orange.

I don't know if the cover to the left is final, but it's what is on Amazon right now, so I figure it's okay to share. Until it's approved, it definitely could change, but this is the cover image you'll see if you pull it up on Amazon. Note that the description on Amazon definitely isn't final, either.

Preview: Cliffed!



The second of IUGO's Triple Threat is a game called Cliffed, which I thought was a sequel to Shaky Summit but it's a totally new concept. Check it out below!

Challenge your friends to the most addictive race to the bottom! IUGO presents its latest sensation in casual gaming with this frantic 2D scrolling racer. WARNING: This game will get your heart and fingers racing!

Features:

10 unique and playful characters to choose from

Pick up and play! Great for all ages

Endless game play

Online multiplayer! Race up to 8 players in real time over 3G and wireless networks

Local and global leaderboards

IUGO’s new VIP program: Tell your friends, earn points and unlock an exclusive mystery character sooner

Stylized, clean graphics

IUGO’s signature quality and polish






Preview: Implode!



And the last game of IUGO's Triple Threat is a physics based game that reminds me of iBlast Moki. Looks like fun and a great challenge. Check it out below!

This game is a blast! You are tasked to carefully plant limited dynamite bundles in order to demo obsolete structures. Sounds easy enough, right? WRONG! Implode! is a classic “easy to learn, hard to master” casual game that will pull you in and won’t let go. Features include:

Features:

60 dynamite levels

Reactive UI, touch and drag control options

Fun chalkboard theme and clean graphics

Two different types of bombs (traditional bombs and blast bombs)

Varying structure shapes for ongoing challenge

Submit score online (online score is the sum of all levels’ high scores)

Grading system for high scores adding replayability to each level

3 Difficulties; Casual, Veteran, and Expert

In-level help system: Learn as you play!

IUGO VIP: Sandbox cheat gives you more bombs and you never fail! (high scores disabled with this feature)

Watch buildings tumble with real physics!






Preview: Zombie Attack- Second Wave


Boom! IUGO has come with some juicy information about a Triple Threat of Games (I suppose a foursome if you included A.D.D) that are all pending review with Apple. Check out what they have in store for the coming weeks. Starting with a SCARE!

Just when you thought it was safe…ZA! is back! Lovers of zombies and tower defense-style games combined have a second chance to tear into more zombies with more weapons and in more locations than ever before.

IUGO built upon what you loved best about the original Zombie Attack! game making it bigger, better and bloodier! Your mission: play as a survivor from the ultimate Zombie Apocalypse, protect your shack and stay alive. Kill zombies, earn points and cash to upgrade your weapons and bolster your fire power. Easy tilt and touch-screen controls make ZA! 2 an instant iPhone-exclusive favorite.

Features:

7 turrets (3 new, including the Pulsewave)

New upgrades to super turrets

4 maps of varying sizes including Backyard and Trailer Park

Hordes of challenges, 5 for each map

6 zombie types (4 new, including the Hound and Cheerleader)

Instantaneous save when quitting the app

Online high scores list for each map, local lists for challenges and personal records

Automatic iPod music support (Just play your music and start the game)

3.0 USERS!! Additional iPod music playback option

IUGO high-quality and polish






Senin, 26 Oktober 2009

Two More iPhone Boot Camp Workshops

I'll be teaching the iPhone Boot Camp in New York City again on December 5-7. Like last time, I'll be teaching one half of a six-day workshop, with Steve Kochan doing the other half, so the full dates are December 2-7, and it's downtown, about two blocks from Penn Station, so it's easy to get there. Steve will be doing three days in Objective-C, and I'll follow with three days of iPhone development, and you can choose to take either class separately or both together.

We're also going to do the same format in Chicago on December 11-16, with the iPhone portion of the workshop that I'll be teaching happening on December 14, 15, and 16.

I'll post links to the signup page once I've received them from the iPhone Boot Camp folks.

Jumat, 23 Oktober 2009

NYC Tech Talk Update

If, like me, you've signed up for the New York City Tech Talk, do not fret if you haven't received confirmation yet. According to Apple's Graphics Technologies Evangelist, Allan Schaffer, they haven't processed the NYC ones yet.

Meet Me, NYC, Nov. 5th

On November 5th, I'll be speaking at the Apple Store SoHo in New York City. I'll be speaking at the MetroMac meeting. The meeting is from 6:00 to 9:00, but I won't be speaking for the entire meeting. I believe I've been given roughly between ninety minutes and two hours, though, which is probably longer than anyone should have to listen to me.

I've been given fairly free reign in terms of what I speak about, as long as it's relevant to the audience (iPhone, Mac, etc), however be aware that MetroMac is not a developer group and the audience will run the gamut from consumer to total gearhead. As a result, the talk will not be particularly technical (at least not hardcore developer-type technical). I'll be leaving about twenty minutes to a half hour for questions, and will be happy to answer questions and chat even after the meeting is done.

Although I've been to the Flagship 5th Avenue store a few times, I've never been to the SoHo store, so I'm really looking forward to the talk, though it'll be the first time I'll have given a non-technical presentation in… well, years, so if I make a fool of myself, pretend I didn't, 'kay?

Because of how far away I live and how late the talk is, I'm also in the city for the night, so I could probably be talked into having a beer or three after the meeting with any City Geeks who are allowed to stay out after curfew.

Live in or near NYC? Stop by and say hi.

Marble Madness?

The developer of Stone Loops, a marble game that used to be available in the App Store, has a very discouraging tale to tell in his blog today. Obviously, this is only one side of the story, but it does seem very suspicious to me that MumboJumbo only made these hefty claims of improper and illegal activity to Apple and not in any other forum (like, say, legal proceedings) nor have they leveled the same complaint about the multitude of previously existing platform version of Stone Loops. If Code Minions had really stolen code (among the things alleged from MumboJumbo), it seems like they would be taking more serious action than just complaining to Apple, that is, unless they don't have sufficient evidence to meet the standard of proof anywhere else, but if that's the case, then Apple shouldn't have removed a competitor's application without being shown proof.

I'll refrain from judgment until I hear the other side of the story, but if things are as laid out in Maciej's blog, then Stone Loops should be restored to the App Store immediately. On top of that, Luxor should be pulled from the store just as immediately, as punishment for making unfounded allegations about a competitor. I'd even go so far as to consider pulling MumboJumbo's developer privileges if this is true, and it were my call to make. I have no tolerance for underhanded tactics, especially when resorted to by companies failing to compete on their merits (I'm looking at you, Nokia).

Again, we don't know the whole story now, because neither Luxor nor Apple has addressed Maciej's allegations yet, so let's not pull out the torches and pitch forks just yet. You might want to sharpen the pitch forks, though, just in case. Apple is unlikely to make a public statement about this; it's just not their style, but MumboJumbo, at very least, should respond.

Personally, I think Apple should impose a new policy. When someone makes an allegation of impropriety about a competitor, they should pull both apps until it's resolved. After resolution, the prevailing party's app goes back on the store, the other does not. This may seem harsh, but it would make people think twice about leveling accusations unless they have substantial proof to back up their claims. Of course, this only works if Apple also puts in a mechanism to expedite resolution of conflicts and they may just not want to get into that business. But, as sole gatekeeper of the sole way to sell iPhone applications, they should have expected conflicts of this nature to arise and should be willing to deal with them in a fair and expeditious manner.

SQLitePersistentObjects Lives. It LIVES!

I know that some people were understandably upset and annoyed when I decided to stop new development on SQLitePersistentObjects. Although it's a project that I really enjoyed working on, I just couldn't justify spending more time on it in light of Apple's release of the far more mature Core Data in the iPhone SDK 3.0.

Although I like certain things about the approach I took in SQLitePersistentObjects better than Core Data (like not having a data model file separate from the data model classes), it would have taken literally hundreds of hours (at least, maybe thousands) to get it to the point where the performance and feature set were comparable to what Core Data already has. Even if we got the performance and features to a comparable point, there's just not enough compelling advantages over Core Data to justify spending more time on it. At least, that's the case for me.

But, I must say, that I'm happy to hear that development on SQLitePersistentObjects continues! You can read more here. I wish Andrew the best of luck with this project. It's nice to see the code I abandoned was adopted by new loving parent. So, if you're using SQLitePersistentObjects and have been dreading the move to Core Data, check the new version out.

Kamis, 22 Oktober 2009

Tech Talk World Tour

I didn't blog about this year's iPhone Tech Talk World Tour when it was announced. Many of the locations filled up so fast, it seemed like it would be just a tease to tell people about it when it was too late to actually do anything about it.

If you did sign up, I've gotten word from a handful of people that acceptance e-mails have started to trickle out of Cupertino. I signed up for the NYC Tech Talk, but haven't received word either way yet. Fingers crossed.

Nice One, Microsoft

Microsoft opened their first Apple Store today. Wait, no. What I mean to say is that Microsoft opened their first Microsoft Store. That's the ticket. And it's very unique. I can't even imagine where they got the idea for the layout, decor, uniforms or grand opening welcome line. I also can't fathom where they got their inspiration for opening a boutique-style retail store in the first place.

Hey, Redmond? Need a new tagline? How about?

If it's blatant, it's Microsoft.

or, maybe

We do shameless better.

I think either of those would work well, and both would be accurate and honest. Although, in Microsoft's defense, Apple grand openings never have guys in suits at the end of the welcome line golf clapping. That's original.

Patent Lawsuits: the Last Resort of the Mediocre

Nokia today announced they are suing Apple . Right in the press release, Nokia states that they are suing over patents that cover implementations of standards (GSM, WCDMA, WLAN, UMTS).

WTF? That kind of misses the point of having an open standard in the first place. There's only so much difference between different implementations of the same protocol or standard. Jeebus! The problem with these cases, though, is that the judges are experts in law, but not in technology, so they rarely have the knowledge and/or cojones to issue summary judgment even in cases with no merits. Like this one. So, Nokia will, at very least, cause Apple to spend millions of dollars to defend themselve.

Apple's release of the iPhone pretty much meant I'd never buy another Nokia phone again for myself, but now I will actively avoid their products. I won't recommend them to others and I won't buy them for family members. If this is how they hope to succeed in the future, I hope Nokia dies a quick and painful corporate death.

Rock Band

rock-band-iphone-1

iTunes Link

Rock Band is a music game by Electronic Arts. $9.99

[This is a modified post from TheAppEra]

ROCK BAND is the latest phenomenon to grace the AppStore. We have had many music tapping games in our time, but nothing this HUGE has landed on our palms previously.

$9.99 for 22 songs (around $0.45 per track plus DLC)... is this the complete package we have been waiting for?

I think I can safely say that I have enough experience to review this title, with this being the 13th music tapping game I have on this device. What I was expecting in this game was what I expected from all the other games I have played. That is either notes that coincide with the beat or guitar.

ROCK BAND however takes the complete band experience letting you play songs tapping to different instruments: Guitar, Bass, Drums or even Vocals. I think this is a brilliant idea and love the fact I can play the same song in four totally different ways.

Tap Tap Revenge 3 has the awesome themes for songs while Guitar Rock Tour 2 has the live performance like Guitar Hero. Having no exposure with Rock Band left me not knowing what to expect. What we get is some pretty sweet looking repeated animations of a rock show.

These aren't real and instead seem to be hand drawn animations. These look awesome in my opinion and switch between the rock show experience and the various instruments as they happen in the song.

Since they don't have the most extreme graphics compared to other music games, EA was able to tune this game run extremely smoothly.

I would just have to assume that people reading this have had some exposure with ANY music arcade game on ANY platform. If not, it's really simple: you tap the music beats as they descend from the top of the screen. These beats are usually synchronized with the actual music itself.

There are three main modes: Quick Play (you get to choose your own song right away), World Tour (5 different venues performing a 5 song-set per venue) and Multiplayer mode (rock on with your friends and their devices using Bluetooth connection).

After choosing which mode you'd like to play, the game asks you which song you'd like to play, the instrument you want to use and the difficulty in which that song gets played. After that, you're ready to rock and roll!

Lastly, if you ever get tired of the 22 pre-downloaded and selected songs, more music are available through DLC which runs you $0.99 a pop.

Let me get this out the door and say ROCK BAND DOES NOT SUCK! Most review sites are yapping about EA Mobile not using players' voice for vocal mode. They went on and on about it, but did they ever ask EA why? Without being totally pompous (ha!), we did and here's what they have to say verbatim:

We designed the game to best benefit all potential players. At this time, the iPod touch does not have a microphone built in, so whether being played on the iPhone or iPod touch, on the go or at home, the touch screen vocal interface maximizes the experience overall, allowing users to play Rock Band anywhere and, more importantly, join a multiplayer band regardless of which device they own.

The reasoning makes perfect sense to us, but a future addition of an option of such a mode would be welcomed.

Some other suggestions include: animated loading screens and avoid loading screens as much as possible. Right now even going in and out of pauses transitions with the winged timer. Another would be FULL ONLINE multiplayer of course.

ROCK BAND iPhone is a fantastic game, and our platform should be honored to be graced with such a delight. Though obviously the absence of physical instruments construe the "vision" somehow, this is heck more than a "respectable" job for a portable ROCK BAND. The game screams ROCK BAND from design down to music distortions.

If EA Mobile keeps going at it and maybe (just maybe!) somehow innovates the game with full online MP, the results would be earth shattering...

Gameplay- 9.5/10
Graphics- 9/10
Sound- 10/10
Overall- 9.5/10


I would recommend this game if you enjoyed- Guitar Rock Tour 2

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Derek Jeter: Real Baseball

Thanks- iPhone_Reviews

Selasa, 20 Oktober 2009

Wil Shipley on Internationalization and Localization

Words of wisdom and free code from the Godfather of Cocoa, Wil Shipley. Go read now. Nuff said.

Good Day for Android, Bad Day for Pre

The Palm Pre lost a high profile developer today (Jamie Zawinski, a notable contributor to many open source projects include Mozilla and XEmacs). He took some pretty harsh parting shots on his way out the door.

Having an App Store that's more open than Apple's is one way to compete, but it's not enough. If consumers don't have a good experience with your phone, developers are not going to want to develop for it.

The Nook

For whatever reason, Amazon's Kindle has never really appealed to me. Though I read a fair amount, and am not opposed to the idea of an e-reader, I've just never had any techno-lust for it. It's not because of the DRM, though I'd rather they didn't have it. It's just that it's not that exciting. It's basically a one-trick pony. No matter how thin they make it, or how many books it can hold, it will only every serve the very limited purposes of reading books and doing some light web browsing. Boring. I can do both of those things on my phone, albeit on less than an ideal screen size, or on my laptop.

Today, Barnes & Noble announced their competitor, the Nook. The Nook is based on Android. Now, people who read this blog know that my opinion of Android is that it's not as good as the iPhone in most respects, both from the point of view of a consumer and from the point of view of a developer. Obviously, that's subjective, but it's my honest opinion of where things stand right now.

However, I see the Nook as possibly a game changer for Android, much more so than the much-touted Verizon Droid, which might be a good phone, but it doesn't strike me as a game changer as much as being a not-totally-horrible-like-the-Voyager ersatz iPhone for people unwilling to switch to AT&T. I'm not quite ready to say it IS a game changer, but it definitely could be. It's a book reader that can be more. It's a tablet device that can be programmed. It's bigger than a phone, but still portable. This device, in my opinion, is every so much more techno-lustworthy than the Kindle. It also raises the bar for Android. Here's a whole new audience of devices that will be able to buy Android apps.

Of course, we'll have to see how it actually performs and how people like it. But assuming it delivers on its promises, then I'd say that Android just pulled out a tiny bit from the pack and its odds are looking better. There's a long ways to go in the race, but this could be a turning point. This could be the thing Android needs to achieve critical mass for their App Store, which is the one thing that they absolutely must have if they're ever going to challenge the iPhone's dominance.

I can't wait to see where this goes from here, and I can't wait for Apple to introduce some kind of new iPhone OS device, whether it's a tablet, or something completely new. I don't have any idea what Apple is going to do, but I'm sure they are not going to stand still.

Senin, 19 Oktober 2009

Oh, My. Fiscal Results.

Today, Apple announced their Fiscal 2009 Q4 and boy, what a quarter it was. Funny, it's been a while since I heard someone predict the death of Apple. It's hard to believe just how common a practice that was among pundits only a decade ago.

Apple sold more iPhones and more Macs last quarter than in any previous quarter in history, and they have the largest percentage of the market share they've had since 1994. That's true whether you take the lower Gartner number of 8.8% market share, or the higher IDC number of 9.4%.

Shrek Kart



iTunes Link

Shrek Kart is a racing game by Gameloft. $4.99

[A Modified post from TheAppEra]

Electronic Arts can flaunt its realistic racing games, and Gameloft can whip up trailers of their upcoming racing games. But what we really needed on this platform was a racing game that had something like…

Ogres and talking Donkey’s in it. Funny enough that’s exactly what Shrek Kart is!

Shrek Kart is what I expected from a kart racer from the start, and fills up the gaps I found in Krazy Kart and Crash Bandicoot. I believe the graphics are better than the other games and the gameplay has been set out to have a much longer lasting appeal than the other games. Seeing all other kart games (except Cocoto Kart Online) selling way above Shrek Kart’s opening price, it’s surprising how Shrek Kart comes out on top of all the games.

I found this game very fun and rewarding to play. The game was very smooth and easy to play, even if the racing had a rubberband effect (if you got too far in front and made a mistake you are suddenly caught up to by all other racers).

As I have already said this game will take a long time to complete if you want to unlock all the characters as it involves completing all game modes instead of just the championship mode like most games. While there are better racing games out there I found this one to be very fun and great for more casual play.

Instead of having basic and boring items as the scenery Gameloft has implemented the world of Shrek with well known places such as the Swamp and the streets of Far Far Away. I think this is a great move on their behalf because it makes the game play and look more like a real Shrek game.

There are 10 unique characters from the movie including Shrek, Fiona, Donkey, Gingy, Three Little Pigs, Three Ogre Babies and many more. Each of the characters has their unique kart which looks great. For example Gingy has a kart made out of gingerbread and the Ogre Babies have a pram. These look great and having characters you can recognize and name is a big advantage in selling a game like this.

I found Shrek Kart to be extremely smooth and I encountered no lag or glitches what so ever when racing on a 1st Gen iPod Touch. The only lag I found was when it was previewing the track, which worried me. Luckily though after you watched or skipped the track preview the game was fine for me.

The controls in this game are fairly basic and limited in the amount of customization. The game is auto-accelerate and the options for steering can either be accelerator or touch screen. The accelerator is fine for this game and is very easy to use without having any troubles, unless your a very bad driver of course.

For the more advanced drives you can implement some special driving skills. One of these is knowing to jump when someone has targeted you with a power-up. To do this you tap the screen but I generally tapped like crazy until it stopped… but that didn’t seem to work very well for me. The other groovy skill is drifting around corners by pressing the red button. Drifting for long enough gives you a nice boost of speed at the end. Gameloft has improved drifting HEAPS AND HEAPS since the days of the now very very annoying Asphalt 4 drifting. Hopefully this shows that drifting will be at least manageable in Asphalt 5.

Finally you have special power-ups you can use. Each driver has their unique power-up which is with you all the time but requires 45 seconds to repower after each use. This is activated by tapping a button. The other type of power-up are ones that you collect by running into boxes. These can be used straight away by tapping another button. You can collect another one only if you have no power-up in line to be used.

There are four modes. First up is the tournament mode. In this there are five or so tournaments that require you to get points for finishing races and getting first place overall to win the tournament. There are about 4 locations in each tournament and multiple races which are split into little rounds within the tournament. In this mode you can play through and try to win the championship cup with any driver but you have the progress saved for each driver. What I mean by that is if you finish the first tournament with Shrek you can’t continue onto the second tournament with Donkey. Finishing the tournament with just one character unlocks Fiona.

Next up is a single race where you have to come first in all 13 races with a driver to unlock another character. This can be completed in any difficulty and the only reason I would really use this mode is to practice a track or to unlock the new character.

Next up is what is probably the most difficult mode with the challenge mode. This requires you to finish multiple challenges on each of the 13 race tracks. For example one challenge is to collect so many boxes, one is to avoid boxes and a full on time trial to beat a time. This mode gets a bit dry after a while and probably wont be used again after unlocking the character.

Finally is Arena mode where you try to smash around a circular track blowing up other drivers while avoiding to be hit yourself. This is quite fun but extremely hard as they seem to pick on you quite a bit. Just trying all three arenas unlocks another character. After unlocking all characters you also get a special character, the ghost of Lord Farquad.

Shrek Kart is an extremely strong racing game that performs well on this device. With a smooth race the entire way this is a game you should definitely recommend getting. You are dragged into completing all game modes and will take hours upon hours to complete.

While it doesn’t have the local multiplayer that Cocoto has, it still has WiFi multiplayer. $4.99 is a very respectable price for old Shrek so… Shrek On!

Gameplay- 9/10
Graphics- 9/10
Sound- 8/10
Overall- 8.5/10


I would recommend this game if you enjoyed- Crash Kart

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Rock Band

Thanks- iPhone_Reviews


Jumat, 16 Oktober 2009

Accessorizer 1.5

I've posted about Accessorizer before. It's just been updated to version 1.5, incorporating a new feature that sprang out of a feature request that was made by yours truly. Actually, it was more of an off-hand comment then a feature request, but Kevin Callahan, the brains behind Accessorizer liked the request and jumped on it with gusto.

The new feature? Accessorizer now has the ability to auto-detect classes that are commonly used as outlets and, if you want it to, will add the IBOutlet keyword automatically to the generated property statements. I've been beta testing this new functionality, and works pretty darn well.

If you do any significant amount of Objective-C programming and haven't tried Accessorizer, I'd really suggest giving it a try. In the application I wrote today for More iPhone 3 Development, I'd estimate that Accessorizer saved me at least five minutes of typing (not to mention greatly reduced the chances of mistakes and typos). I typed in only my instance variables, then a few short keystrokes and about twenty seconds later, I had my property declarations complete with IBOutlet keyword where needed, @synthesize declarations, and both NSCoding methods. You don't have to write too many classes for it to pay for itself if you do this for a living. If you're a hobbyist then, in a way, your time is even more valuable.

And if you're not sure how to use it, or why you would use it, check out the Accessorizer videos in the lower right of the home page.

Device Detection Redux

A while back, I posted some code by Max Horáth to detect the device your program was running on. That script dates from the pre-3Gs days, so won't identify that model. I'm not sure if Max has updated his script, but I found this class on Stack Overflow by Jason Goldberg. In addition to adding the more recent hardware, it uses a really efficient approach implemented in relatively few lines of code. I like that a lot.

The one thing I don't like is the way the class is implemented. There's no reason to use instance methods like this and incur the overhead of object creation to. The object has no state, just behavior, so either of these methods could have been written either as C functions or as class methods, thus avoiding the need to create an object and manage its memory. At very least, this class should have been implemented as a singleton.

Anyone who's been reading my blog probably knows where I'm going here. In my ever-so-humble opinion, the best approach for this functionality have been to write it as a category on UIDevice, like so:

UIDevice-Platform.h
#import <Foundation/Foundation.h>

@interface UIDevice (platform)

- (NSString *) platform;
- (NSString *) platformString;

@end

UIDevice-Platform.m
#import "UIDevice-Platform.h"
#include <sys/types.h>
#include <sys/sysctl.h>

@implementation UIDevice (platform)

- (NSString *) platform{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine];
free(machine);
return platform;
}

- (NSString *) platformString{
NSString *platform = [self platform];
if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([platform isEqualToString:@"i386"]) return @"iPhone Simulator";
return platform;
}

- (BOOL)supportsBluetoothNetworking {
NSString *platform = [self platform];
return !([platform isEqualToString:@"iPhone1,1"] || platform isEqualToString:@"iPod1,1"]);
}

@end

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Lady Gaga, Salman Khan