Hello everyone, I am very new to app development but I'm VERY excited as I find coding to be an enjoyable hobby (working retail sucks -_-)
I had to throw down 400 for a Mac because I have always been a PC owner, but having a dedicated machine to code on seems like a good idea anyways. It's nothing special, a 2008 oct MacBook air with sub par specs but after some research others say they code simple apps just fine on them.
A huge problem for me though is how apple provides no method to code apps in C#, which is my primary language. I have very little experience in coding to begin with, took a 1 year AP comp science course in Java 2 or so years ago and before that I was making minor scripts in pascal. I just recently picked up coding again under a month ago, and have been making progress and enjoying C# in Microsoft Visual.
I didn't mind that I had to buy a Mac or the $100 lisence, but learning Objective C instead of coding in a format that I'm familiar with seems to be a huge jump, especially because I plan on to continue coding other programs in C# when not working on apps.
Is the ONLY way to make apps in C# shelling out $400 for monotouch? I honestly can't afford that, and dont understand why devs can't code apps for such a popular and well known device in a popular and well known language. Being a working college student gives me no time to learn Objective C, and also puts me in a finacial situation where Monotouh is simply unaffordable.
If there is anyway out of this pickle I'd really appreciate some advice :|
Well, not really sure why you bought hardware without fulling understanding what you were getting into. And C# is a Microsoft thing, where Obj-C is an Apple thing, so it doesn't take too much guessing to determine there might be an issue.
There really isn't too much to the language. If you understand OOP, then all you have to do is get used to the syntax. I suspect your Java background will be useful. Learning the full offerings of the framework is where the real learning effort lies, and that would be true regardless of the language.
I didn't mind that I had to buy a Mac or the $100 lisence, but learning Objective C instead of coding in a format that I'm familiar with seems to be a huge jump, especially because I plan on to continue coding other programs in C# when not working on apps.
The difficult part about software development isn't becoming familiar with the language used for a particular task. That's actually the easy part. If you know how to think like a programmer, then with a little effort, you should be able to switch to any language. Make sure to read the docs and go through some of the Apple-supplied sample projects.
Quote:
Originally Posted by Lightss
Is the ONLY way to make apps in C# shelling out $400 for monotouch? I honestly can't afford that, and dont understand why devs can't code apps for such a popular and well known device in a popular and well known language. Being a working college student gives me no time to learn Objective C, and also puts me in a finacial situation where Monotouh is simply unaffordable.
I believe paying for MonoTouch is indeed the only way to use C# for iOS development. And C# is really not the popular and well known language you suppose it to be. It's a very Microsoft specific language. The only reason to consider MonoTouch would be if you are trying to port a large complex project from a .NET platform.
My advice? Play around with Objective-C and Cocoa. Have fun with it. Build up your skill set. Build an app or two to add to your professional portfolio. Might as well; you've already paid the upfront costs. Plus, learning more languages and platforms can only make you a better programmer.
__________________ Recall It!Tag your notes. Tag your photos. Tag your thoughts. Tag your life.
Objective-C has a pretty steep learning curve. I was a C# programmer for 8 years before I switched to objective-c. I ran snow leopard on a virtual machine for about 6 months before a splurged on a mac book.
If you want to just learn at as a hobby, sell the macbook and just run a VM on your windows machine. If you are serious about learning it, upgrade your ram to 8gb (xcode 4 runs very poorly with less) and put in the time to learn objective-c. Theoretically, you could buy mono-touch, but even then, if you want to work for other places, they are going to want objective-c programming.
The stanford courses are a good place to start. There are also plenty of books on the subject. As with any skill, if you want to learn it in a reasonable amount of time, you'll need to spend 3-4 hours a day programming. Think of apps you want to make and try to create them (just to learn, no necessarily to sell)
I wouldn't agree with that at all. Maybe you mean Cocoa?
Quote:
Originally Posted by rcirka
If you want to just learn at as a hobby, sell the macbook and just run a VM on your windows machine. If you are serious about learning it, upgrade your ram to 8gb (xcode 4 runs very poorly with less) and put in the time to learn objective-c.
Well, he already has the machine. Also, I'd much rather run natively than on a VM. Not to mention licensing issues.
In my experience, while 8GB is much nicer, Xcode runs fine with 2GB RAM. Or 4GB RAM. (Plus, in a VM situation, you're likely to have 2GB at most allocated to any one VM, right?)
However, with 2GB RAM (such as with the OP's Air, and its max capacity), you definitely need to keep an eye on Safari. Now there's a memory hog. Even with 8GB, I often see my MBP having just a few hundred MB free, and swap space being used. Then I quit and relaunch Safari (and let it reopen all the previous windows and tabs), and like magic, I have 4GB or more free. Crazy.
__________________ Recall It!Tag your notes. Tag your photos. Tag your thoughts. Tag your life.
Wow, I just want to say how nice, fast, and thorough these replies are. It's nice to get professional responses considering most of the coding forums I participate in tend to be immature and uninformative at times.
I did considering running vmware on my HP envy which has amazing specs because I use it for audio production and run processor heavy DAWs such as Sonar 8.5. Problem is being that it's a laptop, I use the limited HD space up fast with samples and finished tracks, and have 2 external HDs nearly filled.
I don't mind purchasing the MacBook air and using it to code at all, I'd rather have a dedicated machine for this because I intend to code as much as my free time allows it. As far as I know, the 2mb RAM in MacBook airs cannot be upgraded? It's a 2008 oct model, my funds didn't really allow me to get anything better although I plan on upgrading to an iMac or MacBook pro if I find app development to be just as enjoyable as my experiences using .NET framework. I'm not familiar with Mac or OSX in the slightest, I only really used them for Photoshop during class but preferred windows as I'm a creature of habit. Is 2gb ram to lackluster for developing on? I don't see the need for 8gb, the only reason I got 8gb on my PC is because of the needed Mixer and plugins that consume processing power.
I didn't realize Monotouch was so expensive untill yesterday, still $400 seems ridiculous, $200 would be more of a fair price. I know there is a free "trial" mode so I'll test that out as well as mess around with Objective C. I guess what really discouraged my use of it was a post I saw translating the code of a procedure in C# to Objective C, and looking at the code I had barley any idea how they executed the same task. Regardless I shouldn't blindly rule it out without giving it a chance, so thank you for helping me realize that.
My last though is about the MacBook air I bought, are the specs too low for developing? It seems I will spend most of my time at first toying around and learning the software, is it no good for that either? I wish apple would let 3rd parties use their OS, this is when I'd usually build my own comp or get a refurbished one for cheap that would do the job :|
Speaking as a long-time C# programmer (since the very first version):
Since you are new to this, I recommend starting with iOS 5 on XCode 4.
An extra benefit (apart from having to learn how to do things the old way when there's a newer, better, easier way -- e.g. using Blocks which is like C# Lambdas+Closures) is that in iOS 5 there is automatic reference counting. This gives somewhat C#-like memory management, removing the burden of having to write [thing release] [thing autorelease] [thing retain] all over your code. In addition, it allows for some compiler optimizations that actually improve performance over writing your own memory management, so all the old-fashioned haters will eventually switch over to ARC once iOS 5 is fully mainstream.
For a C# developer, starting with iOS 5 with all the goodness of iOS 4 plus new goodness like ARC, plus obvious improvements in UIKit makes a lot of sense, IMO. I mean, don't get me wrong -- start with Apple's sample apps -- download the code, play with how to make it do different things, etc, just like any other new environment you are diving into ... but when you are ready to write your first real app, I'm saying do it on iOS 5.
You can read up on why Objective-C makes a lot of sense for how Apple does things later on. Most of it revolves around dynamic (Objective-C) versus static (C#, Java) and how that plays with things like versioning, interop, etc.
Speaking as a long-time C# programmer (since the very first version):
Since you are new to this, I recommend starting with iOS 5 on XCode 4.. .
It's nice to see that experienced C# coders make the switch helping others, thank you and I intend on using your advice.
I decided against the 2008 MacBook air, and I'm going to mess around as much as I can untill I can afford a better unit. I'm still looking for a small and portable laptop, so the newer generation airs are what I'm looking into. Although the MacBook pros are noticeably better, with a much faster processor and better HDD space at a similar price, so im back and forth between thoes 2 models. I would be buying the newest version of either on available, but refurbished off eBay to save some money. It's probably a smarter idea to wait and throw in another 300 or 400 for a much better laptop rather than settling for a $400 2008 unit.
Will the newest generation of airs work well with ios5 and Xcode? My cutter machine has an intel i5 processor and I couldn't ask for anything better, but the air i5s are 1.6-1.7 speed which seems a little low. But the 4mb ram will be nice, so if I take care of the unit can I expect it to run xcode and ios5 well? I know the MacBook pro is a better choice, but I'd prefer the air considering I already lug around my 15" envy which is the same exact size and width as the pro, and would rather not add another moderately big unit to that.
It's nice to see that experienced C# coders make the switch helping others, thank you and I intend on using your advice.
I decided against the 2008 MacBook air, and I'm going to mess around as much as I can untill I can afford a better unit. I'm still looking for a small and portable laptop, so the newer generation airs are what I'm looking into. Although the MacBook pros are noticeably better, with a much faster processor and better HDD space at a similar price, so im back and forth between thoes 2 models. I would be buying the newest version of either on available, but refurbished off eBay to save some money. It's probably a smarter idea to wait and throw in another 300 or 400 for a much better laptop rather than settling for a $400 2008 unit.
Will the newest generation of airs work well with ios5 and Xcode? My cutter machine has an intel i5 processor and I couldn't ask for anything better, but the air i5s are 1.6-1.7 speed which seems a little low. But the 4mb ram will be nice, so if I take care of the unit can I expect it to run xcode and ios5 well? I know the MacBook pro is a better choice, but I'd prefer the air considering I already lug around my 15" envy which is the same exact size and width as the pro, and would rather not add another moderately big unit to that.
If portability isn't your top concern, then it's possible (depending on your specific needs) that you'll be better off with a MBP than with a MBA. Especially if you stick an SSD in the MBP. As for me, I'm planning on moving from a mid-2010 15" MBP (with SSD) to a 2011 MBA soon. Because I do care about the portability. I used 15" PowerBooks and MBPs for several years, and then moved to a 13" MacBook a few years ago, because it was smaller and lighter. Moved back up to the 15" MBP last year, and sometimes wish I hadn't; it was really nice carrying around a smaller, lighter machine for a while. Although the extra screen real estate on the 15" is nice (but you get the same resolution on the 2010 or 2011 13" MBA, so that's something to consider).
The current Airs will work fine with Xcode. I would say there is no real need to go with a MBP for doing iOS development. Unless, for other work/usage, you absolutely need a terabyte of storage, or a DVD drive, or something of that nature. iOS 5 development, I can't comment on, because we're not allowed to discuss it in these forums (see sticky at the top of the forum page). Otherwise I would have corrected some misunderstandings posted in this thread about it.
Don't be afraid to go for an Air. Make sure to stop by a store and check them out, though, to see if your eyes are comfortable with the higher density displays, if you haven't already.
__________________ Recall It!Tag your notes. Tag your photos. Tag your thoughts. Tag your life.