New to app development

Discussion in 'iOS Programming' started by Futhark, Jun 20, 2012.

  1. Futhark macrumors 65816

    Futhark

    Joined:
    Jun 12, 2011
    Location:
    Northern Ireland
    #1
    This question is way down the line for me as I'm only learning my first ever programming language (Objective-C) but something I'm curious about.

    How do you write apps that you want to use on different devices? For example iPhone 3G S, iPhone 4/4S & iPad 1/2 & 3rd Gen.

    Some of these devices don't have retina display for example then you have iPads that screens are much better anyway.

    Do you need to write different versions of your app or what is the process?

    Thanks in advance.
     
  2. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #2
    You're getting way ahead of yourself.

    First off, Obj-C is not a language you should learn without knowing at least the basics of C first. C may be mixed in anywhere in Obj-C code, and is generally faster and more portable (there are C compilers for pretty much every platform more complicated than a calculator... Obj-C, on the other hand, is much rarer. It can be used on Apple products, and that's about all.)

    I'd suggest spending at least two weeks studying C first... Google "Learn C The Hard Way". It's a free ebook. Read and do at least the first 16 exercises or so. More likely, you'll want to spend two months and make it up to the 30th or so exercise, but the first 16ish should be good enough.

    After learning C, I'd suggest going straight for the iTunes U videos that Stanford has for iOS development. They'll teach you enough Obj-C throughout those lectures, plus you'll actually be able to do the stuff for iOS devices.

    Regarding your questions... I personally write a single app for all platforms. The issue some developers have is they're unwilling to make their code screen independent from the beginning. They're have constants in their program that assume the screen is 480x320 or a certain ratio. DON'T DO THAT! It's really that simple... Apple's code never depends on a certain resolution or aspect ratio. Why? Because that makes their programs future proof. When suddenly there's a new 9:5 iPhone, apple doesn't need to modify their UI elements to make them work, because they never assumed a screen size or resolution in the first place. They make their elements so that they stretch/scale for various screen sizes.

    Now... Having said that... The iPad really is quite different from the iPhone. Simply scaling up the iPhone version may not be the best idea. It's possible to include seperate views in the same app for the iPhone and iPad that rely on the same controller.

    But that didn't make sense to you because you don't know the languages yet. So I wouldn't suggest thinking about it too much right now. Focus on learning C.
     
  3. Futhark, Jun 20, 2012
    Last edited: Jun 20, 2012

    Futhark thread starter macrumors 65816

    Futhark

    Joined:
    Jun 12, 2011
    Location:
    Northern Ireland
    #3
    That actually made GREAT reading. Thank you so much for such an in depth answer.

    Would you recommend C or C++ books? I see there's a Programming in C++ for Dummies book
     
  4. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #4
  5. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #5
    Yep, like ArtOfWarfare said, learn C first.

    I started with Objective C and the concepts were to advanced for me. So I stepped back to C with "Learn C on the Mac" book. Then when I stepped into Objective C it was easier because I understood programming much better.

    I am seeing more and more people wanting to skip the learning programming part and just want to make an app.
     
  6. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #6
    C++, like Objective-C, is an object oriented language that derives from C.

    What those who suggest you learn C first mean is C, not C++.

    My humble opinion is that you should not go too far with that. The two weeks ArtOfWarfare suggests is plenty.

    Hillegass covers what you really need to know of C to learn Objective-C 2.0 in the first 70 pages his recent Objective-C book. Kochan takes a different approach, teaching C along the way with Objective-C.

    B
     
  7. Futhark thread starter macrumors 65816

    Futhark

    Joined:
    Jun 12, 2011
    Location:
    Northern Ireland
    #7
    Have any of you seen the tutorials on Lynda.com? I was going to try 3 of them by Simon Allardice. The first being

    Foundations of Programming: Fundamentals

    The second is

    Objective-C Essential Training

    And the third is

    iOS SDK Essential Training (2012)

    Are these appropriate for my needs?
     
  8. moonman239 macrumors 68000

    Joined:
    Mar 27, 2009
    #8
    Learning C before Objective-C? Boring. I'm the kind of guy who likes to get ahead of myself. You can learn how to code as you learn how to do XYZ. Besides, if you just want to write an informational app you may not need to write much code, if at all.
     
  9. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #9
    I'll be honest that this is the approach I took, initially. It left my knowledge of C very incomplete, which resulted in a lot of unnecessary hackering of solutions. I've since gone back and learned everything that I hadn't already learned about C.

    I think the path I took is the wrong one. Although perhaps more "boring", it'll result in a lot less frustration down the road.
     
  10. Futhark thread starter macrumors 65816

    Futhark

    Joined:
    Jun 12, 2011
    Location:
    Northern Ireland
    #10
    Programming in Objective-C 4th Edition is what I've been learning from so far but think I DEFINATELY need a better understanding in the fundimentals.
     
  11. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #11
    If you want to be a programmer don't rush it. The faster you try to do things the less you learn and the more confused you will get.

    When you understand it, then you don't have a problem writing it or knowing what you need to look up. I spent many months learning and understanding just C. Then learning and understanding Objective C. It was around 1 year into my learning curve that I made my first GUI hello world with Cocoa.

    If you are struggling with the concepts in Object C then stop, go backwards and start with C.

    If you want to be any good at it you need to not only learn the basics, you need to understand them. Programming is a lot of fun but if you are struggling you will think it sucks, it's to hard and quit thinking your not smart enough.
     
  12. taedouni macrumors 65816

    Joined:
    Jun 7, 2011
    Location:
    California
    #12
    Honestly just stick with Objective C and see how it goes. If you learn C you'll still have to learn Objective C. Each language is different. I can tell you one thing, Objective C appears thus far much easier than C++. The only reason I see why learning C first would be beneficial is if you can't understand the basics of programming. For example let's say you cannot grasp what pointers, objects, classes etc are. I think that Objective C 4e is a great book but it can't be done alone. It does a great job at explaining the basics without going into too much detail (if you're studying computer science you will learn more than just programming). If you're having trouble remembering how to apply what you learned then look online for some practice.
     
  13. iPhone2454 macrumors newbie

    Joined:
    Mar 7, 2012
    #13
    I have tried lots of tutorials and I have been reading Kochan's book but I STILL cannot grasp simple things... Can you guys suggest something? I'm struggling a lot with OBJ C so I don't want to try C+. :/
     
  14. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #14
    One thing that might be a bit much for new people is that you might be learning several things at once.
    1. Computer Programming
    2. Object Oriented Programming
    3. Xcode
    4. iOS
    5. Apples APIs for iOS

    If you haven't done programming before, you might want to start with a simple procedural language for a few weeks so that you can get a handle on flow control, parameters, function calls, etc... then move over to ObjC.

    I wouldn't spend too much time on a procedural language as they really aren't used any more. But in order to do ObjC, you really should have some computer programming background, even if it's only a few weeks.

    Another idea is to do some Java or any of the web page programming stuff.

    Is there a certain part of ObjC that is not sinking in?
     
  15. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #15
    Lots of things will qualify as "simple things". Unless you tell us exactly what you're having trouble with, it's impossible to give any useful suggestions.

    Please give one example of a simple thing you don't understand. Describe a specific thing and what you don't understand, or give a specific page in Kochan's book, and also tell us which edition of the book.

    It may be surprising, but being able to explain problems precisely, in a way that others understand, is a crucial programming skill. Not just so other people can help you, but because programs you write for the computer are essentially precise explanations of problems. So being able to see a problem, break it down, then explain it step by step, is exactly what programming is.

    Please read Getting Answers for a breakdown of how to ask questions so you can get answers.
     
  16. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #16
    There used to be books on starting out in Basic or Logo (or other easy language) in the children's section of the public library. You might check the children's section for such in your town. Or maybe a used book store. Or look into Alice or Squeak programming web sites for kids.

    Can't get much simpler than that.
     

Share This Page