Reddit mentions: The best apple programming books

We found 105 Reddit comments discussing the best apple programming books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 17 products and ranked them based on the amount of positive reactions they received. Here are the top 20.

1. iOS Programming: The Big Nerd Ranch Guide (4th Edition) (Big Nerd Ranch Guides)

    Features:
  • Used Book in Good Condition
iOS Programming: The Big Nerd Ranch Guide (4th Edition) (Big Nerd Ranch Guides)
Specs:
Height9.75 Inches
Length7 Inches
Weight0.220462262 Pounds
Width1.5 Inches
Number of items1
▼ Read Reddit mentions

3. Cocoa Programming for OS X: The Big Nerd Ranch Guide (5th Edition) (Big Nerd Ranch Guides)

Cocoa Programming for OS X: The Big Nerd Ranch Guide (5th Edition) (Big Nerd Ranch Guides)
Specs:
Height9.9 inches
Length6.9 inches
Weight2.58822695588 pounds
Width1.5 inches
Number of items1
▼ Read Reddit mentions

4. Swift Programming: The Big Nerd Ranch Guide (2nd Edition) (Big Nerd Ranch Guides)

    Features:
  • Big Nerd Ranch Guides
Swift Programming: The Big Nerd Ranch Guide (2nd Edition) (Big Nerd Ranch Guides)
Specs:
Height10 Inches
Length1.25 Inches
Weight2.0723452628 Pounds
Width7.25 Inches
Number of items1
▼ Read Reddit mentions

5. Swift Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)

    Features:
  • Addison-Wesley Professional
Swift Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)
Specs:
Height10.25 Inches
Length1.25 Inches
Weight1.9510910187 Pounds
Width7 Inches
Number of items1
▼ Read Reddit mentions

9. Appreneur - Secrets to Success in the App Store

Used Book in Good Condition
Appreneur - Secrets to Success in the App Store
Specs:
Height9.01573 Inches
Length5.98424 Inches
Weight1.2 Pounds
Width0.244094 Inches
Number of items1
▼ Read Reddit mentions

10. iOS 8 for Programmers: An App-Driven Approach with Swift (3rd Edition) (Deitel Developer Series)

iOS 8 for Programmers: An App-Driven Approach with Swift (3rd Edition) (Deitel Developer Series)
Specs:
Height9.25 Inches
Length7.5 Inches
Weight1.4109584768 Pounds
Width1 Inches
▼ Read Reddit mentions

12. iOS 7 Application Development in 24 Hours, Sams Teach Yourself (5th Edition) (Sams Teach Yourself -- Hours)

iOS 7 Application Development in 24 Hours, Sams Teach Yourself (5th Edition) (Sams Teach Yourself -- Hours)
Specs:
Height9 Inches
Length7 Inches
Weight2.5132697868 Pounds
Width1.25 Inches
Number of items1
▼ Read Reddit mentions

13. Objective-C Fundamentals

    Features:
  • Used Book in Good Condition
Objective-C Fundamentals
Specs:
Height9.25 Inches
Length7.38 Inches
Weight1.34922904344 Pounds
Width0.85 Inches
Number of items1
▼ Read Reddit mentions

15. iOS Auto Layout Demystified (2nd Edition) (Mobile Programming)

    Features:
  • Breaking Free from Emotional Eating
iOS Auto Layout Demystified (2nd Edition) (Mobile Programming)
Specs:
Height11 Inches
Length8.5 Inches
Weight0.97444319804 Pounds
Width0.64 Inches
Number of items1
▼ Read Reddit mentions

16. iOS Auto Layout Demystified (Mobile Programming)

iOS Auto Layout Demystified (Mobile Programming)
Specs:
Release dateOctober 2013
▼ Read Reddit mentions

🎓 Reddit experts on apple programming books

The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where apple programming books are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Total score: 724
Number of comments: 4
Relevant subreddits: 1
Total score: 21
Number of comments: 15
Relevant subreddits: 1
Total score: 16
Number of comments: 2
Relevant subreddits: 2
Total score: 8
Number of comments: 2
Relevant subreddits: 1
Total score: 7
Number of comments: 4
Relevant subreddits: 2
Total score: 7
Number of comments: 2
Relevant subreddits: 2
Total score: 6
Number of comments: 2
Relevant subreddits: 1
Total score: 4
Number of comments: 2
Relevant subreddits: 2
Total score: 3
Number of comments: 2
Relevant subreddits: 2
Total score: 2
Number of comments: 2
Relevant subreddits: 1

idea-bulb Interested in what Redditors like? Check out our Shuffle feature

Shuffle: random products popular on Reddit

Top Reddit comments about Apple Programming:

u/42657536 · 3 pointsr/swift

Sorry for the really late reply. I started out with the intro book in late May since I had very little programming experience (I know how to use Scratch, and I did a little bit of Java programming in a class I took two years ago but I forgot all of the Java). I went through all of those lessons in the intro to app development curriculum first and did all of the exercises. I also made sure I understood everything in each lesson before moving on. It took me a little over a month to finish them all, but I know I could have finished them a lot faster. It took me so much longer because there were some days where I didn't do anything with Swift (and there was even a week where I didn't work on it).

After that, I started to read The Swift Programming Language to build on what I learned from the intro book, and I also started reading the Big Nerd Ranch book on Swift (I didn't buy it, but I read it sometimes at a Barnes and Noble near me. I really want to purchase it because it's a fantastic book, but I'm waiting on them to release a new one on Swift 4 in the coming months before I purchase it.). More recently, I started reading the App Development with Swift book, and I really love how that book separates things into lessons and explains everything. I also recently started going through the Hacking with Swift lessons, and they are really great at explaining everything and teaching you more about XCode.

During all of this, I also have been developing a simple password generator app to practice what I've learned, and I just recently finished it. All I need to do is figure out how to get auto layout and the constraints to work in order to have it work on all of the different iOS devices (I'm still very confused about how to get it to work). I have an idea for a macOS menu bar app, but I still need to figure out how to make it.

