Apps vs. the Web

by Craig Hockenberry

31 Reader Comments

Back to the Article
  1. One small and picky detail—Objective-C isn’t really a descendent of C, it’s a ‘strict superset’ of C. In other words, ObjC is C with objects added on. The object syntax is actually based on a language called Smalltalk.

    Copy & paste the code below to embed this comment.
  2. Excellent article, it helped a lot with my decision. I just had to find’n’replace every apple and iphone with something more relevant, that is… desktop. I have no idea why the article is so Apple centric, and there’s no explanation for that in the text.

    Just to make numbers clear: there is more Android phone out there than iPhones, and far more desktops/net/notebooks. So why the focus on web vs. iPhone?

    I do follow ALA for years and it gave me so much, but this is first time I see such a consumer oriented (iPhone) focus.

    Copy & paste the code below to embed this comment.
  3. I know JS well, but I can do nothing with Objective-C. I can’t even understand the ObjC syntax.

    They have different typing, and a lot of different concepts. There is no prototypes in ObjC (but there is something called “categories”), and no messages and protocols in JS. There is also different name binding rules and many other stuff.

    Example in “Going native” section involves two different concepts: dynamic/static typing and dot-accessors/messages. It’s introduced like similar, but it’s not.

    Copy & paste the code below to embed this comment.
  4. Thank you for the article. Still I’m not sure wether I should develop my “muscle learning app” strictly on the web or as an iPhone/Pad App.

    Copy & paste the code below to embed this comment.
  5. @scriptin You’re absolutely right. There are major differences in the implementations of JavaScript and Objective-C.

    My point was the languages are conceptually similar: You’re using an “uppercase” operation on a string object. From my experience, many developers get lost in the syntactic differences (e.g. square brackets) and make the transition to the new language more difficult than necessary.

    Copy & paste the code below to embed this comment.
  6. Without any doubt, device and context specific web and native apps are powerful. However, in my opinion, you still need to optimize the interface as much as possible independent from the device and capabilities of the user as well.

    Copy & paste the code below to embed this comment.
  7. Interesting article. Not sure I quite agree with the notion that JS is similar to Objective-C. You have to deal with memory management for a start.

    Also, correct me if I’m wrong but you have a syntax error in your Objective-C example. It should read…

    BOOL beAwesome = YES;
    NSString *myString = @“chocklock”;
    if (beAwesome) {
      myString = [myString uppercaseString];
    }

    (Note the @ when assigning an NSString value)

    Cheers

    Chris

    Copy & paste the code below to embed this comment.
  8. chrismwaite Yep, there should be an in the front of that string literal. The ALA production crew has been notified and will get that fixed up. Thanks!

    Copy & paste the code below to embed this comment.
  9. I want my 10 minutes back.

    This article fails because it omits the obvious one single reason for iPhone App versus Web – everything has to do with the phone usability. The only paragraph that mentions usability even has the nerve to give code examples. Excuse me – users do not touch or care about tags. They might see the result, but the usability issue of iphone App versus web has to do with this: “App“s are presented in singular, graphical, isolated, low-friction one-click actions, where-as web pages require more intensive interaction. This is the one, first and foremost reason why the two dimensions battle on the iPhone and why the iPhone and App concept is succesful in the first place.

    A List Apart – you can do better. I thought this blog was meant for user experience professionals.

    Copy & paste the code below to embed this comment.
  10. @thomasg It’s going to take more than 10 minutes to cover mobile usability issues: this article is just an overview that touches on many subjects. I summarized it as:

    “Some of the motivation is purely selfish: Native applications give the developer more control over the mobile environment. The other incentive is altruistic: a native app is generally easier for the rest of us to use.”

    If you’re looking for information regarding this topic, I’d suggest the following books:

    “Programming the iPhone User Experience” by Toby Joe Boudreux
    “Tapworthy: Designing Great iPhone Apps” by Josh Clark
    “iPhone User Interface Design Projects” (various authors.)

    (Taken from user interface resources in the Appendix of my own book.)

    Copy & paste the code below to embed this comment.
  11. I’m getting flashbacks of the old internet all over again while reading this.
    I don’t think it’s about Iphone apps VS Mobile websites. There’s much more players than that, we have iphone, android, nokia, microsoft, each with its own platform.
    So, if you prefer to develop an application, you have to make one for each (large) platform.
    When developing a decent web application, you only need one implementation.
    So, i think you should only develop applications when the phones integration adds real value to the app, otherwise, go with the website;

    Copy & paste the code below to embed this comment.
  12. Hi Craig,

    It took me about 10 minutes to read your article. That’s a pretty long read to omit the obvious and important fact: The main factor to distingiush iPhone App popularity versus iPhone web sites is mainly a usability issue. It doesn’t take 10 minutes to explain.

    Maybe I missed the point in your article, buried between the lines of code examples.

    Thanks for the book references – I could direct you to great books on usability too. It’s really important on an iPhone.

    Copy & paste the code below to embed this comment.
  13. An Apple guy in Norway said during a meeting that he felt too few knew about web-apps. As a content producer I can say for sure its much better to be able to produce with html/css/script than C++ because its easy and some of the work may be ready from other webprojects.
    @thomasg I guess its more a question on how you use C or HTML than which of them you choose. Isent html/css/jscript capable of doing usable apps on iPhone/iPad.?

    Copy & paste the code below to embed this comment.
  14. I published last Sunday a designed-for-iOS web app that I had built over the weekend. I’m a web designer by trade, and not at all versed in ObjC, so using the web as a platform was the obvious choice.

    Though it’s only been out for three days, I’ve already pushed out 2 proper updates including minor feature requests and some (one major) bug fixes. I’ve also made minor tweaks over the last couple of days. There’s no user interaction required for the updates – they are applied on next launch, and using HTML5 Offline Storage, are only actually applied when they exist. I think that’s a big advantage web apps have over their counterparts in the App Store – I know a lot of iPhone users who never, ever update their apps, because they don’t really understand what that means.

    A question for native app developers: I’m currently tracking a whole lot of the javascript (mainly ajax) events that occur during the use of my app. The data is immensely useful for the purposes of design of both UI and functionality (in the last three days I can see data on how people are actually using my app, without having to ask anyone). Is such tracking possible in native apps?

    I listed my app on Apple’s Web Apps site, and though that doesn’t have anywhere near the penetration of the app store (I’d guess 90% of iPhone users don’t know it exists) it is certainly driving a lot of traffic to my app. I wish Apple would promote it a bit more, and I wish there was an equivalent to the App Store for web apps (whether quality controlled upon submission or not).

    Copy & paste the code below to embed this comment.
  15. As an interesting counterpoint to this article; I submit the truly exciting and possibly revolutionary “Cappuccino”:http://cappuccino.org open source web framework. Rather then employ your Javascript skills to hack around in Obj-C; you could take the intermediate step of learning to write Objective-Javascript (which employs the conventions of Obj-C rendered as Javascript). You’ll learn the nuances of Objective-C while you build a “Desktop class” web application.

    Ready to be impressed?
    “280 Slides”:http://280slides.com – full fledged presentation software run in the browser window.
    Looking for a great IDE to build “Cappuccino”:http://cappuccino.org web apps? Join the beta program at “280Atlas”:http://280atlas.com to drag, drop and code your way to web application bliss. Better still, it uses Native Host to run the application on the desktop, as well.

    Still need something to push to the App Store? Why not do like “Google”:http://www.google.com/mobile/google-mobile-app/ and use your app to bounce users into an waiting internet browser window – with your internet app ready to go?

    Copy & paste the code below to embed this comment.
  16. The illustration by Kevin is soooo hilarious…
    Just have a look at those birds!

    Copy & paste the code below to embed this comment.
  17. Thomasvand makes a great point: “When developing a decent web application, you only need one implementation.”

    This will also require less time, resources and money to develop.

    Furthermore, frameworks such as jQTouch (http://www.jqtouch.com/) can also use native functions within phones.

    Copy & paste the code below to embed this comment.
  18. The biggest problem with native apps is that people have to go looking for your app, because nobody’s going to find it wading through the wasteland that is the app store.

    With a web app, a simple Google search will (hopefully) give you instant customers. Try looking for anything on the app store and you’re presented with 19 “iFart” or “Sexy Sex Positions” apps for every 1 useful product.

    That, and the lack of “try before you buy,” means most iPhone users I know (including myself) have never paid for more than one or two apps, and generally only use big name apps like Facebook or Twitter.

    And as @thomasvand pointed out above, the fact that there is more than one mobile platform means that a web app makes much more sense for a developer.

    Copy & paste the code below to embed this comment.
  19. Why not build a web app using HTML, CSS, and JavaScript?

    Then integrate that into something like PhoneGap which will then allow your web app to become a native app taking advantage of the device features. This would work for iPhone, Android, Blackberry, Palm, Windows Mobile, and Symbian. Seems like a good solution to me.

    Copy & paste the code below to embed this comment.
  20. yes, web app in mobile platform knows a lot of limitation. but just like creating cocoa touch to adapt desktop apps to mobile devices, many developers are creating frameworks just like phonegap to bridge the gap between the sandbox of browser and the device itself.

    If built on a good framework, a web app can access the camera, contact list, all the sensors of the phone.

    no difference with a “native app”

    and the these “web apps” have some talents:

    1. rapid prototyping using html5+css3
    2.cross platform support, e.g. phonegap can be run on all popular smart phones!
    3. employing open standards, not controlled by apple

    Copy & paste the code below to embed this comment.
  21. I’m really glad you wrote this. Now, as an iPhone developer, I can send people over here when they want to learn about the benefits of a native solution.

    Two points I would add. I think these are important because I work at a software development firm see a lot of proposals for iPhone apps that simply don’t make sense. Frankly, they would be a complete waste of money for the brand.

    1. Commitment. When deciding on going for an optimized web app or a native solution, you have to think about whether the kind of app you are building is something people are willing to commit to. Web apps generally don’t require much commitment. You can find the site on Google and use it right away. Apps require more commitment: knowing it exists, going through the process of finding and downloading it, being okay that you just added another icon to your already clogged up home screen. If you don’t have enough customers who are passionate enough about your information or service that they would commit to your app, you may be wasting money building that app.

    2. If the above case is true, you are not out of luck. It is actually an opportunity. How about instead of building a self-centered app for your brand (essentially, a mirror of your website), do what IMPACK studios did with Voice Tutor and build a remarkable app that does something a lot of users want to do. Its not about the brand, its about the function, but the app does indeed boost the brand and does, as you say, expand the brand’s market on the app store. This way you don’t need existing committed users and it will be a lot easier to get press and be featured by Apple – which, I think, is essential to a successful app.

    I’ve fleshed these ideas out a bit more on my company’s blog if you’re interested: “Your company should NOT build an app”:http://skookum.com/blog/your-company-should-not-build-app – pardon the hyperbolic title.

    Copy & paste the code below to embed this comment.
  22. I have been down this road before.

    Having tried to make my App with an apple I found it really quite difficult.  It ended in such frustration that I eventually returned the apple to the green grocer. He suggested I use a computer and he was right.

    I now use a computer to make all my Apps. I am very pleased with it.

    Copy & paste the code below to embed this comment.
  23. I think that Apple is the new Microsoft, and they’re secretly trying to turn people from web-users into app users, so that their competition fails.

    What they are doing with the apps doesn’t really make much sense from any other line of thinking, be it usability or what have you. 

    Think about it; people have struggled and labored for years to come up with an abstraction that will run across all different kinds of computers, the ultimate “write-once-run-anywhere” as first termed by Java. 

    The closest any abstraction has ever gotten to this is the web, and its web applications; and it’s pretty darned close to that, excluding really old browsers and most past browsers made by Microsoft. 

    While I can’t speak for the rest of the developer community or the end-users that use what they produce, my personal opinion is that a better result will come from multiple web-app providers (i.e. Apples and their completion) than a single monolithic source such as Apple all by itself. 

    In short I hope HTML5 wins the battle with the platform specific apps (if there is one), as the apps feel like a step backward considering how far we’ve come.

    Copy & paste the code below to embed this comment.
  24. There are many advanced techniques used to develop iphones. The latest development is the ebook reading application. Also I saw one amazing fact, “sixth sense technology”, I like to spread a word about this.

    Copy & paste the code below to embed this comment.
  25. The news media has an appetite for iPhone apps.  An interesting iPhone app is far more likely to get tons of PR than an interesting web app, right?  Whether or not that matters, it helps color perceptions and guide conversations.

    Plus, the idea of the website has been an ongoing story slow to evolve.  The media doesn’t cover complex, macrocosmic events or ideas very well — just look at pandemics compared to natural disasters; pandemics are far more severe but get so much less media attention.  So when did a web app become a web app?  [Hard to answer.]  But when did the iPhone app become the iPhone app?  As soon as the App Store opened.  Easy.

    Web apps are great.  iPhone apps are great.  Perception vs. reality and the excitement (frenzy?) stoked by the media has got to enter the discussion.

    Copy & paste the code below to embed this comment.
  26. Great article.
    The web shifted from being a web of pages to a web of data, web of things, web of apps.

    Copy & paste the code below to embed this comment.
  27. You should really be developing on android.
    Better API
    Friendlier Company
    And

    Your app can port to the IPhone / Symbian / Windows Mobile (see xmlvm)

    Yeah, yeah, IPhone shiney. Now get off my lawn.

    Copy & paste the code below to embed this comment.
  28. Rethinking the Mobile Web by Yiibu:

    http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu?from=ss_embed?from=fblanding

    and also:

    Mobile First
    http://www.lukew.com/ff/entry.asp?933

    Copy & paste the code below to embed this comment.
  29. waah me want iphone app.

    http://www.quirksmode.org/blog/archives/2010/03/html5_apps.html

    Seriously, you’ll reach 80% of the users, you won’t do that with an iPhone App.

    Copy & paste the code below to embed this comment.
  30. It’s a nice article about the topic itself, but ALA! “For People Who Make Websites”?! Really? Is this the horse you’re betting on, device-specific apps?

    Copy & paste the code below to embed this comment.
  31. While the article is great in its analysis of apps vs web, I don’t think that going from javascripting to objective c is a quick progression. If you already have a background in C, C++ or Java, you’ll be fine with objective C. However if your career to date has been coding HTML, CSS and JS you’ve got a world of ramping up. Dealing with memory management, compilers, debuggers, project configuration and deployment requires time and even additonal CS theory. If you don’t learn it properly you’re going to wind up writing buggy apps or not getting approved through the app store. While I’m not trying to dissuade anyone, I also dont’ think that the leap from js to objective C is a simiple one.

    Copy & paste the code below to embed this comment.