MASH and MASH Lite Status Update

Categories: iPhone Objective-C

At the end of January I released MASH for the iPhone and iPod touch, at an introductory price of 99 cents (as of this writing, MASH is on sale in the App Store for 99 cents, but will go back to its regular price of $1.99 in the next week). To date MASH has been met with very good reception, considering I conducted very little marketing, as it were, and no paid advertising - I predominantly used social media outlets like Facebook and Twitter to get the word out.

The real surprise, though, is the response from users for MASH Lite, the free version of the app, available on the App Store for the last week and a half. In that time it rose quickly to the top 20 and now the top 10 of the Kids game and Word game categories, and has had very favorable four and five star reviews in several countries. It’s been downloaded about 11,000 times so far. The app is running sparse advertisements, and this weekend (Saturday and Sunday) had over 50,000 ad impressions.

Additionally, I just discovered that I received my first payment from Apple for the first week MASH was available (the last week in January). Although I won’t disclose the amount, I will say that it took a little under a month for the transfer to be processed and go through.

If you own an iPhone or iPod touch, I really recommend checking it out. More information is on my website, Magnate Interactive.

Safari 4 Beta Available

Categories: Google Chrome WebKit

image

Hot off the browser press, Safari 4 Beta just released this morning (available to download here). First impressions: love the intro animation, almost like starting up an install of Mac OS X for the first time - I wonder if that’s hinting at the movement toward browsers playing a more central role in acting as your “operating system”?

image

I can’t help but wonder if Apple is purposefully taking a page from Google by putting Tabs at the top of the interface, or by having a page preview based view of your history (although in a slightly cooler, curved 3D wall than Chrome or Opera’s flat grid). Apple copying Google for UI design? Blasphemy!

The Coverflow style view when searching your browser history is also a nice touch. However, something I don’t like is that form elements and the search field no longer draw the glowing blue Aqua-style focus “rectangle”. This is probably in preparation for the Marble theme said to be coming in Snow Leopard.

Worth noting: On OS X 10.5, Safari 4 seems to have some trouble with Spaces, and switching to the appropriate space when in Top Sites view. It also closes the whole window when hitting Command+W in Top Sites view, regardless of how many other tabs you have open in that window.

No comments yet.

What I learned while developing for the iPhone

Categories: Adobe Flex AS2 AS3 iPhone Objective-C XCode

