Simple proposal.. How about a zipping an application and merely naming it .appz (or just plain zip)
The only reason why Mac application can't be distributed like Windows .exe files is that Mac applications are actually directories. Excluding .pkg installers 99.99% of the time the .dmg file is merely just a container for the single .app directory.
Safari automatically unpacks .zip files by default on download. Where's the mystery here. Why bother with dmg in the first place
The main reason they haven't done it on OS X is that it would be completely backwards-incompatible. They should have done it in Snow Leopard (an easy choice if your app uses GC), but if they did they didn't tell anyone. Instead they added optional zip/deflate compression to HFS, and used it for most of the system files.
re: all the zip suggestions. Apple already provides a solution:
"Internet-Enabling a Disk Image
Although all disk images can be transported through the Internet, users need to open them, retrieve their contents, and discard them. An Internet-enabled disk image automates this workflow. After a user downloads an Internet-enabled disk image from a network using a web browser, the image is automatically opened, its contents placed at the user’s download location, and discarded (in the Trash). This improves the manual install experience by performing a few tedious tasks for the user.
"
Too few devs seems to be aware of this.
Anyway a custom installer for Firefox is a backward idea.
On launch, your application can check to see what directory it's in. If the directory is mounted as the same name as the .dmg image you shipped, then you could prompt the user. "You appear to be running this application from a disk image. This will make the application run slower. You should copy the application to your Application Folder. Do you want to move it there now automatically Y/N/don't show this again." or whatever.
Let's combine this with the zip file approach. Your app is distributed as a zip file containing only the app folder. Safari unzips it automatically, then the user double-clicks your app icon. Your app notices it's in the "Downloads" directory and asks "Would you like to install me to the Applications folder?" If so, the move is done visually by opening two finder windows and literally moving the app icon as if it was being dragged. Afterward the Applications folder remains open displaying the app icon in case the user wants to drag it to the dock.
The problem isn't the dragging to the application folder itself. I've seen my mother do this and it went fine.
He problem is that the application isn't moved, it is copied. After putting a copy in the Applications folder, she just drags the application from the disk image to the dock. Now she has two copies, and uses the slower one in the disk image. Sometimes she even drags the disk image to the Application folder too. It's all very confusing
I agree that the disk image system is very confusing for the casual user. The zips seem to give a much nicer interface
As it stands, they’re following the common pattern of delivering the Firefox app on a disk image, which, when mounted, uses a background image and alias to the /Applications/ folder to encourage users to copy the app from the mounted image to their startup drive.
I'd bet this pattern would be a whole lot more effective if there were text prompting the user to take this action. It seems like most implementations of this pattern focus on bling rather than usability.
If you have one repository you've just created a monopoly. If you have multiple repositories (probably one per app) then you've just shifted the problem to installing new repositories.
What's wrong with multiple repositories? It should be easy to add new ones. There's multiple places to get debian packages, there's the main packages, non-free, backports, and other homebrew ones like mythtv etc. It's as easy as adding a line into a text file, but I'm sure the interface could be better... maybe even something integrated with the browser.
Maybe github & sourceforge has a mac repository. So you'd have the default one from apple, plus any open source apps from github & sourceforge. Individual developers who just publish code on github wouldn't need to setup their own repository. In a way, it's kind of how the ruby community distributes their packages.
There’s a couple of good package management systems for OSX, if you’re looking for servers/frameworks and command-line apps. Seeing as servers & frameworks tend to be more complicated to install that dragging an app to the Applications folder this suits me. I use http://www.macports.org/
If Apple can be persuaded to do something, either prompting user to move an unzipped .app to Applications folder or treat .appz (zipped app) as an .app should work.
Ever install Skype for the Mac? They actually have a link to the Applications folder in their .dmg, and a little arrow icon to show exactly what you have to do. It's pretty sweet.
A lot of .dmg's have that same thing, but as someone else mentioned, doesn't solve the whole problem. Naive users will drag it there, but then also drag it to the dock.
The only reason why Mac application can't be distributed like Windows .exe files is that Mac applications are actually directories. Excluding .pkg installers 99.99% of the time the .dmg file is merely just a container for the single .app directory.
Safari automatically unpacks .zip files by default on download. Where's the mystery here. Why bother with dmg in the first place