Mac OS X Programmer vs iOS Development

Discussion in 'Mac Programming' started by timebourne, Oct 9, 2012.

  1. timebourne macrumors member

    Joined:
    Sep 17, 2012
    #1
    A) I realize that the main difference is that one's for Macs and the other is for iPhone programming, but what are some other differences?
    B) If I pay the 100 dollars and become a mac OS X programmer, can I still program for iOS without paying more money?
     
  2. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #2
    To not only develop iOS apps, but to install and run those apps on iOS devices and/or submit them to the App Store, you need to enroll in the iOS Developer program. The Mac Developer program is for Macs.
     
  3. lee1210 macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #3
    You can develop for OS X without paying anything (other than the price of a Mac). To get an app in the Mac App Store you have to pay $99 per year for the Mac Developer Program. You can still make an app without paying and put it up on your own website without paying. iOS development is more restrictive, as you cannot distribute iOS apps through other means than the iOS App Store. This is a different $99 per year enrollment than for the Mac. You're largely paying for the app store infrastructure in both cases, but you have other options on the Mac.

    -Lee
     
  4. throAU macrumors 601

    throAU

    Joined:
    Feb 13, 2012
    Location:
    Perth, Western Australia
    #4
    As per above, except you can't actually get an app onto ANY i-device (even one you own) without a developer code-signing cert, which is included in the $99 developer account for iOS.

    You can test on thr iOS emulator, just not on a real device.
     
  5. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #5
    Oh ok thank you guys so much it really helps clear things up.

    Also, if I signed up for iOS could I get Xcode 4.2 for snow leopard? I heard that you had to be a registered Mac developer in order to have Xcode 4.2 for snow leopard not an iOS developer(I've checked and found that for Snow Leopard users only Xcode 3 and older is available for free, and for those with Lion and Mountain Lion the latest is available for free but not for Snow Leopard users, I have no idea why).

    Additionally, signing up for iOS—I can still write programs in other languages, right? The only special thing signing up gives me is the capability of publishing to the app store. I'm not entirely sure what "comes with" paying to become an iOS developer, which is why I keep asking questions.

    Oh and let's say I sign up for iOS but I decide I want to write a Mac application, can I use whatever comes with the iOS developer package to write it? I don't mean to publish to the mac app store but perhaps just write it for myself or put it up online or something of that sort.

    Lastly, about how long does it take for the payment to be processed, so if I sign up and pay, I could estimate when I could begin programming.
     
  6. macuser1232 macrumors 6502a

    macuser1232

    Joined:
    Jan 20, 2012
    #6
    Hey, not to burst your bubble, but it's a little late to make any real money from IOS development. I would really try programming for OS X. But, that doesn't mean you still can't program for IOS for fun!
     
  7. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #7
    I wasn't really planning on pursuing this as a means to make money, at least for now. I can see what you're saying though, there are already so many people that are dominant in the iOS app development that if I went into it, my apps would most likely be ignored because pretty much every app possible has already been created, etc etc. I'm an amateur with Apple programming so I don't really have a chance anyway. It will take a while before I can actually have the option of maybe selling an app for money.

    Either way, I won't be making much money, so I'd rather go for iOS and perhaps have the possibility of creating freeware or open source software if I can(I'm not sure, so I'm hesitant) for the Mac. Most of this is to just gain experience and learn.

    I"ll think on it.
     
  8. macuser1232 macrumors 6502a

    macuser1232

    Joined:
    Jan 20, 2012
    #8
    Oh ok. That's awesome! Please let me know how you do!
     
  9. Theclamshell macrumors 68030

    Joined:
    Mar 2, 2009
    #9
    It's certainly more difficult to make money from iOS development now, however, it is not impossible. We may think that all of the ideas are taken. But there are millions of great ideas left. We just don't know they exist, if we did, they would be considered taken ;)
     
  10. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #10
    Haha thanks guys :)

    One last-ish question: What exactly comes with the iOS developer "package"? Do you get xcode and a license to publish to the iphone app store? The details on the website just say "everything you need" but I want to know what exactly "I need". Thanks!
     
  11. r0k macrumors 68040

    r0k

    Joined:
    Mar 3, 2008
    Location:
    Detroit
    #11
    You can join for free, download Xcode and build apps for both OS X and iOS. You can run the OS X apps on your Mac and the iOS apps only in a simulator. If you want to run them on an iOS device and be able to submit them to the app store, you will need to pay $99 for the membership.
     
  12. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #12
    I already have Xcode 3, and I run Snow Leopard on my computer. However the problem is that I need Xcode 4(because the syntax is different and Xcode 3 does not support the new syntax), and that does not appear to be an option for me. I've read through some posts that showed that only paid/registered developers could get Xcode 4.2 for Snow Leopard, but I don't know if that applies to iOS developers.
     
  13. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #13
    Is your computer upgradable past Snow Leopard? If so, it seems silly to pay $99 to get an obsolete and buggy version of Xcode 4.2, when the price for upgrading to Mtn Lion is significantly less than $99.

    If your computer isn't upgradable past Snow Leopard, then it seems silly to pay $99 simply to learn the new Objective-C syntax, when you don't yet know Objective-C at all.

    You'd be better served by using Xcode 3 on Snow Leopard, getting hold of an older book or tutorial that teaches Xcode 3, and learning how to program using that. Trust me, if you master those tools on that platform, the effort to learn the additions of Objective-C 2.0 and Xcode 4 will be significantly less than what it took to master Objective-C 1.0 and Xcode 3. And probably by that time, Xcode will have advanced by yet another version, and you'll need at least a minor rev of the OS to accomodate it.

    In short, you don't need the latest and greatest in order to get started. You can go a long ways, and produce perfectly serviceable programs, using Snow Leopard and Xcode 3.
     
  14. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #14
    My computer is not upgradable from Snow Leopard, but I do think it's worth it to pay in order to learn the new syntax.
    It's like learning Latin instead of learning Spanish. Why learn Latin if no one uses it? If you were to go to Spain or Mexico and if you wanted to speak with the people you would not learn Latin, you would learn Spanish. I know I'm being a little irrational, but I'm a bit upset at my limitation—I was hoping I could learn the newer syntax(for various reasons—including limited time).
    In my case I'm stuck with learning the older sytax because I'm limited because of my OS. So yes, in my opinion it would be worth it, but there's no possibility anyway so I might as well just go and order an older book off amazon. Any suggestions? I have Programming in Objective-C Fourth Edition by Stephen G. Kochan, I guess I could just go get an older version of the book, but I'm open to any recommendations.
     
  15. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #15
    What other programming languages do you know? If you don't know any, then learning one, even one that isn't the latest and greatest, is sufficient to get started.

    Exactly how long is "limited time"?

    One of the most common errors in software design is not allowing adequate time. Another very common error in software design is not listing all your constraints up front. For example, I had to read between the lines to figure out the Snow Leopard requirement, and even then I wasn't sure if it's a hardware constraint, a budget constraint, or something else.

    If you pay the $99 for the Mac Developer registration, you can still get Xcode 4.2 for Snow Leopard and program for iOS. You just can't run on an actual iOS device. So you can still learn the new syntax, use it to write real iOS programs, run, test, and debug them under the simulator. You just can't run on the actual device (unless you jailbreak it).

    Since your stated goals were experience and learning, and since you have limited time and apparently a limited budget for new Macs, I don't really understand the insistence on targeting iOS with the new syntax. If you've never learned a programming language before, you have no idea how long that will take, and neither does anyone else. Even the best guesses could be off by an order of magnitude.

    I recommend that you take the tools you have available now, get started with those, and see how it goes. In software, things are always harder than they seem, take longer than initial estimates, and need to be adjusted to the skills of the person doing the task. Even after a couple decades doing it professionally, I still make estimation errors greater than 3X.
     
  16. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #16
    Ah sorry about the little tirade—I was pretty frustrated. I totally see your point though, so I hope I haven't offended you by blowing up in your face.

    I've had a few years of experience with C++ so I wanted to expand and go to Objective-C. My limited time is kind of skewed. Right now my schedule hasn't been very rigorous so I've had the time to take 1 or 2 hours for extra things every other day, but every other few weeks or so I'll have a few weeks or up to a month of not having any time at all. I want to be able to have programmed solid app for either Mac or iPhone or both by next year around this time, in the contraints of my time to spend. A lot is riding on if I can pull it off so I'm prepared to let go of some hours of sleep here and there. I've been assuming it will take a while to learn Objective-C thoroughly enough to create a solid application, maybe my fear or estimation of time is incorrect—I don't know anyone personally who programs for apple products so I don't have anything to go off of.

    Also, thank you for finally settling my question, I've been wondering for weeks now.

    I've decided it's best to stick to Xcode three and program using that with books using older sytax. I have another 2 years before I will be able to buy a new laptop, so I think it's safer for me to just stay within my constraints for now. Actually, if I programmed an iPhone app with Xcode 3, if I decide I want to publish to the iphone app store and I pay and sign up, will it accept code that is old? Or only applications intended for the newer iOS? (Note: I'm not trying to make money, but rather have it as an accomplishment and learned experience.)
     
  17. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #17
    No offense intended; none taken. Not in the slightest amount.

    That makes sense. Here's how I'd approach it.

    First, learn the language itself. That's the core Objective-C stuff, like how to define classes, subclasses, categories, and what the [] syntax is. I'd actually include Cocoa's foundation classes in that, because they're pivotal to so many other things.

    From a practical viewpoint, you can write command-line utilities that use Objective-C and Cocoa Foundation classes, without needing to know anything about any GUI. You can also use networking classes to work in this command-line environment (the NSURL* classes). The purpose here is to learn how all the invisible infrastructure works, and the fundamental Cocoa design patterns like delegation.

    Second, I'd say learn to use Interface Builder to make GUIs, and figure out all the stuff about dealing with NSViews, events, more kinds of delegates than you can shake a stick at, and the MVC design architecture.

    If you have a solid foundation, you'll be able to make the underlying Models of MVC with relative ease, even though you might trip and stumble over the V and C parts at first.

    Older code isn't a problem. You can support iOS platforms as far back as you care to go.

    There may be technical hurdles to cross if you're using really old Xcode versions, as they may be more difficult to get the code-signing and distribution bundling needed to make an app-store submission. When you actually reach that point, that would be the time to consider upgrading to the latest tools. But the code itself should still be ok, except for a few things.

    The "few things" would be features or classes that Apple has deprecated and actually removed. Most deprecations haven't been removed yet; they're still available even though their replacements have been released. The class reference docs will list deprecated classes and methods, and also tell you what the replacements are.

    Two years is a long time in this biz, and iOS isn't standing still. By the time you get to the point of upgrading your machine, the baseline will already have moved significantly. If you can't afford to stay on the leading edge, your best bet is to stay well back towards the trailing edge. For one thing, used Macs that support trailing-edge technology are a lot less expensive. And if your livelihood doesn't depend on riding the leading edge, there's a lot more calm water behind the leading edge, and a lot less blood in it.
     
  18. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #18
    Thank you so very much for the tips on how to go about learning to program for iOS, it really means a lot to me. Now I have a basic structure that I can refer to to use as a guideline(like an outline, in a sense).

    Does Xcode 3 fit into the parameters of "really old"? Do you think I will run into little or no problems with it? Where is the list of depreciated or removed syntax for Objective-C? Hopefully I can just do everything with Xcode 3, but worse comes to worse I'll have to find a way to make it work.

    Would it be alright if I could send you a PM if I ever run into a problems regarding these issues? I'm only asking this because I don't have anyone else to ask, and I have a feeling I'm mostly likely going to run into problems.

    Thanks for the advice. My problem is that I can't really spend over around 100-200 dollars on this for the next two years(technically it's a little less than two years, but it can get a little delayed). After that I'll be able to buy a new laptop, and everything I need to catch up. I'm prepared to do everything I can to stay with trailing-edge technology until these 2 years pas by and I can finally put resources into catching up with "the latest and greatest". If that does not happen I'll try to do what you suggested, so thank you.
     
  19. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #19
    For submitting iOS apps to the iOS App Store, I think it does. My point was that you're nowhere near the point of submitting apps to the App Store yet. And it's entirely possible that by the time you reach that point, even Xcode 4 may be "really old".

    You're looking at a single hypothetical end-point, and wondering if there will be problems upon arrival. You're failing to consider the entire process of getting to that end-point.

    I have no way of predicting that. If you've never done any programming before, neither do you. Some people "get it" easily. Others don't. You have to try it and see what happens.

    Xcode comes with builtin docs. Search for "deprecated". Ditto for the online docs.

    That's what this forum is for. I never answer PM'ed questions that rightfully belong on this forum. Well, that's not entirely true; sometimes I reply with "Post it to the Programming forum".
     
  20. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #20
    Alright, well, whatever happens, happens.

    Thanks for the help.
     
  21. ChrisA, Oct 11, 2012
    Last edited: Oct 11, 2012

    ChrisA macrumors G4

    Joined:
    Jan 5, 2006
    Location:
    Redondo Beach, California
    #21
    I disagree. The difference is FAR LESS. It's more like learning Spanish in Mexico then moving to Los Angeles. It's only a little different here.

    Your Latin/Spanish analogy would almost work for learning plain ANSI C on a character only terminal vs. Objective C for IOS. And even then I think ansi vs. objective C is closer. The real difference is what kinds of things you write in each language.

    Here is another analogy. Learn the write creative fiction in Spain in Spanish and you will find that you can very quickly be doing the same in English without having to go back to school. The skills transfer across languages. Same with programming. Learn how to develop software (I'm not talking about toy programs.) in Java and you will find you can do the same in Python or C. The skills you need to learn to write nontrivial software are language independent.


    BTW: most software written today is not aimed at consumers and does not live in an "app store". I've written software for 30+ years, every day and not one program was ever sold in a retail store. It's true MOST software is like that. The stuf I wrote lives inside a digital camera, a radar, an anti-air missile, a launch control room. Misc. military comand and control systems and so on. I call this kind of software "captive users" because I know who will use the software before I start.

    Back to saying everything has been done in IOS: No way, not even close. Examples....I wanted to have a line of vending machines that could be controlled from smart phones. They could sell anything, coffee, soda, sunglasses, who knows each machine could hold 50 different products. I think you could make a night vision system with an IOS device - see in the dark. I can think of a hundred things not yet done. What about a REALLY good controller for a model aircraft, almost an autopilot and you'd have standard instuments on the iPad like a flight sym but the model is really flying.
     
  22. timebourne thread starter macrumors member

    Joined:
    Sep 17, 2012
    #22
    I apologize if I offended you, I realize that my statement has very little accuracy.

    You make really good points and I can see your side of the argument, and I agree with most of them. Learning C++ has definitely really helped me with understanding object-oriented programming and getting familiarized with the mindset of programming overall.

    I don't intend on trying to make a living off of iPhone apps—I'd much rather incorporate coding with other things that I love, sort of like what you do(which, by the way, kudos to you, what you do is really amazing).

    I want to write and publish an app to learn a new programming language, to gain more experience with programming overall, to get acquainted with things here and there, and to have it to show as a solid accomplishment(having this aspect is really important for me right now which was why I was so distressed).

    Having said this, I appreciate your input and it has helped me create a more well-rounded perspective. Thank you for your time.
     
  23. throAU macrumors 601

    throAU

    Joined:
    Feb 13, 2012
    Location:
    Perth, Western Australia
    #23
    In your situation, i'd focus on OS X development.

    - it is free, and you can test on real hardware
    - you won't be able to get the iOS6 development tools without upgrading your OS
    - programming for iOS is easier if you've already learned how to code for OS X first.
    - the iOS simuator isn't perfect - you can actually write code that will run in the simulator just fine that will not run on a real device - by (for example) accidentally including OS X frameworks that do not exist in iOS. this means without the 99 dollar deve program / certificate, and uploading to a real device, you can't *really* test stuff properly.
    - the OS X platform isn't moving quite so fast at the moment in terms of changes


    I'm in a similar position myself. I have both OSX and iOS development reference, and have signed up for both developer programs.

    I'd get familiar with mac development first, then when you've got your feet wet, learn iOS.

    2c.
     
  24. 2ndPath macrumors 6502

    Joined:
    Feb 21, 2006
    #24
    Before you spend money on the iOS developer program, you should look into whether this will actually run under snow leopard. I started developing in iPad App under Snow Leopard using Xcode 4.2. When I upgraded iOS to the then current version (I think 5.1.1) I lost the ability to sign applications to test drive them on the upgraded iPad. While I solved the problem for me by upgrading (Mac) OS to upgrade Xcode, I read that it is at least not straight forward to compile and sign Apps for current iOS versions on Snow Leopard.
     

Share This Page