Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

moonman239

Cancelled
Original poster
Mar 27, 2009
1,541
32
I just thought I'd put a thread together for those of us who are experienced developers to share tips with those who are new to iOS development.

I'll start the discussion.

Tip #1: Get to know the debugging tools. Figure out what it means to "step over", "step into", and "step out of" an instruction/thread. Also figure out how to do those things. Learn what a "stack trace" is and how to use the Debug Navigator to view the stack trace and to find the line of code that is causing a method to fire. Learn how to make a breakpoint. Especially learn what exception and symbolic breakpoints are and how to create them. Taking just a few minutes to learn how to use the debugger, and getting into the habit of using as much of that knowledge as you can apply when debugging your code, will save you hours of frustration.

Tip #2: Get an account on Stack Overflow. If you have a problem and have spent hours trying to find a solution, you can always ask the Stack Overflow community for a solution.

Tip #3: When posting on forums, write good questions. Use the question box to tell others exactly what the problem is, then use the body of the question to post: the relevant code, what you've tried so far, what solutions you think are irrelevant to your problem & why, and anything else other people should know - like how to reproduce the problem you're having, if it's not obvious.

Tip #4: Don't reinvent the wheel. Look into accomplishing whatever goals you have for your program using existing frameworks and libraries. You'll save time and your program just might be more efficient. Plus, if there's a problem and you have reason to believe that problem is caused by someone else's code, perhaps you can take comfort knowing that you didn't cause the problem.
 
Last edited:

moonman239

Cancelled
Original poster
Mar 27, 2009
1,541
32
Should one go straight into learning Swift or learn Obj C first?
Well, I suppose it depends on what kind of programmer you want to be.
Do you want to be well-rounded? To get a job at a company that's been developing apps since before we even heard of Swift? Do you want to make your apps as efficient as possible? If so, then you need to learn Objective-C. Actually, some would say you should learn C or C++ first. Objective-C is just an object-oriented version of C, just like C++.
 

batting1000

macrumors 604
Sep 4, 2011
7,451
1,840
Florida
Well, I suppose it depends on what kind of programmer you want to be.
Do you want to be well-rounded? To get a job at a company that's been developing apps since before we even heard of Swift? Do you want to make your apps as efficient as possible? If so, then you need to learn Objective-C. Actually, some would say you should learn C or C++ first. Objective-C is just an object-oriented version of C, just like C++.

But say a company wants you as an iOS app developer. Are they likely gonna care if you know Objective C or not? I'd assume as long as you make the app they want, they won't care if it's in Swift or Objective C. I guess that's what I'm trying to get out of it
 

Essenar

macrumors 6502a
Oct 24, 2008
553
186
But say a company wants you as an iOS app developer. Are they likely gonna care if you know Objective C or not? I'd assume as long as you make the app they want, they won't care if it's in Swift or Objective C. I guess that's what I'm trying to get out of it

Sitting at my desk at a mobile studio that hired me, I can tell you with assurance:

Learn Objective-C. Swift is a buzz word for click-bait programming "tutorials".
Once you learn Obj-C, Swift will be "swift".
 

Essenar

macrumors 6502a
Oct 24, 2008
553
186
I just thought I'd put a thread together for those of us who are experienced developers to share tips with those who are new to iOS development.

I'll start the discussion.

Tip #1: Get to know the debugging tools. Figure out what it means to "step over", "step into", and "step out of" an instruction/thread. Also figure out how to do those things. Learn what a "stack trace" is and how to use the Debug Navigator to view the stack trace and to find the line of code that is causing a method to fire. Learn how to make a breakpoint. Especially learn what exception and symbolic breakpoints are and how to create them. Taking just a few minutes to learn how to use the debugger, and getting into the habit of using as much of that knowledge as you can apply when debugging your code, will save you hours of frustration.

Tip #2: Get an account on Stack Overflow. If you have a problem and have spent hours trying to find a solution, you can always ask the Stack Overflow community for a solution.

Tip #3: When posting on forums, write good questions. Use the question box to tell others exactly what the problem is, then use the body of the question to post: the relevant code, what you've tried so far, what solutions you think are irrelevant to your problem & why, and anything else other people should know - like how to reproduce the problem you're having, if it's not obvious.

Tip #4: Don't reinvent the wheel. Look into accomplishing whatever goals you have for your program using existing frameworks and libraries. You'll save time and your program just might be more efficient. Plus, if there's a problem and you have reason to believe that problem is caused by someone else's code, perhaps you can take comfort knowing that you didn't cause the problem.

Good tips but let's start with one vastly important:

Tip #0: Learn Objective-C. No, you don't need to use C/C++ first. It's useful but you probably won't be asked about it. Big Nerd Ranch is great but it's mostly a "this is how you can do this stuff but you should build from this" type of book.

Tip #5: Learn CocoaPods. Learn how to install, set up and install a few pods. Once you've done that, learn how to actually use the pods. Learning how to build a basic UITableView from scratch is nice, but CocoaPods can save you probably hours of time.

Tip #6: Learn AutoLayout constraints and learn the difference between when a UITableView is appropriate or a UIView with UILabel objects inside it.

Tip #7: Learn how to properly link your UIView elements to your method or header files. Learn when your declarations should be public (in a header) or private (directly in the method). A lot of the times, you're not writing a universal method that will be used repeatedly.

Tip #8: Google "hardest iOS interview questions", read the answers and learn the concepts behind those answers. I was asked to write FizzBuzz on the fly, thankfully I understood the denominator operator so I was able to wing it but if you don't know basic command line programming, you won't even get to the point where you write code that will be executed. Swift has playground, but you should know how to write a non XIB class file that runs in command line.
 

batting1000

macrumors 604
Sep 4, 2011
7,451
1,840
Florida
Sitting at my desk at a mobile studio that hired me, I can tell you with assurance:

Learn Objective-C. Swift is a buzz word for click-bait programming "tutorials".
Once you learn Obj-C, Swift will be "swift".

Gotcha, thank you

Good tips but let's start with one vastly important:

Tip #0: Learn Objective-C. No, you don't need to use C/C++ first. It's useful but you probably won't be asked about it. Big Nerd Ranch is great but it's mostly a "this is how you can do this stuff but you should build from this" type of book.

Tip #5: Learn CocoaPods. Learn how to install, set up and install a few pods. Once you've done that, learn how to actually use the pods. Learning how to build a basic UITableView from scratch is nice, but CocoaPods can save you probably hours of time.

Tip #6: Learn AutoLayout constraints and learn the difference between when a UITableView is appropriate or a UIView with UILabel objects inside it.

Tip #7: Learn how to properly link your UIView elements to your method or header files. Learn when your declarations should be public (in a header) or private (directly in the method). A lot of the times, you're not writing a universal method that will be used repeatedly.

Tip #8: Google "hardest iOS interview questions", read the answers and learn the concepts behind those answers. I was asked to write FizzBuzz on the fly, thankfully I understood the denominator operator so I was able to wing it but if you don't know basic command line programming, you won't even get to the point where you write code that will be executed. Swift has playground, but you should know how to write a non XIB class file that runs in command line.

Thanks!
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.