Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been thinking about an application that I want to develop for a while now. In short, I want this application to perform some crud operations. The application will be for a law firm so overall security is going to be very important. My primary programming language is php but I wouldn't mind learning some Java or possibly Objective C to make my application os-x and iOS native. Back to my question, what are the pros and cons to developing a gui application as opposed to just developing an app for the browser? The reason I ask is because if there are some benefits to developing an gui app in, say, objective c, then I guess I need to start focussing on learning the language.

Important considerations about the application I want to develop:

  • Database connectivity
  • Security(Very important)
share|improve this question
Well the first con is that your customer will be tied to Macs and iOS devices, are you sure none of the lawyers have PCs or Android/Windows phones? – Carson63000 Jan 6 '12 at 0:57
@Carson63000 I've thought about that, but i think the more specific my application is the better it will do. The PC world in general seems pretty flooded with applications. Or maybe this is just my love for macs talking. But you look at applications like textmate. Sure they probably could have developed it cross platform, but instead it's arguably the greatest mac text-editor. – Scott Jan 6 '12 at 1:06
up vote 1 down vote accepted

The main reason to write a native app over a Web app is if there is a compelling reason to use the client OS. It doesn't sound like you have that constraint.

You cannot use Java to develop iOS applications, so you would need to use either Obj-C or Mono or something similar.

Most CRUD apps are good matches for Web development, although you often need some form of specialized table (you probably already know that).

share|improve this answer
The first part of your answer makes sense. In the 3rd part of your answer, are you referring specialized database table? I'm using mysql, I'm thinking that should be sufficient. – Scott Jan 6 '12 at 1:13
@Scotty I'm thinking about modifying which columns are displayed, sorting options, filtering options, those sorts of things. – Larry OBrien Jan 6 '12 at 1:27
IMO using a native app for that is overkill. A web application should do fine => faster development => more free time. – Kemoda Jan 6 '12 at 7:52

Having a web app has a few major pluses

  • It is easy to upgrade (just push a new version to the server)
  • It is cross platform (Windows, mac, tablets etc)
  • You already know how to do a web app
  • It is possible to make sure all the data is in one place for security and backups

On the minus side there are some limitations, but with HTML5 those are less and less each year.

share|improve this answer
There is no reason a native app can't be made easy to update. There are plenty of examples of self-updating native apps. Also, it's pretty easy these days to make a cross platform desktop app, so two of your bullet points don't necessarily apply. – Bryan Oakley Feb 7 '12 at 0:03

Personally, I agree with both Steve Job's and Bill Gate's view on this:

In short: native apps will always be around, and in times are preferable, over that the experience that they can provide can often at times be far superior than a non-native (web) app, however the cloud, or the web infrastructure should definitely be there supporting the native app. When you think about it, this is more or less every apple product these days - iOS, iTunes, OSX, MobileMe, iCloud, iTV - in theory, they could all be pure web applications, but the experience would not be the same.

Here are the full interviews and another - well worth a listen.

share|improve this answer

A big con with native applications is the deployment. Installing and updating a native application is much more hassle for you as developer and for your users. With a web application, that becomes a lot easier. I wouldn't go native unless there are OS features I really need.

share|improve this answer

One pro that you might want to consider is accessibility. With web apps, your users can access it anywhere through the internet (that is of course this app is not constrained to the intranet). Although accessibility will entail more security considerations...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.