iOS…again

Daily Reflection

Today’s time is being spent reading through the docs @ developer.apple.com, specifically the iOS docs.

I took a stab at iOS about a year ago. In retrospect, I was trying to learn a platform to achieve an end (make money!) without having developed a clear idea of the means (a specific app). Not having a specific purpose probably was my undoing. Funny how app dev can mirror real life (have identified goals!)

Now, I have a goal in mind. It’s simple game and I’ve already POC’d the whole damn thing in JavaScript. Tt runs in a browser, so I know that the concept is viable. In fact, I’ve had others preview it and give me feedback to improve it even more.

Of course, now, I think that I can learn ANY development language without having a specific app in mind. This is because, rather late in life I’m afraid, I’ve developed a “checklist” to learn the fundamentals of any programming language, even if not the nuances that make that language special.

Example: In ANY language you will have the following notions:

  • data types (or not)
  • collections
  • conditionals
  • operators
  • looping/iterators
  • memory management
  • modularity
  • user interface options
  • asynch operations
  • IO
  • level of object-orientation supported (classes, interfaces, polymorphism, mix-ins, operator overloading)
  • implementations: Are there multiple implementations of the language? If so, why? (Example: Ruby (MRI, Rubinius, JRuby, mRuby, etc)

If I sit down with this checklist and a language, I can at least get two feet firmly planted on the ground.

This new, daily compendium format serves multiple other purposes: consistency/habit, a reference for myself and proof that I really did learn something new that day. I think the first part of each post will consist of a bit of reflection and the second, the specific items learned.

Daily Learnings

  1. in X-Code, you can Ctrl-Click on most anything to get Help for it.
  2. As I gear up for learning Objective C to write iOS apps, this very weekend I see that mRuby has made a splash as Matz has released a version of Ruby for mobile devices. Sigh…
  3. And someone has already created a REPL (Read-Eval-Print-Loop) for it (minus ‘print’) http://www.avocadodb.org/2012/04/22/towards-an-interactive-mruby-shell
  4. X-Code has built in support for creating a local git repo for your project.
  5. Objective C clases require two files: a header file (.h) and an implementation file (.m).  The interface file contains the class’s public API. The implementation file, as the name suggests, contains the code that implements the class.
  6. Everything declared in the public API goes inside the class declaration which is denoted by @interface <Class Name> : <inherits from> ( usually from NSObject ) and the class ends with @end
Post a comment or leave a trackback: Trackback URL.

Leave a comment