So I'm thinking of writing apps for iPad and iPhone. I have no idea if I'll ever want to sell anything I write, but I figure it can't hurt to learn (more on that later).
I am a Windows user, and have 3 Windows systems, running Windows 7, 8.1, and 10 respectively. I have never owned a Mac, even though I love doing art, music, and other creative work on my computers.
I know that I'll need a Mac computer for iOS development. As you can see by my signature, I am very disappointed in Apple's lack of groundbreaking product development for enthusiast customers, so I am hesitant to buy an MBP, which I see as overpriced and under capacitized. In fact, I do not want to reward Apple's lack of entrepreneurial spirit by buying anything more than the laptop and whatever I need to learn to code for iOS.
Well that's just like, your opinion, man.
The Mac is actually a better buy than the Surface Book. It's faster in all renditions up to the $1800 discrete graphics option. Comes with more memory too. Plus the resale value because, while you might not think it's very innovative, the keyboard is a dream to type on (better than any other keyboard I've typed on in my entire life on a laptop, I've used ThinkPad T series and SteelSeries MSI laptops) which is important given how many lines of code you'll have to type just to get anything running properly.
The CPU is fast, the storage is fast and it's built very well. Issues are rare and few and far between.
You don't NEED to develop in native iOS code either. You can build a Hackintosh, use Xamarin or Unity to develop, which will be in C# and can be compiled in Xcode and uploaded to the iTunes Connect (I published my first app using Unity/C#, it's actually a very good language and very solid in OOP and sub classing).
Your negative attitude about Apple versus Microsoft is also not good if you want to be a developer. When you've developed apps a lot, you learn that having loyalties is kind of pointless, just use whatever works best for the money.
I guess I am thinking of buying a MacBook or MacBook air. But I need help. Details to follow.
1. CPU: What is a good minimum-to-middle range processor for iOS development?
2. For iOS development, what should I be looking for in terms of memory, graphics, and disk space?
3. What software tools will I need?
4. What types of educational help are out there?
Are you going to be developing 3D games? If not, then honestly any MacBook will be good. I work full time as a developer, have zero issues developing, deploying and building and I use a 2011 Sandy Bridge MacBook Pro 13" base, upgraded to 16GB of ram and a 250GB SSD.
You can develop on iOS with 4GB of ram and 128GB of storage space and an integrated Intel GPU. That's how great Apple is at designing an IDE.
This really depends on how much you want to spend. If you want something upgradeable, I think you should pick up a refurbished or second hand 2012 MacBook Pro 13" because it has thunderbolt, two USB 3.0 ports, can be upgraded to a 1TB SSD or 16GB of ram fairly easily. The battery life is decent and even 3 years after its release, it's a very capable machine.
If you wanna spend $1300-1500, a Retina 13" is light, fairly powerful, very well equipped with ports, great keyboard and trackpad, Industry leading screen quality and will have enough ram to be future proof.
If you wanna spend around $1000, I think you should try to get a refurbished 13" Air with 8 or 16GB of ram but beware, with upgrades the Air gets close to Retina price and the Retina is absolutely better buy for the price.
If I were you, not even knowing if you'll enjoy doing this: I think you should find a 2012 MBP on Amazon second hand for like $550-650 and an 8GB ram kit. This gives you plenty of storage space, plenty of CPU power and an upgrade route in case you actually DO enjoy doing this.
You'll need Xcode, which is free.
Education?
This depends: Do you wanna get a job or make your own applications. If you want to get a job, then learn Objective-C.
I recommend two books: Big Nerd Ranch 4th Edition and Programming in Objective-C by Stephen Kochan. Swift is nice, but the industry is still heavily Objective-C dependent. Plus you can always learn Swift after you learn Objective-C.
If you just wanna build your own apps, I would say maybe go with Swift, but I'm not sure about Swift books. I will say that regardless of which path you choose, you should definitely go on iTunes University and watch Stanford's CS193P (iOS Development in Swift or Objective C). It's free, it's a full semester course and it will give you a TON of information.
Do you know how to program already? If you don't, there's other sources I recommend:
CS50x also on iTunes University. It's a C based introduction to programming. I also recommend Free Code Camp and Odin Project.
Other: For my coding tasks, I expect I'll use an external ergo keyboard, trackball (I am left-handed and use a Logitech Marble Mouse because it works for lefties or righties). I plan to use one or two 27" IPS external monitors (not Apple brand). So with external mouse, keyboard, and monitor, I plan to pretty much keep the lid of the Mac closed.
k.
There will be times when I'll travel, however; so the laptop's built in keyboard, pointing hardware, and screen will be used from time to time. The screen especially, should be easy to use, and probably should be a Retina screen. The keyboard should probably have a separate "calculator" set of keys, and should also lend itself to touch-typing, with raised "bumps" on critical keys, such as "F", "J", and calculator "5".
Mac is compatible with almost any third party keyboard except Thermaltake Poseidon keyboards. I recommend Cooler Master QuickFire Rapid with MX Brown keys.
Coding Background: I do have some scripting and coding experience in C++, Java, and Visual Basic, along with mainframe computer experience in COBOL, assembler, PL/1, Rexx, and CLIST. The first three are compiled languages and the latter two are scripting languages.
Okay, TLDR. But can anybody recommend to me where to begin?