How to learn Objective C and Swift?

Discussion in 'iOS Programming' started by Aditya_S, Feb 13, 2016.

  1. Aditya_S macrumors 6502

    Joined:
    Jan 25, 2016
    #1
    I am interested in iOS app development but I have no experience with coding or programming. Most websites I go to only teach Swift for iOS 9 and not Objective C which I heard will be more useful to learn. Where is the best place to learn Objective C and Swift to develop iOS apps?
     
  2. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #2
    Most books and sites are giving up on objective C because there really isn't anything new in ObjC.

    ObjC has been around for a while and there are plenty of books our there. I like the Lynda and Big Nerd Ranch. I'd get something from the last few years so you'll be up to date.

    Swift is new. < 2 years, not many advanced books and Swift itself is changing.

    You don't have learn both. Should be plenty of books on Swift by now.

    Is there a reason you want to learn both? What are your goals?
     
  3. Aditya_S thread starter macrumors 6502

    Joined:
    Jan 25, 2016
    #3
    Well I was going to learn only Swift but I looked in some other forums and most other developers say to learn Obj C first because you can do finer things with it and once you learn it, Swift will be way easier to learn.
     
  4. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #4
    The two languages are pretty different and I don't see much logic in learning the "harder" one then the easier one.

    I put harder in quotes because ObjC is harder for some. IDK of you can do finer things with ObjC vs Swift, both seem to have the same power.

    If you're looking for a job, I'd look at what the job market is asking for. Right now only about 10% of the top 100 apps are using Swift. Swift doesn't have the legacy code the ObjC has and it'll be a long time before people go back and rewrite most of the legacy code in Swift.

    Most advanced apps have legacy ObjC code and there's not much reason to convert it.

    I'm learning Swift just because of the job market, but I don't see that knowing ObjC helps because Swift isn't like any other language I've learned.

    IMO, you really need to think about your goals. If you're making games, maybe Unity would be the better choice and Unity uses C#.

    Are you going to make games?
     
  5. AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #5
    Swift is easier. The hardest thing about learning how to code is sticking with it. I have a lot of friends who try to learn coding and they all quickly give up and get bored. It really doesn't matter which language you pick first, so long as you just stick with it. When you start learning, make sure you try to spend at least an hour a day learning it, that's my best advice.
     
  6. Aditya_S thread starter macrumors 6502

    Joined:
    Jan 25, 2016
    #6
    Im not looking for a job, I'm was interested in just making some basic games. I've never programmed or coded before so I don't know how game engines like Unity work and I didn't know C# worked with Xcode. Would I just code in C# to use Unity or is there something else I need to do? Also, if I'm just making basic games, can I make them in Swift or Obj C? Sorry if I asked too many questions
     
  7. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #7
    Ok, Unity is a whole system by itself. The code for Unity doesn't work in Xcode.

    Xcode does C, C++, ObjC, and Swift.
    Unity does C# (I don't know if it does C/C++ or not)

    Games can be written in either of these, it's really more of a personal choice. You might want to check out some tutorials and watch some YouTube videos that might help you pick what you want to do.

    If the programming part isn't too important, you can get some templates for cheap or even free. Some think programming is fun and challenging, but it's not the easiest thing in the world to learn.
     
  8. Aditya_S thread starter macrumors 6502

    Joined:
    Jan 25, 2016
    #8
    So if I'm creating a game with Unity, how do I send it to Apple? And if Xcode supports C and C++, is it possible to write apps with them?
     
  9. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #9
    I think Unity requires an account with Apple and build with Xcode in order to make the app. The code is probably translated from C# into compiled modules and called like an API call from code that Unity makes.

    What you send to Apple is a compiled app. I think the Unity process is to do all the work in their editors, select to create the app, build in Xcode and submit to Apple.

    Xcode does support C/C++ and yes you can create apps with them. ObjC is simply C with Objects. So one advantage of learning ObjC is that it is C. Many don't like C because it's not so easy for them, but it has to be one of the most common languages.

    Here's some Swift that might give some insight:


    Then maybe some insight into Unity. I haven't done C# in a while, but I remember liking it.
     
  10. KarmaRocket macrumors member

    KarmaRocket

    Joined:
    Jan 4, 2009
    Location:
    Brooklyn, NY
    #10
    Unity allows you to create games and port them to multiple platforms. It's one of the main strengths of Unity. You can write a game and with some tweaking have it ported to iOS, Android, Windows, Mac, PS3/PS4, Xbox 360/One and even Nintendo. It's not as easy as just checking a checkbox and compiling, but you have the option to port your game to multiple platforms.

    You can write apps in C/C++ within Xcode, but writing in Obj-C or Swift will give you more access to specific apple libraries etc. With C/C++ you may need a workaround or find a wrapper. It's just better to write in the native language that apple fully supports.
     
  11. Aditya_S thread starter macrumors 6502

    Joined:
    Jan 25, 2016
  12. tyche macrumors 6502

    Joined:
    Jul 30, 2010
    #12
    How to learn Objective-C.
    1) Smash head on desk
    2) Uh, I forget, what was the question again?

    But seriously, if you're new and starting out learn Swift and how iOS works with it. I wouldn't recommend Objective-C to a first time learning programming. The strength of current Objective-C over Swift is in details far too deep you will never see them until you're much more experienced. By then adding Obj-c knowledge would be much easier.

    But no matter what your choice, the best way to learn is to have reasonable idea in mind (not the next Clash of Clans) just a neat app or game you would like to make, decide what your target is (Windows desktop, iPhone/iPad) and then work on the topics needed to complete it. I'd also recommend a good cbt that goes over the basics of the language and use the things you learn and apply them to your pet project.
     
  13. t0mat0 macrumors 603

    t0mat0

    Joined:
    Aug 29, 2006
    Location:
    Home
    #13
    Lynda has some decent courses on learning objc for swift users, or the older courses are in obj c.
     

Share This Page