If you're a complete beginner at programming (no experience or very little experience), I would recommend that you go through the intro book first. It teaches you some important concepts in a simple way, and you can finish it pretty quickly. Then, I would recommend going through the App Development with Swift and The Swift Programming language to really build on what the intro book teaches. You should check out the Big Nerd Ranch's Swift Programming book, too, but if you're going to buy it, you should probably wait a couple of months for them to release a new edition on Swift 4 (if you buy this one on Swift 3, some of the syntax may be outdated when Swift 4 releases). Hacking with Swift is also a fantastic resource. While you're learning how to program in Swift, you also need to make sure that you work on some kind of project/app so that you can practice what you're learning, so you should think of an idea for a simple app that you can make.

I hope that you find this helpful. If you have any more questions, feel free to ask! Good luck with learning how to program in Swift! I've only been doing it for 3 months now, but I feel like I learned a lot in the last 3 months and that I've become pretty decent at programming in Swift (I still need to learn a lot more, but I'm definitely much better than I was 3 months ago.).

u/extra-ordinary-life · 1 pointr/Entrepreneur

Thanks for all the advice. It’s been very helpful in formulating our next steps.

Over the last 24 hours I have followed all the links and directions from everyone down many an internet rabbit hole and onto all of the associated tangents. I love not knowing where you’re going to end up. This has lead me to many places, but the below have been the most useful.

Redditor Lockieee posted this http://www.reddit.com/r/Entrepreneur/comments/29ndpa/launched_an_iphone_app_today_heres_a_list_of/
not long ago, it’s a mega list of useful resources he accumulated from looking at r/startups for the development of his app. He actually just launched a new word game called Haste which we have already been playing and love (the world really is a small place). https://itunes.apple.com/us/app/haste/id784262653?mt=8

Not only that but he has responded to some of my questions which is fantastic. Go Reddit. Pretty much every link on Lockieee’s page is useful, but a particular mention goes to AppAnnie. It has a huge amount of useful info, and accumulates everything you would want to know about every app in one place. We will use this to double check our idea is unique and also research the competition.

This link provides a great high level roadmap for everything from the app idea, to naming your app, to launching your app http://www.apadmi.com/successful-apps-guide/ very useful for filing in the gaps and providing a guide.

I have also been pointed in the direction of a few books that I will get from the library or Amazon and read over the next week.

Appreneur – Secrets to Success in the App Store by Taylor Pierce http://www.amazon.com/Appreneur-Secrets-Success-App-Store/dp/1478300019

App Empire – Make Money, Have a Life and Let Technology Work For You by Chad Mureta http://www.amazon.com/App-Empire-Make-Money-Technology/dp/111810787X

Appillionaires – Secrets from Developers Who Struck it Rich on the App Store by Chris Stevens http://www.amazon.com/Appillionaires-Secrets-Developers-Struck-Store/dp/1119978645

So the plan for the next week or so is threefold. I will read all of the above, and at the same time, my boy and I will refine our idea, bust out the crayons, draw some mockups, and describe in detail all the different elements to the game.

Lastly we will use AppAnnie to research the idea, check it’s unique, and also look for other successful word game apps. We will download and play them and make notes of what we like and don’t like and add this to our “development brief”

After that I will check back in a week with our progress. Once again thanks for all your help.

u/FrontpageWatch · 1 pointr/longtail

>Why is it so hard to figure out where to start?
>
>It's no secret that software development has exploded in the past 20 years. New software startups pop up like dandelions in the spring. It then follows that a lot of people think software development is a good career choice and are afraid of missing out on a lot of great opportunities.
>
>Software developers are, in general, pretty opinionated. I doubt this is unique to developers, but it gets tiresome when you've dealt with it for years. If we're not fighting over what operating system is better, then it's what language is better. If it's not that, then it's code editors, or databases, or frameworks, or bug trackers, or development processes, or...or...or. It's like we enjoy fighting.
>
>In a time where more and more people are becoming developers, it's not enough to be just "a developer" anymore. No, to feel superior now, developers need to somehow differentiate themselves from both the non-developer “rabble” and their fellow developers.
>
>This mentality has lead to more coding languages being developed that purport to "fix" issues with other languages. New frameworks are built to "fix" issues with previous frameworks. And on and on.
>
>All this leads to a huge amount of choices, opinions, and resources. Naturally, that makes starting to learn, daunting.
>
>Since I'm a developer too, I'm susceptible to the same opinions and biases that I just railed against. The difference is, I'm right. I'm kidding, seriously, calm down everybody. Here are my suggestions.
>
>Choose your weapon language
>
>As someone once said: “the weapon doesn’t make the man.” It’s probably a quote from some B martial arts movie or Dragonball Z, but the philosophy holds true for programming languages. A good developer is a good developer regardless of language. However, you need to start someplace, and if you pick your first language wisely, you’ll drastically shorten the time to hit your goal.
>
>Picking a language boils down to what you want to do. This is a quick list of general development goals and what language(s) are your best options to get there:
>
>1. Front-end web development (user interface and interaction): Javascript, HTML & CSS
>1. Back-end web development (services that front-end web apps and mobile apps call out to): Ruby, Python or Javascript
>1. Mobile development: Swift (iOS) or Java (Android)
>1. Windows development: C#
>1. MacOS development: Swift or Objective-C
>1. Operating systems, file systems, embedded systems, etc: C/C++
>
>Naturally, there are other options for each of these. Javascript is useful for items 1-5, for instance. But the list is a good starting place as-is.
>
>How to find good resources to start learning
>
>There are a ton of resources to learn to code out on the web. How do you sift through the chaff and find the real gems?
>
>Most resources fall into the following categories:
>
> Books
>
Videos
> Blogs/tutorials
>
Courses
>
>Books are the traditional go-to resource. Search Amazon.com for your topic and read reviews. Make sure that any books you're considering are new. Languages change and older books could slow your progress.
>
>A lot of people have gravitated to videos to learn coding and other topics. YouTube is the first place most people look. Fair warning, this is going to turn up a bunch of crap. Look at how many subscribers a given instructor has, and watch some videos to see if their style and method works for you. Another possible issue is that because video is more difficult to update for new versions of a language (or corresponding tools), some videos might be outdated.
>
>For blogs and tutorials, a simple google search like "best python tutorial" or "best swift tutorial for beginners" is a great place to start. As with videos, you'll have to try a few to see how they work with your learning style.
>
>Online courses are the newest resource on the scene. Codecademy is one that a lot of people find immediately. However, after I talked to a lot of people who tried it, none really thought it did a good job. Free Code Camp or The Odin Project are both highly regarded for web development. Udacity, Coursera, Udemy all have courses in different genres. Each has reviews so you can compare and only look at ones that helped others. My specific examples follow in the next section.
>
>Where you should start, specifically
>
>Each development goal in the above list is different enough to require different starting points. I’ll list the place that I’d recommend you start for each one. I have not personally tried all of them, but have come across them when doing research. There also might be better ones, and so if you know of any, let me know and I’ll update this list.
>
>1. Front-end web development: Free Code Camp
>1. Back-end web development: Ruby (for Rails), Python (for Django), Javascript (for Node)
>1. Mobile development: Swift Lynda’s Swift Essentials (check your local library to see if you get a free Lynda account with a library card) or Flatiron school’s free Swift course, Swift Programming book or Java Head First Java, University of Helsinki’s MOOC
>1. Windows development: Head First C#, Pluralsight’s C# course
>1. MacOS development: Cocoa programming for OS X, or the same courses for mobile Swift
>1. Operating systems, filesystems, embedded systems: C++ How to Program book, C++ Tutorial for Complete Beginners
>
>Once you pick your language and starting point and you start learning, some things will be obvious, but others will be difficult to understand. You’re going to run into trouble and with concepts and code errors. That’s normal. We’ve all been there. Getting unstuck takes practice too.
>
>How to get unstuck once you’ve started
>
>Once you start learning to code, you're going to run into problems that you don't know how to solve. This is normal and part of the process. You don't really learn unless you struggle through it. That said, you won't always be able to move forward without some help. So how do you find that help?
>
>First off, forget books. They aren't a great place to start here, because the number and types of errors they can cover is so small.
>
>Online is the easiest place to find help. Most devs look for solutions on StackOverflow or just google the error message (if they have one). Other solutions are to find newsgroups or forums dedicated to the language you're using.
>
>How to use Google to get unstuck
>
>When you first try to google an answer to your problem, you're going to run into the issue of what to search for. Experienced developers are really good at this part, but unfortunately, it's hard for beginners, who need it the most. So here I'll give you some expert hints on how to improve your search results.
>
>1. Always include the name of the language you're using. If you're using a specific tool, database, or framework, include that as well. Don't include all of them, just the ones that you believe are relevant. This will take practice.
>1. If you're getting an error message, include that in quotes. Edit the message to contain only the core of the message so it doesn't reference any files, classes, path or filenames that are specific to your program or computer. The trick here is to make the error message as specific as possible while still being general enough to apply to others who are using the same language/tool/etc. but in a different context.
>1. If you're working through a publicly-published problem from a book or course, add that information to the search.
>1. Explain what you're trying to do, with the fewest words. This is tough for developers of all levels. For a beginner, you may have trouble coming up with the right terminology. This is where the books, tutorials, and course materials come in handy. They should use the right language if you're doing something similar to what's covered in them. If not, you're going to need to try some different wording. Remember, other beginners are going to be having problems too and might explain the problem the same way.
>
>Here are a few examples I’ve used (minus the quotes):
>

u/planesforstars · 7 pointsr/iosgaming

Hi! I'd be happy to share some info. I didn't actually go to school for Computer Science so I learned everything I know from the internet really. When I first started learning programming in general, I started with a course in C http://www.computerscienceforeveryone.com/. I think it was a pretty good intro into computer science in general too. There were a lot of concepts in that course that were really hard for me to grasp at first and honestly pretty boring at times, but I stuck with it and I feel like it set me up for objective-C and iOS programming pretty well.

Moving on to iOS programming. The Big Nerd Ranch book was the best iOS development book I read. It's chock full of good tutorials and good explanations of concepts. It was just updated to the 4th edition to and is available on amazon.com

Finally getting into iOS Game Development, I think Ray Wenderlich's tutorials were the best help for me. Most of the iOS game dev stuff out there right now is mostly for Cocoa's 2d (which is great!). However, I wanted to try out Sprite Kit since it's newer and I think it's eventually going to surpass cocoa's 2d as the standard for iOS 2d game development. There aren't a lot of resources out there beyond apple's guide (which is good in my opinion) Sprite Kit Documentation
Ray Wenderlich has a great Sprite Kit book out with all kinds of great information that makes game development on the iPhone easy. Here is a link to his book: http://www.raywenderlich.com/store/ios-games-by-tutorials

I hope that answered some of your questions. Feel free to ask more if you had any other questions, or if I missed something. Thanks for trying out the game. I hope you like it :)

