5 ms·
I've also decided to give up developing my applications for Mac and will only support Linux and Windows in the future. That's kind of ironic since I started as
by jonathanstrange 8y ago
I've also decided to give up developing my applications for Mac and will only support Linux and Windows in the future. That's kind of ironic since I started as a Mac shareware and freeware developer.
For a more or less hobby developer like me, the running costs of developing for Mac are too high if you take into account that you have to purchase new hardware every 3 to 5 years. I've tried the Hackintosh approach, but it was overall too unstable and you never know whether some user might not send a bug report for the pre-release of some future OS version. My main program was broken and I had to fix it several times during the past two decades, every time because of changes by Apple and not a single time because of a programming bug.
Apple has a strong tendency of breaking their own APIs. That in combination with obvious attempts to lure them into their developer infrastructure and a strong deprecation of non-standard tool chains and languages (use XCode or die, get a developer account or forget it) makes developing for Macs a major pain in the ass.
No more iOS or macOS applications from me in the future. I might offer web apps for iPhone users, though.
- rubatuga 8y agoWhat about using react apps? I'm not experienced in react by any means, but it seems like it would help in your situation.
- hardwaresofton 8y agoReact Native, Nativescript, and more recently Flutter are great for app development, but when it comes to deployment/testing, you really do have to get it on an actual device eventually. In the end, you have to have something running OSX -- despite the fact that fact that frameworks like Flutter draw every pixel on the screen, you still usually need to (well should) test it on a real device.
- deleted 8y ago[deleted]
- hardwaresofton 8y agoYeah I think this might be the way to go in the future -- do the web app manifest thing to make it load like a native app. Given what you went through I'm glad I didn't try the hackintosh approach. I suspect that >90% of the people who even try the Hackintosh approach are developers who don't want to buy another computer just to target one platform. Personally I think eventually it will be possible to develop iOS apps from non iOS computers, but maybe not anytime soon. Once Apple thinks the moat is degraded enough, I guess.
- JesseLivermore 8y agoI currently use cctools (https://github.com/tpoechtrager/cctools-port.git https://github.com/tpoechtrager/cctools-port.git) to cross compile iOS apps from my 32-bit Linux computer. Then I load onto my phone using Cydia Impactor. It's much more flexible to do it this way than using the latest version of Xcode. I can compile a 32-bit app that runs on iOS 6, or I can compile a 64-bit app using the iOS 7 sdk. I also prefer compiling OS X apps on my Linux box, because I can use whichever version of clang I want, but compile it so that it will run on Snow Leopard. The dev environment for Snow Leopard is missing a lot of the newer features of Objective-C, so I find it easier to do this, than to use the latest version of macOS and Xcode. I only use Objective-C, I haven't tried cross compiling Swift, simply because I do not like the language.
- hardwaresofton 8y agoThanks for the pointer and explanation of how you work -- I have a ton of questions about this: - 32bit linux, still? Is there any reason you haven't gone 64, or have you just been on some rock solid distro that never felt like it needed the upgrade? - Cydia Impactor[0] requires a jailbroken iPhone, does it not? What version of iOS are you running on the actual device? I understand that you're compiling with iOS6/7 SDKs but I wonder how long they'll be supported, and how fluently they work on iOS12 for example. - Are there any limitations on versions for the Cocoa SDK that you use for building OSX apps? Do you worry at all about EoLing of support or anything like that? > I only use Objective-C, I haven't tried cross compiling Swift, simply because I do not like the language. Could you explain this and why? While I'm not necessarily a Swift fan because I don't think it does particularly well in comparison with some of the recent languages that I really enjoy using, I found Objective-C to be pretty jarring. Clearly you know a thing or two about the toolchain and Objective C, I'd love to know why you prefer it to Swift or why you think Swift is not worth switching over to just yet (if at all). This is kind of random but maybe the thought will be interesting -- I've often wondered why it's not possible to actually just build and run XCode (or at least the lower level toolchain) on an apple device like a phone. Has anyone heard of anything in this area? [0]: http://www.cydiaimpactor.com/ http://www.cydiaimpactor.com/
- saagarjha 8y ago> you have to purchase new hardware every 3 to 5 years You really don’t. Generally macOS tends to extend software support (i.e. the latest release) to computers that are around 6-7 years old. > My main program was broken and I had to fix it several times during the past two decades, every time because of changes by Apple and not a single time because of a programming bug. Just curious: what were the problems you faced? > use XCode or die, get a developer account or forget it You can write Mac apps without either of these. Without Xcode the job is hard but not impossible, and you can distribute unsigned binaries and they will run on macOS.
- jonathanstrange 8y ago>> you have to purchase new hardware every 3 to 5 years > You really don’t. That's not my experience, it depends on how lucky you get. I still have a Core Duo iMac and that one didn't last longer than 5 years. Anyway, it would be easier for me if Apple made compelling hardware, but none of the current offers appeal to me in any way. They don't even sell iMacs with mate screens, and let's not speak about the keyboards or lack of extensibility. I purchased an Amd 1800X machine with 32GB RAM and Geoforce 1080 together with a 42 inch monitor for peanuts. Why would I spend the same amount of money on an iMac with 8GB RAM, slower processor, and smaller, but very glary display? Surely Apple has their customer base and appealing products for many people. I'm just not one of them any longer. (I used to have an Aluminum Powerbook Pro G4 - that was some quality. But now? They even come with power cables that are too short!) >Just curious: what were the problems you faced? Deprecated Carbon dependencies, deprecated GUI calls in Cocoa, problems with high DPI displays, problems with Gatekeeper and signing, problems with 32bit->64bit transition. Basically, whenever a new MacOS version came out, I wasn't sure whether my app would continue running. Sometimes it did, sometimes it didn't, sometimes the GUI was messed up. To be fair, the real problem was more on the Hackintosh side: Every problem could eventually be fixed with a simple recompile. Unfortunately, every time I had to set up a new virtual machine with the new OS, make a new Hackintosh installation and try to get a new OS image, and as you might imagine these come with different hacks and different obscure instructions every time, especially when you run them in virtual machines. >you can distribute unsigned binaries That's what I do right now, but users will pester you with bug reports and you have to explain to them every time again how to manually open the application and allow Gatekeeper to run it. That's especially annoying if you believe, like I do, that Gatekeeper is fairly insecure and can be broken or circumvented by any skilled hacker anyway (as past bug reports have illustrated).
- cpr 8y agoAs contrarian anecdata, a non-trivial app (with 3-d graphics) we developed for iOS 2 still runs fine on iOS 12. (Long retired from the app store, but my retained binary still runs.)
- snazz 8y agoWouldn’t an iOS 2 app be 32-bit, which was deprecated with iOS 11?
- opencl 8y ago32 bit apps were deprecated in iOS 10 and support was completely removed in 11.
- sigfubar 8y agoPerhaps the old binary still runs on an equally outdated deployment of iOS. I remember resisting the 6 to 7 upgrade for as long as I could, but an unexpected iPhone replacement under AppleCare has foiled my plans to remain on my favorite version of the OS.