Related
I'm trying to learn to code in Objective C, but I am not ready to commit to purchasing a Mac for just this purpose, seeing as I have a good Dell laptop. My computer has VMware installed on it, but I do not know how to actually go through the steps, and I do not know what I need to install or purchase(if absolutely necessary). Eventually, I hope to get a Mac, so this won't be needed, but until then, I want to find a way to compile Objective C so I can actually learn how to use it. Thanks.
While it is technically possible, I'll tell you from experience:
To run Xcode and the iOS Simulator, you will need to have MacOS running. Oficially it only runs on Apple Hardware, buuut, you can always use virtualizers and Hackintosh. There are plenty of good tutorials online if you choose this method.
My advice: DON'T do it!
When I started to develop iOS apps, I had a Windows PC, but after trying lots of different approaches to virtualize MacOS, with none I had great results. I bought a MacBook on a sale, and it's just a better iOS development experience overall. It's priceless not to have to deal with driver searching and compatibility issues.
First virtualize MacOS X, inside then iOS with XCode. See http://www.macbreaker.com/2012/07/mountain-lion-virtualbox.html
Yes you can, you need to virtualize OSX inside you Windows, and then use XCode as the other stated, however it doesen't work with nearly all AMD CPU's but i think Dell uses mostly Intel. And a Mac costs alot. For example i don't have money for one, the cheapest one costs $1,600 where i come from, but if you are going to get a Mac, i would wait for that.
But they really are expensive, and i only need a Macbook for debugging.
[Assuming you already have the mac installation image or vmware file]
Sadly Vmware does not include support for mac in it's latest versions
So you'll have to patch(aka Vmware Unlocker for OS X) it.
Follow this link http://www.insanelymac.com/forum/files/file/20-vmware-unlocker-for-os-x/ (you'll be required to set up an account)
Or alternatively you can download the VirtualBox(https://www.virtualbox.org/)
Happy Coding
Use virtualbox instead of VMWare. If it does'nt work, install the extension pack for virtualbox.
I'm developing something for Mac OS X. It's a port of a Windows product.
One of my boss' concerns is how it will run on older versions of Mac OS X. I know Xcode has facilities for compiling for old versions of Mac OS X, but QA would prefer to actually run the older versions of Mac OS X on a Macintosh.
Since we got into Macintosh development after Snow Leopard was released, all of our machines come with Snow Leopard (10.6). As far as I know, you can't really walk into a store to buy Leopard (10.5) and anything prior to that is basically extinct.
In a question on virtualization someone said that they've done multi-boot or multiple hard drives for other versions of Mac OS X, but I'm not sure how one would obtain the install media or the license for an old version.
I see Apple has their Mac Developer Program which touts as one of its features as "access pre-release versions of the latest software" which is cool, but I don't see it anywhere on there that old versions of Mac OS X are available. Does Apple have an MSDN-equivalent where old versions of the software are available for download?
Also, is there a reliable breakdown somewhere of the rate of upgrades/updates to Mac OS X? (i.e., what % of users still run Mac OS X 10.5, 10.4, PPC-based machines, etc.)
In case you buy an old OS X from Amazon or other retailers, note that you can not install an OS which was released before the hardware was announced. Older OSes just don't have the required driver to be able to run on a newer machine, and Apple doesn't back-port drivers for older OSes. In other words, if you buy the latest new Mac from Apple, you can't install 10.5 or 10.4 or whatever. So, you need to buy an old Mac too, not just an old OS.
The breakdown of the OS ratio really depends on the software. For example, the veritable Omnigroup publishes this version breakdown of the hits of their software update server. There are many websites which tell you the version break down, see e.g. this site.
Judging from it, I would say Snow Leopard covers half of the Macs in the world. Supporting Leopard might be worth while if you have extra resources. But I would guess people who didn't buy Snow Leopard won't typically buy a new 3rd party app, so supporting Leopard won't give you 50% increase in the number of potential buyers. (I admit this last sentence is completely subjective, though.)
Apple Developer Connection does have most older OS version available for download, but it's not quite from a complete collection (specifically, they're missing a full install of 10.4.anything for Intel CPUs). They do have the GM builds of 10.6.0 (which is Intel only), 10.5.0 (Intel/PPC universal), 10.4.0 (PPC only), 10.3.0, and 10.2.0.
As others have said, you won't be able to use older versions of the OS on newer hardware, so you're going to have to get used computers for testing -- if purchasing doesn't like eBay &c, look for a company that specializes in used equipment, like PC Recycle. For maximum coverage, I'd recommend getting an Intel Mac that shipped with 10.4 (and make sure you get the installer disks that came with it), and a PPC Mac with that's as old as possible while still having a 867MHz+ G4 CPU (so you can run 10.5 on it, and don't have to worry about weird G5 builds) (again, be sure to get its original disks 'cause an older generic installer won't work).
One option (besides acquiring old OS versions yourself) is to use the compatibility labs that Apple maintains. Lots of machines, old and new, already set up with many different versions of the OS.
I believe you can get a "day pass" to the labs for ~$100. Depending on where exactly you're located and the cost of getting to Cupertino, this may or may not be a viable option for you.
http://developer.apple.com/labs/
As others noted, a number of sellers on Amazon have boxed old versions of the OS.
Historically, people used to boot off external Firewire drives to use older or beta OS versions, but of course some of the newer machines lack Firewire ports. I know EFI does support some external boot options (netboot for instance).
It might be possible to boot newer Intel hardware using a late version of 10.4 - but I couldn't guarantee it (as another poster noted, 10.4 won't have relevant hardware drivers - but there are basic generic drivers that may work. Then again, is that a realistic test???).
As an addition to Yuji's post - there are some people who are forced to stick with Leopard or Tiger for compatibility reasons (my father can't upgrade all the machines at his school, because the A3 colour printer only has generic printer support under Snow Leopard, and they also have a lot of older Adobe software). I would say that generally this applies more with institutional customers - for educational software running on 10.4, and even running on PowerPC hardware, can still be a significant issue.
For consumer software - less so - the big spike in Mac sales came after the switch to Intel, and almost all active consumer software purchasers are on Intel machines running 10.5 or later.
The other thing that needs to be considered is that 10.4 is missing many APIs introduced in 10.5 and 10.6.
We are a Microsoft shop with C++ experience looking to get into some iPhone/iPad development.
Before we make a large investment in individual development machines, we would like to test our abilities with a modest investment.
Can we use one Mac Mini Snow Leopard Server as a development machine for 2-3 concurrent users? We would want them to remote from their PCs into the Mac Mini server and develop remotely.
Is this possible?
It sounds like you're about to break Joel's "Don't torture your developers" rule.
Skimping on hardware is a good way to waste expensive developer time, which will lead to unhappy developers and failed projects.
Since a Mac with a Windows license can be turned into a Windows development machine, you could buy Macs instead of generic Windows PCs as your existing development hardware hits its replacement dates, and have the flexibility to do either Windows or Mac development.
I think it's worth re-evaluating this initiative as to whether there's enough commitment behind it to make it succeed.
Not out of the box. Mac OS X server is not designed for multiple concurrent desktop access users like a Windows Terminal Server. Edit Here is a product that will do that. http://www.aquaconnect.net/
The Mac Mini is not any major power house either. Emulating the iPhone would not be feasible either since (at last I knew) all Mac Mini's were dual core.
That is a very interesting question which I do not know the answer to, but I will still be cheeky and post a reply. The cheapest Mac Mini is $599 and Mac OS X Server costs $499 so it might be worth just buying two Mac Minis for an additional cost of $100.
I do hope someone here has experience of a similar setup to what you have in mind.
A Mac Mini isn't enough oomph to do that; it's basically a low-end laptop, after all. You could do it with aquaconnect and an XServe, but it might be cheaper just to buy some KVMs and a few Mac Minis and give the developers one each.
When I'm testing software I'm going to deploy or running through tests in the Windows world, I'll use VMWare images so that I can start from a fresh, known state at the beginning of each test. This has worked really well so that I can install software on different OS flavors or with other/different apps and drivers loaded. This makes it super simple to duplicate or nearly duplicate a customer's environment when addressing issues that crop up.
Now I'm tasked with doing something similar for Mac OS X. I'm far less familiar with this OS and didn't really see the same sort of thing available. I noted that the server version of 10.5 might allow this, but I'm not running that here. I've got access to 10.5 on a Mac Book and one of those Mac Minis.
Has anyone used Time Machine to put their test Mac box into a known state? Or do you have other ideas? I'm also interested in a solution for 10.4 since some of my customers run "Tiger".
I tend to test things that don't manipulate the global computer state (i.e. a lot of well written Cocoa applications) with the "Guest" account. Since Tiger (I think), the effects of using this account are wiped at logout, so you can easily get a virgin environment again.
By default, Time Machine excludes certain paths from backup. This could be detrimental to your testing strategy, depending on the system resources that your software touches. See this article for information on the exclusions. At a bare minimum, if you are going to use Time Machine to rollback, make sure nothing you are testing depends on any of the excluded files.
But, I think there is a better alternative, if you can live with Mac OS X Server: VMWare Fusion provides support for virtualizing instances of Mac OS X Server Leopard. Then you can use the same strategy you used for Windows.
From http://www.vmware.com/products/fusion/features.html
VMware Fusion boasts the most complete
OS support, supporting more than 60
operating systems in a virtual
machine, including Windows XP, Windows
Vista, and even Mac OS X Server.
Keep in mind, you cannot virtualize Mac OS X Client due to license restrictions, though.
An alternative (perhaps more lightweight) solution that I just found recently is an app called RooSwitch. It lets you swap configurations for an application. So you could have a bunch of different prefs files, cache files, etc for your app and create a named configuration for it. You can create multiple configurations to test new user setup, or to reproduce an issue using a customer's data without losing your own config. RooSwitch then lets you switch between all these different configs.
I haven't used it myself yet, but heard about it on a podcast recently and thought it sounded useful for my own development and testing.
About 2 years ago I dropped windows from my home PC and switched 100% to linux (fedora, then ubuntu) - The missus wasn't too happy but she got used to it and learned a thing or two. Then about 6 months ago I got myself a shiny new Macbook and since moving to OSX have never looked back; Unfortunately I've not been successful in getting my employer to buy me one for work (and I can't be carrying mine back and forth) so I have to "put up" with windows.
I started out with windows over 8 years ago so I have a really good understanding of how it works and have done my fair share of Win32/MFC/.NET development.
My question is; Who else has to use a windows box at work (and have a mac at home) And how do you cope - what windows apps/configurations do they use that let them work in a similar fashion to OSX? - I was just thinking how cool it would be if I could get some sort of keymapping app that re-mapped my windows keys to the OSX variants (Apple+W, Apple+Q, Apple+Left, Apple+Right, etc etc).
I miss expose (TopDesk is nice but not free)...
I miss the simplicity of finder...
I miss the nice smooth dialogs and windows and shadows (YzShadow can juuuuust cope)
I miss the underlying unix framework (I run andLinux at work)
I miss OSX :(
Unfortunately 90% of our clients use IE so windows is a must; They also can't justify the expense of a mac for a developer; Especially a Mac Pro :-p
Ah well.
Operating System is just a tool, if you are building cross platform applications (or web applications[it depends only your target web browser]) and you can use whatever operating system you like , you can install windows xp in virtual machine on your osx for using IE for example, but if your company forces you to login on their domain controller, using outlook for email and task management that project manager assigns to you, this is different story. As you mentioned multiple operating systems at work and home, personally I use Linux at home but I use Windows at work because in my day to day job I write a lot of C# .NET code but at home I spend time by programming with open source technologies and I use it because I've used Linux since October 2001. So try to get used to it.
Might I suggest if you like life on the command line that you try PowerShell as a replacement for cmd on the windows box. It has aided me tremendously in my transistion from a Unix Server environment.You have a profile and the ability to create aliases and modify things. Now I never have to worry about using one of my trusted Unix commands, and if I find one that wasn't already taken care of by the PowerSHell team I just create it and add it to my profile. ls, process grep, top, and find for the the win!!
I think the single best thing I've done to maximize productivity is to standardize my text editor across platforms. Personally I use vim as mush as possible. I use viemu to integrate into visual studio on windows, have replaced notepad with gvim, and I use vim on mac and linux alike.
You could remap shortcuts, but the simple ones are the same anyhow. Personally I dont have a problem remembering both. I do go through a mental exercise every few minutes to look for OS specific landmarks to remind me Im on Vista or OS X, which helps me to stay focused.
I'd also look into Powershell if you're a fan of Linux scripting, its the coolest shell going IMNSHO. Failing that there is always Interix
I don't have a lot of pain switching from one to the other on a daily basis. At the end, I spent the most of my time either in Eclipse, which is quite plateform independant, and Opera web browser.
For the rest, I use launchy to poorly mimic quicksilver and e as a replacement for Textmate.
In the end, I'm more statisfied of my mac, not because of the software it provide, but rather for the software it don't provide, such as Toad or IE that I'm force to use for my work.
Although there are many ways to skin Windows to look like OS X, none of the solutions deliver the real OS X experience. Not in terms of OS Features, that'd be impossible, but the look and feel is always different. I remember skinning for the sake of pleasure, my Windows XP box (like 5 years ago) and used Windows Blind plus a lot of tools (YZDock!) to have a "WS X" ;)
It never felt the same.
You could try a "hackintosh", if your hardware is "ok" with OS X. Then run VMWare/Parallels.
Or else, you just do like me:
Cry a river. Build a Bridge and get over it. :)
I use OS X (Mac Pro) but I code in C#, so I'm 90% of the day in Windows VIsta in Full Screen in one of the many Spaces; the advantage is that VMWare (and Parallels) let you map your keys so I can cmd-c/v inside Windows.
I understand your frustration :S
Unfortunately 90% of our clients use IE so windows is a must
IE6 works under OS X without Windows (fonts aren't quite right, but it's enough for everyday testing), and you can get it 100% perfect under virtualisation (Parallels, VMWare, VirtualBox).
As a software developer I pretty much live in my text editor and shell. In the jobs where I've been forced to use windows I install emacs and cygwin and I'm off to the races.
I don't focus on the periphery -- control panels, window managers, etc -- I focus on what I really use 90+% of the time and don't sweat the rest.
A little bit of cygwin to take the pain out of windows. Any virtual environment will work. A mac can run parallels hosting windows with the enforced outlook requirements.
If it's not a financial burden and your company allows it, just get yourself a macbook. I bring my macbook to home and work everyday. I have external 24" screen at work, and it's no difference to working on a windows box. I run parallels when I need to use windows/IE, otherwise, all my time are spent on the mac.
Another important item in this arrangement is an external harddrive for backup at work. Time machine hourly backup + windows work file sync and you're all set. This way, you don't have to worried about losing your work if you get robbed or get into an accident.
I was in the same situation - Mac at home, Windows at work. There isn't really any way to bring the Mac experience to Windows without something breaking or a badly-written program misbehaving. You just have to get used to adjusting between the two.
The only three things that constantly caught me out were hitting Shift-2 for the "#" sign in Windows (I have a UK keyboard, but the Mac uses the American key position), trying to use two fingers and a mouse click on the Windows laptop trackpad for a right-click, and hitting F9 for Expose. Swapping between Command-C and Ctrl-C didn't really bother me.
I use Windows XP at work and Mac OS X and Linux at home.
Windows XP frustrates me everyday. If I only used it I would get used to the limitations, but being exposed to them daily (and the plethora of awful software for it, from the dire Checkpoint VPN client, to the clunkiness of Outlook) and then experiencing decent software in the evening just underlines XP's limitations (and to be fair, XP is venerable these days).
However making the switch on a daily basis isn't a problem, #/" issue aside.
The only thing I ever did to make the Mac more "windows-like" was install Office for Mac. I've never had a problem with files I couldn't read or write, and the "student edition" is pretty cheap. Recently, for dealing with IE6 I used bootcamp bought and an MSDN copy of XP to install XP on partition on my Macbook. No problems.
I regularly use OSX, Windows and Linux and the only times I get confused is when I'm running XP under VMWare on my Macbook. For some reason, when my fingers are on the Mac keyboard, I have a lot of trouble using Windows key strokes.
Otherwise, no real problems.
I don't have much of an issue. I can do most of my development work in OSX, eclipse works, Coda is an awesome web development tool, but when I need to use Visual Studio, I can, either by running in Fusion, or booting into windows via bootcamp.
Having the luxury of a windows install on bootcamp means I can also run games better than most of the Windows PC's i've owned!