u/Link_SE · 2 pointsr/iOSProgramming

I am a java developer and took a course on iOS coding when I was getting my CS degree, but haven't touched it since graduation. 3 months ago I decided I wanted to get back in to it and maybe make a career change. I knew a lot has changed so I wanted to start from the beginning. After looking around for a bit on where to start, I went with the Big Nerd Ranch iOS Programming book, Amazon link. This was an awesome place to start. The book flows well and it really builds on itself. Their online forums is a great resource when you get stuck, there was always at least one person that had encountered any problem I ran in to and had already posted about it along with a solution. After I was finished with the book I started going through the Ray Wenderlich tutorials and they have helped a ton, especially after gaining a great understanding through the BNR book. In a relatively short time I have a great understanding of iOS and am just building on it by making up my own side projects with various features to the app and then sitting down and figuring out how to implement these features. Best of luck to you!

u/ImEasilyConfused · 1 pointr/IAmA

Hopefully you can find some helpful answers, guidance, or a starting point in these responses.


From OP:

>The exact four books I read are:

>Learning Obj-C

>Learning Java

>iOS Programming: The Big Nerd Ranch Guide

>Android Programming: The Big Nerd Ranch Guide

>However, I would now recommend learning Swift instead of Obj-C. At the time when I was looking into iOS books, good books on Swift were few and far between.

From u/AlCapwn351 in regards to other sources to learn from:

