Question

Currently learning IOS App development using a the big nerd ios programming book and I was on a chapter of the book that focuses heavily on CoreGraphics. I found it hard to grasp so I went through the chapter multiple times and it became slightly easier but I still wasn't 100% confident with it so decided to find a nice core graphics tutorial.

I found myself doing the ray wenderlich core graphics tutorial, it's quite good but I still noticed there where somethings I didn't quite get. Often found myself asking questions like "why did I just do that?", "how am I suppose to know what floating point number to put there?".

Anyway I woke up at 5am and have been reading various posts and webites for the last 2 and half hours. I stumbled across a post that stated:

  • The basics of graphics programming is necessary
  • C++ is a must
  • Linear Algebra is a must
  • Firm knowledge of coordinate system transformation is a must

How true is the above?

I mean I remember in the past when learning ruby/rails I ended up needing to pick up various other things in order to be able to build complete websites. On my journey to learn IOS App development I'm starting to see the same thing happen.

I've stopped at chapter 6 of this big nerd book to focus on core graphics and now I'm not even half way through the core graphics tutorial I'm following and may need to stop and do a tutorial on linear algebra amongst other things.

I'd like to do what's really necessary. Stackoverflow is my go to place in these types of situations. I'd like to know from some of the experienced IOS App developers, what do you recommend in this situation?

Is there a set guide you recommend I follow?

I promised myself I was going to learn IOS Dev properly with no short cuts as understand things thoroughly has made the experience quite enjoyable.

I came across a linear algebra video course on khanacademy. But I'd really only like to put time into what's necessary. I work full time, currently trying to make the transition from networking into the web development industry so I can naturally put time into it rather than having to sacrifice evenings and weekends.

My aim is to be able to build a fully fledged app. E.g. Like twitter, facebook, tagged. I won't be doing any fancy graphics just the kind you'd see on the sites I mentioned.

Your advice will be greatly appreciated thanks.

Was it helpful?

Solution

  • The basics of graphics programming is necessary

Technically true, but Core Graphics is a great way to learn (at least 2D) graphics programming.

  • C++ is a must

False.

  • Linear Algebra is a must

It's involved, but you can ignore the man behind the curtain 90+% of the time.

The only time I can remember the matrix nature of affine transformations becoming important was the time I answered a question about infinite rotation—and even then, another answerer provided a solution that didn't rely on matrix knowledge.

Apple's own documentation says:

“You can use either set of functions [making matrixes directly from numbers vs. geometric transformations] without understanding anything about matrix math. However if you want to understand what Quartz does when you call one of the transform functions, read ‘The Math Behind the Matrices.’

I would only add that if you do read “The Math Behind the Matrices” and it's lost on you, don't worry about it—just try it again in a month. At some point, you'll read that chapter and it'll make sense.

Geometry and trigonometry are much more important as a Core Graphics user than linear algebra. And the trig you need to know is pretty straightforward.

  • Firm knowledge of coordinate system transformation is a must

Again, true, but Core Graphics is a great way to learn it.

Is there a set guide you recommend I follow?

The Core Graphics Programming Guide.

If any part of it stumps you, open Xcode and start doing it. Pound on it 'til it works. Make sliders to adjust parameters (e.g., any of scale, translate, rotation angle, and skew) and fields to display them and see how the input affects the output. Experiment with blend modes.

Definitely experiment with blend modes.

And if you ever get completely stuck, you can always come back to SO and ask a question about it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top