Now that MASH, my first game for the iPhone and iPod touch, has been in the App Store awhile (more info here: http://magnatemobile.com/apps/mash), I thought I’d take a moment to jot down some of my thoughts on the experience and what I learned, not having done Cocoa or Mac development previously.

I came to Objective-C having had the bulk of my programming experience using scripting languages like ActionScript (AS2 and AS3), JavaScript, and PHP, as well as a fair amount of C# and Java. The transition to C style syntax and methodologies wasn’t a giant leap, but there was definitely a learning curve involved. These are some of the things I learned.

Coming from Eclipse-based IDEs, I was used to having the file and folder structure of my project in the editor match up to the structure I’d see in Finder (or Explorer if I was on Windows) - in XCode, though, you can arrange and re-arrange the files and groups within the editor without actually changing the location of the corresponding item in the filesystem. I’m still not sure if I like this - there are times when I want to re-arrange files (especially the location of graphics) in my project using Finder’s column view instead of XCode’s list view.

Know when to retain and when to release. Releasing an object that you needed to keep will cause your program to crash. Seems like a no-brainer, but not understanding why my app crashed when I would invoke a “Start Over” method I created had caused me to spin my wheels for about a half hour. Additionally, take care not to “over-release” an object - the console will spit out malloc warnings that aren’t self-evident as to their cause.

When it comes to creating an app from the get-go with multiple languages in mind, creating a Strings file first and then using NSLocalizedStringFromTable is one way to do localized strings, but isn’t necessarily the conventional way. After having implemented localized strings that way first, I later learned that XCode has a process for writing your code first with the strings you intend to use, and then allowing the compiler to handle creation of the necessary files.

XCode does a very nice job with HeaderDoc documentation. It’s much easier to use than Flex Builder and ASDoc, in my experience. HeaderDoc doesn’t try to document every class in your project like ASDoc does by default, just those you tell it to.

You may have heard horror stories about long waiting times and applications rejected for seemingly trivial or vague reasons - while that hasn’t been my experience, I will say that the process for submitting an application is less than ideal. It takes a lot of time, forms ask for information in a strange order (this isn’t exactly the process, but on some form pages it’s a little like: enter the information about your app, then choose graphics to upload; after clicking to upload the graphics and the page refreshes, the previously entered form information is wiped out and you have to enter it again - frustrating!). Submission to approval time for my app and updates have been fairly quick so far, less than a week from “In Review” to “Ready for Sale”, so I don’t think I can complain about long waits, although the anticipation of not knowing if your app will be approved or rejected is bad enough.

Overall, I’ve enjoyed the process of learning to develop for the iPhone. I’d imagine the learning curve is probably steepest for those without previous object-oriented development experience, but for anyone with a good idea and a willingness to learn (and shell out for tooling and a developer certificate), I’d say the effort has been worth it.

PhoneGap - Write native apps for iPhone, Android, and Blackberry using JavaScript

Categories: Adobe AIR Frameworks iPhone JavaScript Objective-C RIA WebKit

From the site (http://www.phonegap.com/):

“PhoneGap is a development tool that allows web developers to take advantage of the core features in the iPhone, Android, and Blackberry SDK using JavaScript.”

PhoneGap essentially wraps a web view (WebKit on the iPhone) in a native app container, giving the web application access to core device APIs. This should go over well with the Adobe AIR crowd that’s already been sold on the idea of repurposing their web-based apps as “native” desktop apps, who are also interested in bringing that software to various mobile devices.

What will the programs created in this manner be called? Rich Internet Applications? Native Web Applications?

I’m a big proponent of web-based applications, but only inasmuch as they allow fairly ubiquitous access to data across devices. My biggest beef with web apps, though, is that they are much less responsive than native applications. Alright, let me rephrase that - a web application will always be inherently slower than a native app. I/O for the data model aside, a web app also has to contend with the fact that both its data and the presentation logic for the data must trickle over the wire or over the air (and then be rendered) before anything useful can be done with it. Native applications simply do not have to deal with the presentation waiting game.

So the scenario I see PhoneGap being used for is something like: provide as much presentation logic/code as possible in a local data store that gets installed with the app, and only download data for the user when necessary. Cache things that won’t change often. Use device APIs for storing user data locally and for things like geo location.

I’m excited about the prospects of using JavaScript (something fairly easy to pick up) to create “native” web apps for mobile devices. But I’m also aware that the speed, feel, and device integration of a true native app (especially if it gets its data from the web) will beat web applications in those same criteria for the foreseeable future.

Adobe AIR 1.5 for Linux

Categories: Adobe AIR Eclipse Software

One of the engineers on my team prefers to use Linux for development (specifically writing Java code in Eclipse), but has been a bit dissatisfied with Adobe’s release lag in pushing out Flash run-times like AIR for Linux (Ubuntu in his case).

A month after the Adobe AIR 1.5 release on the major platforms (Windows and OS X), Adobe has released AIR 1.5 for Linux, which covers the Ubuntu, Fedora, and openSUSE brews. Even 64-bit Linux users can join in on the fun (http://kb.adobe.com/selfservice/viewContent.do?externalId=kb408084&sliceId=1).

More detail is available on the Adobe AIR blog: http://blogs.adobe.com/air/2008/12/adobe_air_15_now_available_for.html

No comments yet.

Adobe Flex 3 Language Reference Updated for 3.2

Categories:

Adobe has updated the Flex 3 Language Reference for Flex 3.2, which covers the new API updates for Flash Player 10 compatibility.

http://livedocs.adobe.com/flex/3/langref/index.html

No comments yet.

FI Launches Kontain Alpha

Categories: ActionScript Adobe Flex AS3 Cool Sites Flash RIA

image

Kontain, the Flash-based blogging and media sharing site from agency powerhouse FI launched its alpha version on November 13th. The evolution of FI’s Propod rich media blogging system, Kontain is a promising and beautifully designed site. The clean design is mildly reminscent of Virb, with a pinch of (new) Facebook thrown in for good measure.

FI is one of few firms that can do full Flash sites very well. However, understanding that it is still an alpha, the site really ought to provide alternate content for computers without Flash installed. And while the site does attempt to redirect to a slimmed down version of the site for iPhone/mobile users, on my iPhone sending to http://i.kontain.com/ failed because of “too many redirects”.

It remains to be seen if the lack of alternate content for search engines will be detrimental (although FI may have plans to provide alternate content in a future release), or if Google’s advancements towards Flash content discover-ability will overcome this sticking point.

image

As a funny side note, the back-end for Kontain appears to be running JBoss/Apache on a ColecoVision (operating at 3.58 MHz).

No comments yet.

Even Richer Internet Apps with Adobe AIR 1.5

Categories: ActionScript Adobe AIR Adobe Flex AS3 Flash WebKit

Adobe AIR logo

Adobe has just released Adobe AIR 1.5. Now you can take advantage of great features like Pixel Bender for custom filters and fills, the new 3D effects, dynamic video streaming (based on available bandwidth), and the Speex audio codec, aimed at providing high-quality audio delivery at lower bandwidth.

In addition to the existing Encrypted Local Store functionality in earlier versions of AIR, Adobe has now added encrypted local databases, which will make it easier to encrypt and locally persist large data sets.

Also, as a follow up to an earlier post on the use of SquirrelFish in AIR, Adobe has confirmed that this is indeed the case. Adobe AIR 1.5 has a WebKit update that incorporates SquirrelFish - Adobe claims that HTML-based AIR applications can run as much as 35% faster.

Download version 1.5 of Adobe AIR.

Developer and User release notes are available as PDF.

On a related note regarding the Flex Builder 3.0.2 update that takes advantage of the new AIR runtime: be sure to change the app.xml XML namespace to use 1.5 instead of 1.0, as noted on this blog - http://www.bobsgear.com/display/ts/Can%27t+Launch+Air+Apps+After+Upgrading+from+Flex+Builder+3.01+to+Flex+Builder+3.02 I had trouble with my application until I found this post.

No comments yet.

Mixed emotions: SVG versus FXG

Categories: Adobe Flex Degrafa Standards Thermo

Adobe has released a new vector graphics specification for Flex called FXG (Flash XML Graphics or FleX Graphics, ostensibly), an XML document format that should make interchange of vector artwork between applications and loading/parsing of vector art at compile-time or run-time more seamless. FXG has provisions for creating various primitives, symbols, and text objects, as well as constructs for transforming and applying bitmap effects to vector data. In a manner similar to Degrafa, FXG documents could conceivably be used for more than simple artwork: they could also be used to define vector-based skin elements for user interfaces. Additionally, vastly improved text handling in Flash Player 10 allows for higher-fidelity skewed and rotated text, along with text on a path, meaning exporting from an application like Adobe Illustrator should produce great looking, highly portable documents.

According to the FXG 1.0 specification, an initial effort was made to use the more standard SVG (Scalable Vector Graphics) specification, but the development team found that mapping SVG to Flex classes was going to be more trouble than it was worth in the long run. Mark Anders has a pretty reasonable explanation on this here: http://www.andersblog.com/archives/2008/09/flash_on_the_be.html

I can’t help but ask, though...really? Seeing as Adobe essentially led the charge to ratify the SVG spec as a standard, could it not have been augmented through its built-in extensibility facilities (see SVG Extensions) to accommodate the additions required for Flex? Mark’s explanation is reasonable, to be sure, but it seems like the team gave up on something that could have helped to further cement and promote the use of SVG. A project I’m working on, in particular, would have benefited massively from the ability to use SVG output from Illustrator natively.

Pushing multiple specs that essentially do the same thing only serves to muddy the water, and reminds me of another large software firm, but I digress. Knowing Adobe’s track record, I’m sure there will be good interchange functionality for FXG between various Creative Suite products and applications like Thermo. However, considering SVG already has acceptance as a standard, with a plethora of third-party tools for transforming and working with it, my excitement on the prospects of FXG are mixed at best.

No comments yet.

Google Android: iPhone’s Only Real Competition (For Now)

Categories: Google Android iPhone Java

image

T-Mobile debuted the first Google Android phone, the HTC G1, at a press conference today, due out October 13 October 22. It will be available at the iPhone-competitive price of $179 with 2-year contract. On-demand coverage of the event is available here: http://announcement.t-mobileg1.com/

IGN has a brief overview on Android, its history, and its benefits. http://gear.ign.com/articles/899/899748p1.html

One of the most interesting parts of the Android platform is the Android Marketplace (which, unfortunately, is not run by Jawas). Designed to be a more open version of the iPhone App Store, Android applications are written in Java, and the Marketplace is open to any developer interested (Apple limits developer access through a fee/approval process, and screens application submissions, sometimes to the chagrin of said would-be developers).

Gizmodo has a list of Android’s most exciting apps: http://gizmodo.com/5053280/androids-10-most-exciting-apps
and there is a list of Android Developer Challenge winners here: http://code.google.com/android/adc_gallery/

While openness is appealing, the number of possible handset configurations has the potential of being a huge headache. Developing for the idiosyncrasies, screen orientations, hardware inputs, and environment specifications of dozens or perhaps hundreds of devices versus developing for a single standardized platform (in the iPhone) could mean the difference between releasing in a few months and in more than a year. It remains to be seen if a system that does not pre-qualify applications will be a good thing, or if it will just end up as a flea market of crapware.

And here’s a collection of Google Android desktop wallpapers so you can sport your Android love.

More entries in the archive