>www.codeacademy.com is a great site for beginners (and it's free). It's very interactive. W3schools is good for learning stuff like JavaScript and HTML among other things.

>When you get stuck www.stackoverflow.com will be a lifesaver. Other than that, YouTube videos help and so do books. Oh and don't be afraid to google the shit out of anything and everything. I feel like an early programmers job is 90% google 10% coding.

>Edit:

>It's also good to look at other peoples code on GitHub so you can see how things work.

u/benr783 · 18 pointsr/jailbreak

If you don't have any prior knowledge with programming, I'd first recommend learning Python. If you do have programming knowledge, then jump straight into ObjC. I read these 3 books and my Objective-C knowledge grew so much. I highly recommend reading these books.

Book One

Book Two

Book Three

I'd recommend reading these books in the order I listed them.

After you have read those books, you'll want to get friendly with theos. Theos is what you will use to make your tweaks. Learn how to install/use it here: http://iphonedevwiki.net/index.php/Theos/Getting_Started.

Now, you can look at open source tweaks. There is a great place to see a lot of them: http://iphonedevwiki.net/index.php/Open_Source_Projects.

Once you are comfortable, get started writing tweaks!

Always feel free to PM me if you need any help or have a question. :)

u/mariox19 · 1 pointr/iOSProgramming

Okay. Depending on what parts of the framework "very simple" involves, and with the stipulation that you're building a prototype that you can pretty up later, I think it's possible, given your background.

Go get the Big Nerd Ranch book for iOS Programming:

http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321821521

Get it in a store or rush ship it. Don't bother trying to go through the whole book—in a week or whatever—like the one guy suggested. If you were in an immersion course at the Big Nerd Ranch, with dynamic, experienced instructors, and a room full of motivated fellow students, I'm sure you could more or less touch on all of it in a week. But that's not your situation. Just concentrate on the intro to Objective-C. Then, look to see what parts apply to you.

In the meantime, watch the first few episodes at the University of California, Berkeley that they have on iTunes about iPhone programming. Don't watch them all. If there are one or two past the first couple of intros that directly apply to your app, watch those.

The Ray Wenderlich are good tutorials, as someone else suggested.

Google the shit out of anything on StackOverflow that applies to your app.

Finally, if you can reveal anything about the structure of your app, without, of course, giving away this million dollar idea (I'm giving you a hard time, just for fun, so go with it!), tell us. We can give you better answers as to what to look for.

Best of luck!

u/arntzel · 1 pointr/IAmA

If you want an introduction to computer science:

Introduction to CS: https://itunes.apple.com/us/course/this-is-cs50-2012./id624655973.
Stanford's iOS course: https://itunes.apple.com/us/course/coding-together-developing/id593208016 - This can be challenging for beginners as it assumes prior computer programming experience. That said the course is incredibly comprehensive and does an amazing job of teaching iOS.

u/mayonuki · 1 pointr/learnprogramming

Invest in Kochan's Programming in Objective-C. One of the best programming books I've ever read.

Then once you have good unserstanding of Objective-C's syntax and data structures, I recommend iOS Programming: The Big Nerd Ranch Guide.

I went from no experience with Objective-C to getting hired as an iPhone programmer in a month and a half reading these books.

After these, when I come across something I don't know how to do, I usually look here first: Ray Wenderlich. Their tutorials are very very current. I go through them just to learn about iOS/Xcode features I didn't even know existed (there are tons!!).

I've tried (sometimes successfully) learning programming languages from free online resources (especially when I can't find good books), but I really think you shouldn't miss out on these. The cost is pretty minimal considering you just bought an Apple computer.

This kind of object oriented programming is pretty different from the web languages you have gone through. I think the first two books should help you get a basic understanding of Model, View, Controller design.

Finally, use a better title when asking for help!

u/CSMastermind · 2 pointsr/AskComputerScience

Senior Level Software Engineer Reading List


Read This First


  1. Mastery: The Keys to Success and Long-Term Fulfillment

    Fundamentals


  2. Patterns of Enterprise Application Architecture
  3. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  4. Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML
  5. Systemantics: How Systems Work and Especially How They Fail
  6. Rework
  7. Writing Secure Code
  8. Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries

    Development Theory


  9. Growing Object-Oriented Software, Guided by Tests
  10. Object-Oriented Analysis and Design with Applications
  11. Introduction to Functional Programming
  12. Design Concepts in Programming Languages
  13. Code Reading: The Open Source Perspective
  14. Modern Operating Systems
  15. Extreme Programming Explained: Embrace Change
  16. The Elements of Computing Systems: Building a Modern Computer from First Principles
  17. Code: The Hidden Language of Computer Hardware and Software

    Philosophy of Programming


  18. Making Software: What Really Works, and Why We Believe It
  19. Beautiful Code: Leading Programmers Explain How They Think
  20. The Elements of Programming Style
  21. A Discipline of Programming
  22. The Practice of Programming
  23. Computer Systems: A Programmer's Perspective
  24. Object Thinking
  25. How to Solve It by Computer
  26. 97 Things Every Programmer Should Know: Collective Wisdom from the Experts

    Mentality


  27. Hackers and Painters: Big Ideas from the Computer Age
  28. The Intentional Stance
  29. Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine
  30. The Back of the Napkin: Solving Problems and Selling Ideas with Pictures
  31. The Timeless Way of Building
  32. The Soul Of A New Machine
  33. WIZARDRY COMPILED
  34. YOUTH
  35. Understanding Comics: The Invisible Art

    Software Engineering Skill Sets


  36. Software Tools
  37. UML Distilled: A Brief Guide to the Standard Object Modeling Language
  38. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
  39. Practical Parallel Programming
  40. Past, Present, Parallel: A Survey of Available Parallel Computer Systems
  41. Mastering Regular Expressions
  42. Compilers: Principles, Techniques, and Tools
  43. Computer Graphics: Principles and Practice in C
  44. Michael Abrash's Graphics Programming Black Book
  45. The Art of Deception: Controlling the Human Element of Security
  46. SOA in Practice: The Art of Distributed System Design
  47. Data Mining: Practical Machine Learning Tools and Techniques
  48. Data Crunching: Solve Everyday Problems Using Java, Python, and more.

    Design


  49. The Psychology Of Everyday Things
  50. About Face 3: The Essentials of Interaction Design
  51. Design for Hackers: Reverse Engineering Beauty
  52. The Non-Designer's Design Book

    History


  53. Micro-ISV: From Vision to Reality
  54. Death March
  55. Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft
  56. The PayPal Wars: Battles with eBay, the Media, the Mafia, and the Rest of Planet Earth
  57. The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times and Bad
  58. In the Beginning...was the Command Line

    Specialist Skills


  59. The Art of UNIX Programming
  60. Advanced Programming in the UNIX Environment
  61. Programming Windows
  62. Cocoa Programming for Mac OS X
  63. Starting Forth: An Introduction to the Forth Language and Operating System for Beginners and Professionals
  64. lex & yacc
  65. The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference
  66. C Programming Language
  67. No Bugs!: Delivering Error Free Code in C and C++
  68. Modern C++ Design: Generic Programming and Design Patterns Applied
  69. Agile Principles, Patterns, and Practices in C#
  70. Pragmatic Unit Testing in C# with NUnit

    DevOps Reading List


  71. Time Management for System Administrators: Stop Working Late and Start Working Smart
  72. The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services
  73. The Practice of System and Network Administration: DevOps and other Best Practices for Enterprise IT
  74. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale
  75. DevOps: A Software Architect's Perspective
  76. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  77. Site Reliability Engineering: How Google Runs Production Systems
  78. Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry
  79. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
  80. Migrating Large-Scale Services to the Cloud
