This blog post describes my experience of learning how to write iOS software, after having spent many years exclusively in the world of .NET development. It provides warnings, suggestions, and tips for others who are interested in learning iOS development. The post ends with a qualitative comparison of programming in WPF and iOS.

via Becoming an iOS Developer « Josh Smith on WPF.

Yes, I know I’ve been quiet for too long, but here’s useful advice from someone far smarter than me.

Demonstrating continued momentum for Apple’s iOS platform for mobile devices, the Objective-C language used to develop applications for iOS showed the most growth in popularity in 2011 as a programming language, according to monthly assessment of languages.

Market share for Objective-C for this month is nearly 6.92 percent; it had been slightly more than 3 percent in January 2011, according to the Tiobe Programming Community index for January, which was released over the weekend.

via Thanks to iOS, Objective-C adoption grows in 2011 | Macworld.

What I find most astonishing is that Objective-C has surpassed PHP. PHP!

And seeing C++ drop while Objective-C threatens to overtake it? Pure bliss.

And since Macworld/InfoWorld doesn’t seem to link to Tiobe’s data, here you go.

 

And so it begins. I worked through the Code Year 2012’s first week’s worth of lessons tonight, all covering Javascript, which I’ve used on rare occasion.

Nothing earth-shaking, no syntax I didn’t learn 20 years ago, except for the === syntax which apparently is safer than ==, although the course didn’t explain why.

Perhaps of more interest to my readers, Codecademy has established a Teacher Beta program, for anyone who’d like to establish a new course.

Overall, neat concept, very nice interactive implementation for the Javascript portions, and I’m looking forward to spending a few minutes each week pretending (or not) to be a beginner.

Learn to code | Codecademy.

So, as a public service, I’m going to list assumptions your systems probably make about names.  All of these assumptions are wrong.  Try to make less of them next time you write a system which touches names.

Falsehoods Programmers Believe About Names | Kalzumeus Software.

A quasi-oldie-but-goodie that every developer should read. The quantity of venom in the comments is absurd; don’t read them if you want to retain faith in your fellow programmers.

Interesting comparison of developing for iOS and Android. Not terribly detailed, but a good read.

Completely off-topic. Mostly.

My employer received a solicitation in the mail roughly five years ago that I’ve kept around to show co-workers whenever I want to impress on them how not to communicate with customers. I hope this company has wised up by now, but since they still don’t seem to have a website, either they’ve thrown in the towel, or they’re still as clueless as before.

That’s right: we received a marketing solicitation from a company with no website. And no email, apparently. In 2006.

Read the rest of this entry »

I’m not a GUI programmer. Nor am I comfortable using frameworks. Yet here I am, trying to learn iOS programming.

The first app I’m tackling that isn’t straight from a book is one that will ask SiriusXM what’s currently playing. I use Shazam and SoundHound quite often, but it always seems silly: I can see the song title (usually) on my radio. Taking a photo of my radio also seems a bit silly.

SiriusXM provides an XML file for each station indicating what’s currently on. You can’t go back or forward in time by more than a minute or two, but you can definitely see the current state of the world. So, let’s see what we can do to display that information on my portable information manager (aka my iPhone).

If you hate a meandering stream of consciousness, stay away! This post is to serve two purposes: to force me to continue my efforts until I get this blasted app done, and to give other beginning programmers hope that, yes, someone else is struggling, and that someone else is a bozo, but he still wrote an app.

Read the rest of this entry »

Herein are my New Year’s Resolutions, of the idevdev inclination.

Finish Seven Languages in Seven Weeks

This book takes the reader through the basics of seven quite different languages, most of which are not particularly widely-used, although Ruby definitely doesn’t fit that description, and Prolog should be familiar to computer science students.

The fine folks at The Pragmatic Programmers (http://pragprog.com/) make all of their books available in electronic format at an affordable price, with updates over time. They periodically offer significant discounts, such as on Black Friday, so I’d definitely recommend signing up for their mailing list.

Spend time with SICP

I’ve long had a soft spot for Scheme, but have never gotten very far with my studies. My theory is that it’s easier to learn LISP or Scheme before becoming entrenched with a procedural language like C, but hopefully going the other direction will work if I apply myself.

Work through the tutorials at Rapture in Venice

I discovered this website yesterday (they are responsible for a new XML library for Objective-C, RaptureXML, and my pet iOS project could really use a good XML parser).

The site seems like a fount of useful information.

Make use of Evernote

I’m a fan of mind mapping for organizing my thoughts, but I haven’t found a solution yet that I’m really happy with. Evernote seems like a viable (albeit orthogonal) alternative, and obviously does a great deal more than your typical mind mapping software.

I’m still not 100% comfortable with the privacy implications: I don’t like sharing private information with a company I’m not paying, and there’s nothing in the premium service to indicate I get more privacy as a result. But certainly for capturing useful information about Mac and iOS development, privacy isn’t a concern.

Buy a next generation iPad when they’re available

Not having an iPad (mine died an untimely death) is driving me blinkin’ crazy.

Don’t ignore this blog

…or its counterpart, corporate.mobility. Very easy to start a blog these days, very difficult to keep one going.

Update: tested and verified my assumptions. NULL and nil are equivalent when methods are invoked against them, and categories can be used to implement class methods.

One of the handier methods in C# is String.IsNullOrEmpty, which returns true if the argument is either a null pointer or an empty string.

Objective-C could use something similar, or so I’ve thought. Now I’m not so sure; read on.

Read the rest of this entry »

Books are a recurring theme in my software development life, primarily because I’m awful at teaching myself anything from first principles, and because I do most of my learning in isolation. I usually need a helping hand, and a good book can provide that. Here are some of my books that I have yet to mention but that I find compelling for one reason or another.

  • The first is actually a series: the Handbook of Programming Languages. I don’t recommend buying the set at Amazon prices, but I’ve managed to pick up most of the series at used book stores for a few dollars here and there. I find it a fascinating (albeit gap-laden) survey of the wild and wooly world of languages.
  • The Pragmatic Programmer: From Journeyman to Master is the book that launched The Pragmatic Programmers, whose books challenge O’Reilly for the title of most interesting and relevant for programmers today. I’ve long sampled books from both companies and found them generally quite tasty.
  • JavaSpaces Principles, Patterns and Practice is an oddball for me. I don’t know that the book itself is particularly compelling, but the concepts behind JavaSpaces tantalize me. I often find myself contemplating communications problems and wondering how tuple spaces might be used to tackle them.
  • Object-Oriented Methods: Principles & Practice is a text I used while studying computer science, and while I can’t claim to have read it all, I someday might actually finish skimming most of it. Maybe.
  • SQL and Relational Theory: How to Write Accurate SQL Code is a non-animal O’Reilly book. I’ve long heard rumors of dark places on the Internet where relational database mavens argue that SQL is not truly a relational programming language, and this book is written by one of them. I haven’t gotten far in it, but it’s a pleasure to read a long, thorough book that isn’t just a recitation of facts with lots of pictures and source code samples, which all too many computer books of a certain size tend to be. If you believe that understanding the concepts in depth makes for a better programmer, this book is for you.
Follow

Get every new post delivered to your Inbox.