And yes, I know that leasing time on a mac for dev work is an option, but that gets rather pricey over time ($1 per hour or $20/month is not cheap if you need to work on and maintain apps for multiple years). And an RDC experience will never be as good as having the actual computer in front of you, even on a fast connection.
I guess Apple can detect if you're running on a Hackintosh. For example Netflix won't play on my Hackintosh without installing Silverlight. Invalid DRM keys or something.
I'm still programming iOS apps on a 2012 Macbook Pro because I'm not rich. Performance is still pretty good!
Android Studio runs on a lot of hardware but it's slow unless you have good hardware, which costs money.
You can find out more by looking up hackintosh.
I'm just saying that people are complaining too much about having to buy a Mac to write code for iOS. If not must, then you should buy a Windows machine to develop for Windows but you don't hear anyone complain about that. You have to buy an Oculus Rift to develop Oculus Rift software. You have to buy an Android device to test your Android program. etc... You don't have to buy a Linux machine to write code for Android but if you don't have a computer at all then you have to buy one. There's stuff you have to pay for to get into programming...To build software that will make you money. Windows/Linux developers are complaining that Apple didn't release free tools for their platform and overreacting.
There are so many ways to develop Windows apps on OSX (unless I'm misreading, which I might be because this point is so blatantly wrong)
>Oculus Rift to develop Oculus Rift software
You can download the SDK without the Rift, you just can't test how it will work on a rift without... a rift
>You don't have to buy a Linux machine to write code for Android but if you don't have a computer at all then you have to buy one
I mean... you're not wrong but the point is you can buy any computer you want, not some overpriced, under-powered laptop with an apple on the lid
I (personally) am a nomad. I can not carry 27 computers with me. My world would be best served by having one computer that does all the jobs. Apple hinders me in this; it does not help.
Yes, I can (and do) do Hackintosh VMs, but it makes me feel dirty.
Whenever I have to deploy on an iphone, to test I buy a bank of iphones (and give them to the neighborhood children when I am done). That should be good enough.
Windows 10 is required to build Win10M apps targeting UWP. You can still use WP8 tools (thus Win8) to make WinPRT or Silverlight apps.
That's the theory. In practice the last insider build have a bug which forbid app deployment, and for some builds nows the Silverlight app runtime had its own bugs (keyboard related for example).
For having used this tools since WP7 I really feel a decline in quality on the mobile OS and I wouldn't recommand to bother anymore.
OS X does not.
So, no...you don't have to buy a computer to run Windows because you can run it on your existing computer.
And if you're not in for the money but just as a hobby: don't develop for the iPhone then if you don't like the costs. (Even though $1300 over 5 or 6 years is a pretty cheap hobby in my books).
I call shenanigans - latest OSX and XCode running on a 2008 Macbook right here on my desk. I plan to get 10 years usage out of this machine - that's value for money right there.
Refreshing current Apple computers won't be that easy. Even if you are capable of opening it, compatible M.2 drives won't be easy to find and you won't be able to swap soldered RAM. I'm not sure that my 2015 rMBP will be able to serve so long as that T430s will.
I wish Apple made their pro products more bulky so we can upgrade the hardware and let the air products be the sexy, thin ones for Starbucks hipsters.
That being said, Apple has gone to pretty crazy lengths to ensure that it's modern OSes work on legacy hardware; I was a bit shocked to hear from my parents that they were able to install El Capitan on my dad's 2008 iMac, as I was wary about putting it on my 2012 Macbook Air due to performance concerns. I don't know if this was a conscious decision by Apple to cater to the idea of "Apple = Longevity", but it's very nice to know that a single purchase takes you pretty far. I think Apple could take it a step further and really win over more people if they added the millimeter or two to the Pro line and allowed for the upgrades.
It's really a back and forth thing for me; on the one hand, I wish I had more options and the ability to customize later on. On the other hand, since ~2010, the appliance like nature of the portables has worked so seamlessly that my only complaint comes from the lack of an option to upgrade, not the need for an upgrade. For my previous Apple laptop, my own incompetence when trying to do a repair hurt the laptop's longevity; had I not had butterfingers when working on the insides, I'm sure that I could have had another 3 years with my already 5 year old Macbook.
Of course, with a Windows PC, you've got a variety of options, and can buy something that is actually upgradable, rather than being locked into what Apple deigns to give you.
When I bought my MacBook, 4GB of Ram were plenty but it is not anymore. Chrome takes to much ram and with 16GB, I don't have to worry about anything. Furthermore, apples new laptops are all dual core (until you buy the bigger one). This is also dealbreaker for me – quad cores are really awesome when using VMs. Sure a CPU cannot be updated on most laptops (and certainly not on apples but I can't blame really).
My point is that I'm afraid apples pro series has drifted into a state where their lifespan will shorten while the prices go up.
And apple's OS performs really good until you use third party applications that expect better performance then your sad 5-year-old MacBook.
It's just that, again, by and large with everything with the Mac line up right now, you throw something at it and you're good to go. Even my 2012' Air can do moderately advanced video editing in Premiere, the only real bottlenecks being local storage and the CPU taking a bit to render video.
The current line up is not a perfect solution for absolutely everything, and Apple's power option in the Mac Pro line is just unacceptable for most people, even if it does bring a lot to the table. But in most cases, Apple's line ups do extremely well for a large majority of things you'd want to use a computer for. I too would enjoy a quad core in the Air/Pro line, or at least the Pro line, though I suspect the issue is heat, and as I said earlier, I'd happily take a bit of thickness to accommodate a heftier processor.
I certainly don't endorse letting Apple tell me what hardware I need; I also don't have too many complaints with what they've given. Price exaggerations aside, I find the price tag for the Macbook Air/Pro lines appropriate for the base models, and comparable to other 13" sized machines with similar specs and amenities (for lack of a better word). Such is sort of the nature with Apple and being a long time user - there's a lot Apple does that bugs you, but at the same time, there is a lot of good you get with the hardware and the OS.
The 15" Macbook Pros are quad-core http://www.apple.com/uk/macbook-pro/specs-retina/
It will hit 10 years mark in May next year, I shelled out $1.6k at the time for it, 2 years ago upgraded RAM from OCW, and installed SSD, upgraded magic mouse, and it works really nice! I think I used the hell out of it, and it is amazing machine!
While your concerns and gripes about Apple Dev. environment are 100% true, there are some reasons why are they so. And in a few years I think that will change, Swift will change it! Imagine you can compile swift code on Linux now! It's nowhere near usable for serious development work, but I think with Swift, Apple addressed that problem too, so I think in 5 years you won't need exclusively OSX to dev for Apple devices. I'm sure it would be the best way to do it, but who knows we shall see.
The compilers for Swift and Objective-C are command-line tools that are (relatively) easy to port to Linux.
But for a real iOS dev environment or CI server you'll need the iPhone Simulator, which is built on a large stack of proprietary frameworks. I don't see Apple porting it to other platforms anytime soon.
The trivial fix would be to allow virtualisation of OS X on commodity hardware.
On the other hand Apple makes virtually no hardware that would be a good fit for a datacenter with many VMs on powerful multiprocessor hardware available in a compact form factor.
Agreed that its a pain. I only have experience with OS X builds (not for cocoa apps, but for a CLI tool) in TravisCI, but I can tell you that their build box offerings are much weaker than what you can get for Linux (presumably because of the cost).
[1] https://blogs.msdn.microsoft.com/interoperability/2012/12/21...
> For all those developers sitting on the sidelines refusing to develop iOS apps...
I've made a ton of money building Ionic and Xamarin apps and recommend those to anybody building for iOS because both of them will let you spend as little time using OS X as possible. The way my workflow is now, I could totally rent a cloud Mac and just compile and publish stuff from there.
Anyway, even though I think OS X and iOS are quite possibly the worst operating systems I've ever had the displeasure of using and even though I know for a fact that Apple is hostile to developers and users, I don't mind making apps for them because I figure anyone who uses there stuff must not care about wasting money and it should be easy for me to grab some...and it is :)
And, like Spotify, all of my apps are subscription based with out-of-app signup, so Apple doesn't get 30% of my money. I also only buy used Macs because Apple doesn't get your money that way either. Right now I'm running a Mid-2012 Mac Pro with 32GB RAM that I got for ~$1,200. It was about double the money that I spent for a similar PC server, but I made all that back by taking money out of Apple's ecosystem and not putting it back in, so I feel like that's a win for everybody (except Apple of course, but hey - fuck them - if they're going to be hostile to me, I'm going to be hostile to them.)
As far as Visual Studio, it's not required, either. 3rd party compilers have always been a thing for MS operating systems. In fact, for a long time, you weren't even able to use VS to build drivers for Windows. Microsoft is also currently going out of its way to create neutral tools to enable developers to use the workflow and tools they desire. Omnisharp exists for providing intellisense to editors and IDEs. VS Code is a new, cross-platform IDE that works for both node and C#, among other languages. MonoDevelop still exists and can be used to write Windows-compatible applications.
But for Apple, you have to own a mac or, as is common, lease a mac to build and sign on. So, no, these things aren't even in the same realm of control. MS treats Windows as its primary platform for innovation. Apple treats OSX as the only platform in existence.
Sure, develop for Windows without using Windows. But why spend time developing for a platform that you don't use regularly? What about testing? How far can you go without Windows?
> As far as Visual Studio, it's not required... VS or Windows is not required but the majority of developers develop using VS on Windows. You could cheap-out by avoiding these but you're being penny-wise and pound-foolish.
> But for Apple, you have to own a mac But for Windows/Linux you still have to buy an Intel machine. You just don't want to buy another machine to develop iOS or OSX apps.
Anyhow, I think Windows/Linux owners are complaining they have to spend more money to develop on a different platform. You never hear this from Mac owners who want to develop for Windows or Linux.[Edit: Not trying to start a flame war. I'm really trying to understand the outrage...]
Besides, Windows machines are much cheaper, so if you're from a developing country or a student, you have access to a Windows machine, not a Mac.
Linux VM on a Windows machine was a thing in the early 2000s.
1: "Running Mac OS X as a QEMU/KVM Guest"
By contrast, you can just create an OSX VM in VMWare Fusion in OSX and then copy it over to VMWare Workstation on Windows (or an ESXi server, or whatever else) and it'll work fine after being convinced[1] that it's allowed to try.
[1] http://www.insanelymac.com/forum/files/file/339-unlocker/
I am developing iOS apps on a 2012 Macbook Pro. Those aren't expensive nowadays.
I would be willing to bet that a used Thinkpad is even cheaper, and has the benefit of having more upgrade options.
To make a car analogy, your argument boils down to, "Well, you need a car anyway, so why not buy a Lexus?" I think a lot of the people replying to your posts are arguing that requiring luxury hardware (and, let's face it, Macs are luxury hardware) adds a pretty huge barrier to entry for software development. Trying to argue that the price difference between Apple hardware and Windows/Linux hardware is "insignificant" in the long run just doesn't cut it. Even the cheapest Apple laptop is a thousand dollars in the US. It costs even more overseas. Meanwhile, you can get similarly spec'd Windows machines for a half to three quarters of the price.
There is a Mac premium, and it is a barrier to entry for developers. You can't make that barrier disappear by blindly asserting that it doesn't matter.
If you used Microsoft's tool chain to build Windows apps, you can do so with a VM under the Dream Spark license for free.
The barrier to entry for OSX/iOS development is hundreds to thousands of dollars.
You can pickup a Windows PC and an Android phone for half the cost of just a Mac Mini that still requires a display.
The toolchain isn't expensive or obsoleted frequently. A new Mac mini is $499 and can last more than five years. When you consider a professional iOS developer can easily make $100/hr, a cost of $100/yr for equipment is beyond negligible.
Not sure where you get "requires lots of maintenance" from – he doesn't seem to have said anything about that?
Obviously in rich Western country terms.
A new Apple device could potentially last you 5 years but Apple has also been known to obsolete hardware in as little as a year.
The majority of developers making iOS apps do not make $100 and that's not assured income, its potential.
If you happen to work for a professional shop with a team, chances are you want to do CI or automation. It's a pain. If your IT department manages your machines then they need someone dedicated to maintaining enterprise security policies on your Macs, it's a pain for the user and the admin.
I think labelling a $499 computer as "incredibly expensive" isn't accurate when you're talking about typical Western countries. That's a pretty normal cost for a computer.
> and assumes you have a monitor and an iOS device already.
Most platforms require you to have an instance of the platform available to you. Yes, people who want to develop for iOS should reasonably be expected to have an iOS device, just like people who want to develop for Android should reasonably be expected to have an Android device, and people who want to develop for BlackBerry should reasonably be expected to have a BlackBerry device. Apple are not unusual in this respect – you appear to be holding them to a different standard to other platforms here.
> Apple has also been known to obsolete hardware in as little as a year.
I can't think of a case where this has happened – can you give an example?
> The majority of developers making iOS apps do not make $100 and that's not assured income, its potential.
I'm trying to put the cost/benefit into perspective. The cost of iOS development is minuscule in context.
> If you happen to work for a professional shop with a team, chances are you want to do CI or automation. It's a pain. If your IT department manages your machines then they need someone dedicated to maintaining enterprise security policies on your Macs, it's a pain for the user and the admin.
Again, you seem to be holding Apple to different standards than other platforms. If you have employees using computers, then IT needs to manage them. Yes, of course – but this is true for Windows developers, Android developers, and all other developers as well.
That might be the normal cost of one of 50 different Dell laptops but for Apple it's their lowest end unit and it lacks a display.
> Most platforms require you to have an instance of the platform available to you.
Nope they don't, but it is better if you do. It's also considerably cheaper.
> I can't think of a case where this has happened – can you give an example?
The PPC MacBook after the Intel Switch, the first gen Core Duo MacBook after the 32-64bit switch, non-retina iDevices... I'm on a phone or I'd keep going.
> I'm trying to put the cost/benefit into perspective. The cost of iOS development is minuscule in context.
If your context is "successful developer with a hit app" then yes, but the reality is that the majority of devs won't be anywhere near that successful.
> Again, you seem to be holding Apple to different standards than other platforms.
See that's where you're confused. I'm holding them to the same standards. Microsoft offers tons of free tools for managing large pools of enterprise machines, maintaining their patch levels, group policies, access control, etc. Linux has similar support.
Apple on the other hand makes you invest in countless 3rd party tools to achieve the same level of control. And at the end of the day it's still Flaky and error prone.
Now you're shifting the goal from the cost of the toolchain to the cost of Apple's lineup as a whole. It doesn't matter what the top of the range Apple lineup costs, to get started with iOS development, you just need the cheapest Mac mini.
You can pick up a monitor for next to nothing. Here's a Dell monitor for under $40: https://www.amazon.co.uk/DELL-Monitor-Computer-Screen-Inch/d...
> The PPC MacBook after the Intel Switch, the first gen Core Duo MacBook after the 32-64bit switch, non-retina iDevices... I'm on a phone or I'd keep going.
Wait, you've moved the goalposts again. We're talking about the ability to buy a computer and continue to use it for development for a reasonable period of time. We're not talking about your computer not being the latest model. Just because Apple introduced retina screens on the iPhone 4, it doesn't mean that you had to go out and buy a new Mac to develop for it.
> If your context is "successful developer with a hit app" then yes, but the reality is that the majority of devs won't be anywhere near that successful.
I'm talking about typical professional iOS developers. The majority of them are successful. I suspect you're talking about app entrepreneurs, which is a whole different ballgame. Most iOS developers aren't making their own applications, they are making applications for other people. And yes, the cost of iOS development is trivial for them.
It's true, lots of applications don't make money – that's because they fit into the business in other ways. For instance, your bank's application is free, but I can assure you that the developers who built it aren't worried about the cost of an entry-level Mac mini.
The context is this: If you do this professionally, then you can afford the developer toolchain easily. If you're not employed as an iOS developer and you're just making applications for yourself? Sure, I can see how you'd consider it a moderately expensive hobby if you didn't already own a Mac. But we're really talking about two different things there.
> I'm holding them to the same standards. Microsoft offers tons of free tools for managing large pools of enterprise machines, maintaining their patch levels, group policies, access control, etc. Linux has similar support.
You've shifted the goalposts again. You were talking about having to hire somebody to manage Apple computers. IT manpower is required for any platform, so singling Apple out as special for requiring IT manpower is holding them to a different standard.
I really don't think the enterprise is relevant to your argument here. If a company employs enough iOS developers to require large pools of machines and more than a basic $2/month MDM solution, then they really aren't going to consider a $499 machine "incredibly expensive", whether it comes with or without a monitor.
I don't like the "just different" attitude concerning some basic things (Why can't I order a MacBook with full printed special character keyboards AND none of those non-standard key bindings(especially horrible on German Keyboards)? Why can't they offer a Version of Finder that is not insanely infuriating to people used to Windows or Ubuntu?) that are just hostile to people who don't drink their brand of kool-aid.
I'm happily developing on Windows and if I ever feel badly served by this, switching to Ubuntu is a very warm well trodden road.
I really don't get what people See in Macs, other than the tribe factor.
https://github.com/saucelabs/isign
Given that the Swift toolchain is now open-source and being ported to other platforms, I would expect that the building and linking issues will be solved fairly shortly. I wouldn't be surprised if there was something official announced at WWDC.
There are significant downsides. You can argue that the upside is still worth it, but you can't dismiss the downsides as "completely arbitrary".
Also the simulator is basically an x86 version of iOS, look inside for yourself and see. Someone correct me here but I don't see why it would be impossible to for apple to ship a simulator for Windows, n.b. how MS has shipped the Linux ABI translation.
A port of the simulator would be possible but it'd be a good deal heavier than its OS X counterpart since it'd be running the entire OS instead of just the topmost layer.
The question is not whether "the simulator is basically an x86 iOS". The point is that requiring macOS to build iOS apps is not an arbitrary restriction — it's a tradeoff. You can argue for or against Apple's decision, but you can't argue that it's an arbitrary restriction on Apple's part.
A broader base of developers can mean more and higher-quality apps. A better selection of apps can lead to greater sales of iPhones and iPads.
(It also might not. But there is certainly a potential benefit for Apple here.)
One word counter-argument: Android.
Would it be worse?
A polished iOS app with lots of users is worth much more for the whole Apple ecosystem than a few developers using OSX computers.
It just doesn't make sense to me why anyone thinks they're entitled to have Apple build and support a complex developer toolchain on their platform of choice, and if Apple doesnt, it's a sign of "hostility".
I don't think Apple wants that person building for their platforms. As an apple user and developer, neither do I.
That suggests you think every developer who wants to publish iOS apps should either do so from a Mac or they are automatically hostile towards Apple. That's the point I was touching.
I personally wouldn't call Apple's choices hostile and I don't think anyone is entitled to have cross-platform tools. But you made it clear you think I'm an "enemy" as long as I'm not on a Mac, and there would be zero benefits in allowing me to publish apps to my phone.
(ps. I do own a Mac)
By requiring a Mac to develop for iOS, they're forcing a certain level of investment which makes it more likely that developers targeting the platform make their apps worth the time spent (for both the dev and the consumer). By opening it up they're welcoming those who port just to tick a box.
It does open another thread of discussion, though: as far as I'm aware, there's no proven correlation between buying a Mac and caring about the quality of your iOS product.
I could just as well say that companies that want to tick a box for their sub-par apps farm invest in several platforms much more easily than starting devs who can't afford multiple setups and pride themselves in craftsmanship.
Which one is closer to reality or has the bigger impact, I have no idea.
Sure, somebody who doesn't have an iPhone and yet wants to develop apps for the iPhone is likely to treat iOS as a second class citizen.
But you are saying that if somebody bought the iPhone on launch date, and has upgraded to every new model as soon as it came out, and is obsessed with all things iOS....then he is still gonna treat iOS as a second-class citizen because he doesn't own a OSX and a Mac, which are different hardware and a different OS from the device he wants to make an app for??
That's crazy.