u/ArvoHeikki · 2 pointsr/swift

I know you pointed out that you're interested in OS X, not iOS, but the reality is that most of the good, up-to-date materials on development for the Apple ecosystem are centered around iOS.

There is a Big Nerd Ranch book on OS X development with Objective-C, but it's from 2011. The advent of Swift should give publishers an incentive to update their material on OS X development. A new, Swift-oriented version of the book I linked above is slated (as per Amazon, anyway) for release next month. I look forward to purchasing it myself.

raywenderlich.com also has great tutorials. Most are iOS-oriented, but I found a couple for OS X:

Getting Started With OS X and Swift Pt1

Getting Started With OS X and Swift Pt2

Getting Started With OS X and Swift Pt3

Core Controls and Swift Pt1

Core Controls and Swift Pt2

Don't get discouraged about your lack of experience. The fact of the matter is that app flow in the OS X and iOS realms is not easy to understand at a glance. I can assure you that everybody who writes software in the Apple ecosystem was once confused about the same exact issue.

u/Third_beach · 1 pointr/swift

There are a lot of options for where to start, it just depends on how you learn best.

There are two courses on iTunesU, one is an iOS development course by Plymouth University https://itunes.apple.com/ca/course/ios-development-in-swift/id950659946 and the other is the Stanford iOS development course https://itunes.apple.com/ca/course/developing-ios-8-apps-swift/id961180099 Being completely new to programming start with the Plymouth course first, then give the Stanford course a try once you feel more comfortable (and the Stanford course is really what you should be aiming for if you want to develop a good knowledge base to start from).

I've also got a list of tutorial resources on my ManitobaNinja site that you can take a look at for other options as well https://manitobaninja.wordpress.com/2016/01/22/a-collection-of-swift-tutorials/

If books are a better option then Swift Programming: The Big Nerd Ranch Guide seems to be the most popular book recommendation for beginners. http://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/0134398017 There should be enough among those options that you can find something that works best for you

u/TheMiamiWhale · 2 pointsr/iOSProgramming

Ray Wenderlich's site has great tutorials. I'd strongly encourage you to work through these books - they should give you a pretty strong foundation:

  • Programming in Objective-C - this will also give you a primer/background in C language features as well.

  • BNR's Objective-C Programming - great overview of the language

  • BNR's iOS Programming

    Ray Wenderlich also has some Swift tutorials but if you are just starting out I'd focus more on Objective-C for now as it will be very useful to know when looking at libraries that aren't ported to Swift.
u/pyro2927 · 3 pointsr/wicked_edge

I certainly don't mind questions. I got into iOS development shortly after the App Store was announced. I was taking Java classes in college and found them to be extremely boring, so I picked up this book (but the iOS 3 version) and just worked through it. I probably spent more time studying that book than I did studying for my actual programming classes.

Eventually I made an unofficial reddit app, which got me threatening legal letters from CondeNast (they were NOT happy). I had originally gotten the all-clear from jedberg in the reddit IRC room, but apparently he didn't have the legal authority to say it was OK. The devs at the time sent me a box of goodies, a poster, some stickers, and even a employee-only tshirt as an apology for the reaction from the legal department.

After that I started picking up side jobs off craigslist, using the reddit app as my showpiece. Looking back on it, that app was terrible, but it was where I started. I even put a reddit sticker on my car to remind me of where I got my leg up.

I love it because it's fun, always a challenge, and I can make something from nothing.

u/AlphaDonkey1 · 1 pointr/iOSProgramming

Use these ebooks. They're brilliant:

First: Learn some Objective-C
Second: Start with iOS

It's very important that you don't give up when learning to write software. Keep chiseling at it and you will be able to create amazing apps.

u/D3FEATER · 5 pointsr/IAmA
  1. Objective-C because there were no good books on Swift at the time, and I wanted to learn to code for iOS first.

  2. I'm best with Obj-C, rather than Java and PHP, likely because I learned it first. I'm not sure if everyone falls in love with the first language they learn but I sure did.

  3. I mentioned this elsewhere, but I'll paste that comment below (note: I may have linked the wrong version for one of the books).

  4. Up!
    >
    > The exact four books I read are:
    >
    > Learning Obj-C
    >
    > Learning Java
    >
    > iOS Programming: The Big Nerd Ranch Guide
    >
    > Android Programming: The Big Nerd Ranch Guide
    >
    > However, I would now recommend learning Swift instead of Obj-C. At the time when I was looking into iOS books, good books on Swift were few and far between.
u/mutatedllama · 2 pointsr/ios

I'm currently working through the Big Nerd Ranch books which are fantastic. They have such a good way of teaching - you are constantly writing code and there are a lot of challenges for you to complete at the end of chapters. I picked them up after recommendations from many other redditors.

They have two books:

  • Objective-C Programming - for those with no previous Objective-C experience.
  • iOS Programming - for those who have worked through the above book &or those who already have a good understanding of Obj-C.

    I started with the first and would definitely recommend both.
u/RollingGoron · 0 pointsr/learnprogramming

A couple of questions:

  1. What Phone do you use?
  2. What computer OS do you use?


    If you have a PC, you can only develop for Android.
    If you have a Mac, you can developer for iOS or Android.

    I highly recommend a book over a website. They are much more comprehensive and go into greater detail.

    Mac/iOS uses Objective-C.
    http://www.amazon.com/Objective-C-Programming-Ranch-Guide-Guides/dp/032194206X/ref=sr_1_1?ie=UTF8&qid=1419300572&sr=8-1&keywords=big+nerd+ranch+objective+c

    http://www.amazon.com/iOS-Programming-Ranch-Guide-Guides/dp/0321942051/ref=sr_1_1?ie=UTF8&qid=1419300564&sr=8-1&keywords=Big+Nerd+ranch+ios

    Android

    http://www.amazon.com/Android-Programming-Ranch-Guide-Guides/dp/0321804333/ref=sr_1_1?ie=UTF8&qid=1419300685&sr=8-1&keywords=Big+Nerd+ranch+android

    Big Nerd Ranch books are awesome.
u/jtbrown · 2 pointsr/ObjectiveC

The Stanford course is a great way to learn if you're into lectures.

If you prefer workshops and have the time and money to invest, you should go to the Big Nerd Ranch Beginning iOS Bootcamp. (Here's my extended writeup about it - in summary, it's a great way to learn since you get live instruction.)

Or if you like books, you can try Objective-C Programming, and follow that up with iOS Programming: The Big Nerd Ranch Guide.

Decide which learning style you prefer, then jump in. :)

u/silverforest · 1 pointr/IWantToLearn

Since you're on a Mac, if you're looking at OS X and iOS development, I'd recommend Objective-C.

As for books on the subject, I would recommend Objective-C Programming: The Big Nerd Ranch Guide and for you to also read the free online tutorial BecomeAnXcoder.

You might also want to look into getting Cocoa Programming for Mac OS X and iOS Programming: The Big Nerd Ranch Guide should you want to further your Cocoa and iOS knowledge respectively.

---

As for Mac IDEs, for Objective-C or C++, look at XCode (take a look in the Mac App Store).

For Java, I think Eclipse is pretty much the only option?

u/borommakot · 1 pointr/iPhoneDev

Watch the first several episodes of the Stanford courses on iTunes U. They're free, and quite good at teaching Obj-C and the basics of the SDK. You will need to have a basic understanding of OO programming before you start.

iOS Programming The Big Nerd Ranch GuideThe best dead tree book that I've seen for the subject. Read the reviews on amazon.

Starting iOS Development blog post with suggestions.

And of course the best advice for anyone learning anything in programming: Just start doing it, google when you hit a roadblock, it'll come to you with time.

u/zshakked · 33 pointsr/IAmA

At the time, I used the Obj-C Big Nerd Ranch Book and then the iOS Programming in Obj-C book. Nowadays, I'd recommend the BNR Swift Book and then the BNR iOS Development Book. These are excellent books and there is a nice community of people on their website who talk about solutions to the exercises and challenges.

u/badlero · 2 pointsr/learnprogramming

Ray Wenderlich - Sign up for the newsletter to get an awesome beginner tutorial.

Hacking With Swift - The author posts here often and is free with option to donate to the author.

Team Treehouse - Awesome place to get your feet wet. It's paid courses but comes with 2 free weeks which is enough to get the Swift courses done if you have the time.


Edit: Big Nerd Ranch book is out if you have a Kindle. Big Nerd Ranch Swift Book

u/Siriss85 · 1 pointr/Xcode

Yeah a lot of this stuff is old now that storyboards have come along. Also Xcode has change tremendously. I would recommend a different book. Not to mention, this person is a terrible writer. Big Nerd Ranch is great found here. Also, the Ray Wenderlich books and tutorials online are great.

u/dmazzoni · 1 pointr/learnprogramming

If you want to write a truly native Mac-only desktop application, you should be using Cocoa and Swift. Here's a recent book that will help:

https://www.amazon.com/Cocoa-Programming-OS-Ranch-Guides/dp/0134076958

The other "first-class" language is Objective-C.

If you think you might want a cross-platform desktop app, or if you don't want your knowledge to be too Mac-specific, you probably want either Qt or wxWidgets. You can use both of those frameworks from a number of languages including C++ and Python. They both let you create really nice desktop applications for both Mac and Windows, but you won't get quite the level of polish and integration compared to using Swift/Obj+C and Cocoa.

u/UH1868 · 1 pointr/iOSProgramming

Pointers

In all seriousness, others have mentioned great resources. I found the Big Nerd Ranch Book to be a great resource. From zero Objective-C knowledge to developing.

u/brendan09 · 1 pointr/iOSProgramming

The iOS 7 variant would probably be more helpful: http://www.amazon.co.uk/Application-Development-Hours-Teach-Yourself/dp/0672337061/ref=dp_ob_title_bk

A guide for iOS 7 is still applicable to 8, so shop around for iOS 7 books. Although, I'd make the case that there are more than enough free resources online to learn.

u/cbkeur · 8 pointsr/IAmA

That's awesome! Stick with it; iOS has a great community so ask plenty of questions. Check our /r/iOSProgramming for some really helpful people (I'm around there from time to time).

iOS Programming: The Big Nerd Ranch Guide (6th Edition) (Big Nerd Ranch Guides) https://www.amazon.com/dp/0134682335/ref=cm_sw_r_cp_api_.aOHybQFS55NE

Swift Programming: The Big Nerd Ranch Guide (2nd Edition) (Big Nerd Ranch Guides) https://www.amazon.com/dp/013461061X/ref=cm_sw_r_cp_api_nfOHyb38E5JE5

u/jeramyfromthefuture · 1 pointr/swift

http://www.amazon.com/Developers-Cookbook-Content-Program-Library/dp/0134395263

Ive been reading this one for the last 2 weeks and quite impressed so far , it hasn't even mentioned IOS yet :)

u/cruffenach · 2 pointsr/iOSProgramming

Co Moderator Brandon Trebitowski wrote iPhone and iPad in Action - http://www.amazon.com/iPhone-iPad-Action-Brandon-Trebitowski/dp/1935182587

I worked on Objective-C Fundamentals - http://www.amazon.com/Objective-C-Fundamentals-Christopher-Fairbairn/dp/1935182536

They are both good for beginners and we would be looking here to answer questions you might have. Thanks!

u/missedtheplane · 4 pointsr/simpleios

You didn't ask me the question, but I'm learning with the same material.

  • Paul Solt's course
  • Big Nerd Ranch Objective-C programming
  • Big Nerd Ranch iOS Programming

    I just finished working through the Big Nerd Ranch Objective-C book and found it extremely accessible and enjoyable. I started the iOS book yesterday and worked through five chapters - if you're genuinely interested in learning Objective-C and iOS these books are difficult to put down. Be aware that the newest edition of the BNR Objective-C is due at the end of November and the iOS book due at the end of December.

    Paul Solt's course provides video content that I have found to be beneficial supplementary content to the BNR books. Working through the book along with Paul's course has helped me cement the material. He posted a coupon to take the course for free ~1 week ago. Not sure the coupon is still valid or not.
u/negativeoxy · 1 pointr/iPhoneDev

This is the book i recommend to everyone. I found it helpful.

u/Mandack · 1 pointr/swift

There's also Cocoa Programming for OS X, which is very good.

P.S. Also, check out their related Swift book.

u/tangoshukudai · 1 pointr/iOSProgramming

Big Nerd Ranch has a pretty good OS X book. http://www.amazon.com/gp/product/0134076958?keywords=big%20nerd%20ranch%20os%20x&qid=1452094223&ref_=sr_1_1&sr=8-1

Also the iOS equivalent are bibles for OS X and iOS developers.

u/linkrift · 1 pointr/iOSProgramming

Can't go wrong with the Big Nerd Ranch. That'll get you going on obj-c and a simple starter app. Their iOS specific book is great if you don't mind translating some of the out of date stuff.

u/xinatanil · 1 pointr/iOSProgramming

Your question is very vague, you should try asking more specific questions, like "what AVCaptureSession does" and etc.

There's a whole book about AVFoundation: https://www.amazon.com/Learning-Foundation-Hands-Mastering-Framework/dp/0321961803

It's mostly about video editing, but it also has some things about recording. Book explains the things more or less easily, but it costs money :(.

AVFoundation is quite hard to grasp (IMHO, only CoreData is more complicated than AVFoundation), and I had a lot of troubles trying to understand it too. That was 2 years ago, and looks like there's still not much tutorials about AVFoundation.

My advice is just to watch every WWDC video there is (starting from WWDC 2010), read Apple's AVFoundation programming guide, check every tutorial there is, and eventually you will start to understand things. But it will take some time, yeah.

u/spunkerspawn · 2 pointsr/cscareerquestions

Learn Android or iPhone development. Here are two resources for you:

Android: http://developer.android.com/index.html
iPhone: http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321942051

Have fun learning!

u/soulefood · 2 pointsr/learnprogramming

I started iOS programming with : http://www.amazon.com/Beginning-iPhone-Development-Exploring-SDK/dp/1430216263/ref=sr_1_7?ie=UTF8&qid=1372191579&sr=8-7&keywords=iphone+programming


Once I got past the basics, I got myself this : http://www.amazon.com/Core-Developers-Cookbook-Edition-Library/dp/0321884213/ref=sr_1_4?ie=UTF8&qid=1372191615&sr=8-4&keywords=iphone+programming

I would check for newer versions of the books though.

By access another application's data it depends on what you mean. Can you access 3rd party applications' data? No, each application is sandboxed and unable to communicate with each other. If it's a base iOS application though, Apple allows you to make calls to several of the base functionalities for use. You can utilize location services as well as maps in your app.

One suggestion I would make if you're just getting started. I would look to HTML 5 and multiplatform development solutions. More and more, these are becoming the standard rather than native applications. Because of this, I wouldn't start with iOS programming, but javascript instead. Don't waste your time with base javascript, instead choose a library to work with. jQuery is my personal choice.

From there, you have the basic knowledge to start using cross platform tools such as Sencha Touch or Apache Cordova (formerly phone gap). With these tools, you can develop for iOS and Android at the same time. Cordova also allows you to write native code when HTML & Javascript just isn't getting the job done.

u/VulcansHammer · 1 pointr/iOSProgramming

Thanks for the suggestion, is this the book you were referencing?

http://www.amazon.com/Layout-Demystified-Edition-Mobile-Programming/dp/0321967194

u/[deleted] · 1 pointr/learnprogramming

There are a lot of good resources out there. Nerd Ranch is my go-to book when people ask me for recommendations. The Stanford Course is where I direct people who have programming experience.

Code Coalition is running a 3 month online immersive course for absolute beginners starting in September. You interact with students and teachers on forums, chats, and meetups. There are videos, assignments and projects.

u/asdf-user · 1 pointr/mac

Hm, probably not. Obj-C is used for developing iOS/OS X Apps. But I have no clue what to use in Engineering, maybe C or C++

Infos about Alfred here. It's basically a better Spotlight Search, to find/launch Apps, find files, quick google search, calculator, etc

About Objective-C: Take a look at the Big Nerd Ranch Guide

For Java: Head First

C: The C Programming Language

EDIT: iTerm2: Terminal replacement, I use it mainly for the hotkey window
and Cheatsheet: Hold command to get a list of all shortcuts for the active App

u/angels_share · 7 pointsr/learnprogramming

I found iOS Programming: The Big Nerd Ranch Guide to be an excellent introduction to both iOS and Objective-C. After reading the first few chapters and trying some of the examples you'll be primed to tackle the official docs.

u/wackyHair · 1 pointr/computerscience

Swift. Objective-C is an interesting language (C + Smalltalk), but not worth learning if you're starting a fresh app.

Big Nerd Ranch has the books you want. https://www.amazon.com/Swift-Programming-Ranch-Guide-Guides-ebook/dp/B019HARRTA

u/hatheaded · 1 pointr/iOSProgramming

Yes, sorry I didn't post the 2nd ed. link. Here it is.

u/Doktag · 7 pointsr/iOSProgramming

If you can wait 10 more days, iOS Programming: The Big Nerd Ranch Guide (3rd Edition) will be released. This is the one I'm waiting for. It will be covering iOS 5.1 and Xcode 4.3.

Here's a review
of the original book.

Note that even though the Amazon page says April 1, one of its co-authors has confirmed on Twitter that it will be available starting March 23.

u/codevil · 1 pointr/iOSProgramming

The Big Nerd Ranch Guides for Objective C and iOS Programming are just about the best books for absolute beginners, I've found. I had programming experience in Java and Android apps prior to working on iOS, but read the two books anyway (online tutorials are the faster way to go) just to see if I could pick up something in-depth, and I did.

http://www.amazon.com/Objective-C-Programming-Ranch-Edition-Guides/dp/032194206X/ref=sr_sp-atf_title_1_3?ie=UTF8&qid=1408323435&sr=8-3&keywords=big+nerd+ranch+ios

http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321942051/ref=sr_sp-atf_title_1_1?ie=UTF8&qid=1408323435&sr=8-1&keywords=big+nerd+ranch+ios

u/acroporaguardian · 3 pointsr/iOSProgramming

There really isn't a difference for iOS except for your UI layout. iOS will also have more file restrictions as well.


But, that same group does have a Mac series: https://www.amazon.com/Cocoa-Programming-OS-Ranch-Guides/dp/0134076958

u/flexdevio · 3 pointsr/swift

I did these guys front-end web book. It was really goo, however they are know for their Swift Book:

https://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/013461061X

The owner (original instructor) worked with Steve Jobs at Next.

u/PrometheusTitan · 1 pointr/swift

This is the one I'm looking forward to (not out until April). I've got the previous (Obj-C) version, and am working my way through it in conjunction with Apple's Swift language guide. But really looking forward to the next revision (which I linked) which will cover Swift.

Take my opinion with a big grain of salt as I'm very much in the preliminary still-learning stage, but I've always seen this one well-reviewed.

u/lanzaio · 6 pointsr/swift

Read this while also reading this and then watch these lectures (note: the iOS 10 version should be starting by the time you finish the two books).

Every single line of code you see you should also be writing. Every project built in both books and the lectures you should also build. You should regularly use what you've learned to make your own dumb little practice projects. If you learn how to make a UIButton in chapter x then you should go and make your own project after reading chapter x that screws around and explores creating UIButtons.

Come up with some actual app that you'd want to make for your own usage. As you learn features that you want your app to have, implement them in your app. Every now and then restart it from scratch as you learn how to code better. (IE your implementation of a trio of UIButtons after reading chapter 3 will be coded rather poorly compared to your implementation of the same trio of buttons after reading chapter 22.)

This is how I did it and I taught myself how to be a professional iOS developer from not knowing what a variable was in less than a year.

u/dxmzan · 2 pointsr/iOSProgramming

Big Nerd Ranch's Swift book came out in December 2015 and its iOS programming (5th Edition) book was released a day later. So the code should work side-by-side.

You can find them on Amazon: [Swift] (http://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/0134398017) and iOS Programming (5th Edition)

In the Swift book, you'll be making command-line programs that teach you the basics of the language. But I find that app development isn't so much about knowing Swift/Obj-C but more about knowing how to use the frameworks/APIs, which is what BNR's iOS Programming will teach you.

u/TopTheTop · 3 pointsr/iOSProgramming

Started with some Udemy course that was on a 95% discount.

Bought an iOS book after.

Although the Big Nerd Ranch books aren't for sale in my country everybody seems to favor them.

http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321942051

u/jzed · 1 pointr/swift

Just updated and released. Takes you from total beginner. (Updated with better link)
Swift Programming: The Big Nerd Ranch Guide (2nd Edition) (Big Nerd Ranch Guides) https://www.amazon.com/dp/013461061X/ref=cm_sw_r_cp_api_NwPxybFV60FA9

u/petermolnar_hu · 1 pointr/swift

I have just started Erica Sadun's iOS Autolayout demystified book. That might be a good next step for you. https://www.amazon.com/Auto-Layout-Demystified-Mobile-Programming/dp/0321967194
Edit: Sorry, I have just realised that this is a Swift stub, and the book is in Objective-C ... :/

u/fookhar · 4 pointsr/apple

Read this, then read this.

u/tgregoryknox · 3 pointsr/swift

I first went through the Swift and iOS programming books by Big Nerd Ranch, and then I went through one of their bootcamps in Atlanta. I highly recommend this company. Apple, Spotify, Square, etc... send their employees to Big Nerd Ranch.

u/Tandoori_Pizza · 1 pointr/iOSProgramming

Last year I was using the second edition of this book - http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321942051/ref=sr_1_1?ie=UTF8&qid=1413908253&sr=8-1&keywords=big+nerd+ranch

But for whatever reason it wouldn't work on Xcode 5 and I didn't care so much about buying the newest book, check out their forums to see if the 4th edition has any issues with Xcode 6.

u/organiccoder · 1 pointr/swift

The best two books that you can add to you list are going to be release in December 2015:

u/Rickmasta · 1 pointr/simpleios

I'm actually in almost the same exact situation as you are. I'm halfway through Big Nerd Ranch's Obj-C book and am looking to start creating apps as soon as possible. I actually purchased the Big nerd ranch iOS book today. Going to see how the book works out for me.

u/jbplaya · 2 pointsr/learnprogramming

Aside from official documentation, these 2 resources Big Nerd Ranch and Ray Wenderlich were all I ever needed.

u/maksa · 2 pointsr/iOSProgramming

Autolayout Demystified 2nd Ed.

All you ever wanted to know about about Auto Layout, but no size classes (iOS7), so you might want to wait out for 3rd edition that will probably have that covered. (I have no idea if 3rd edition is actually planed, just wildly guessing).

u/mugunth_kumar · 1 pointr/iOSProgramming

The argument is to treat your UITableViewCell as the "Controller" in this scenario. Understanding composition correctly is the key here.

In classical MVC, an object (controller or model or view) should not know about details of a contained (composited) object. For example,

if you have a model "Person" that has a

Person

  • Name
  • DOB
  • Manager
    • Name
    • DOB

      Accessing something like self.person.manager.dob from any class is probably not a good idea.

      By making the "PersonList"ViewController access details of a single person shoving it into the cell, (in the cellForRowAtIndexPath method) you precisely do this.
      This also happens to bloat the "PersonList"ViewController because now this "PersonList"ViewController does the job of both a "Person"ViewController and a "PersonList"ViewController.

      By delegating this task to another object (in this case, it happens to be PersonTableViewCell), you help yourself by avoiding the dreaded massive view controller problem.
      "
      Most iOS developers often think of UIViewController as the "C" and UITableViewCell as the "V" in MVC. My heuristic is, generic table view cells (UITableViewCell used as is) should be treated as a view. But if you write a custom subclass of a UITableViewCell, it is probably a controller because you are not writing cell drawing/rendering code. This is precisely what we wrote in the iOS 5 Programming Pushing the Limits book (Page 95) https://www.amazon.com/dp/1119961327/