This is a letter sent to Jeff LaMarche from the developer of the iSketch app. Nice story, wanted to share with you all…
Dear Mr. Lamarche,
My name is Cameron Cohen and I am an eleven year old iPhone App Developer. Last year, I had an injury that restricted me from doing any physical activity that I enjoy. I had taken a few classes on programming c++ and Java so I was interested in computers. I had an iPod Touch and was very interested in it, so I decided to google, “How do I create an iPhone Application?” I watched Stanford University classes on ‘iTunes U’, watched all kinds of tutorials, and, almost every day, read your blog. Over the summer, I spent most of my time working on completing one full application. I worked on a painting/drawing application, because although there were many in the App Store already, I thought mine would be better. I submitted my application, “iSketch”, to Apple in November. As my app was waiting for approval by Apple, I had a thought on my mind. Inspired by the care I received at Santa Monica-UCLA Medical Center and Orthopaedic Hospital, I decided to dedicate a portion of the proceeds from the sales of iSketch to purchase entertainment and electronic items for Mattel Children’s Hospital UCLA’s Child Life/Child Development programs in Westwood and Santa Monica so that pre-teens and teens would have additional age-appropriate options available to them during their Hospital stays. I wanted to donate a portion of my sales, and I knew this was the way. Apple approved my app in early December, and, since then, my sales have been good, but I hope to accelerate them so that I can donate even more to the hospital. Thank you very much for reading this, and I was hoping that you could possibly put this or information about me on your blog. My email is email@example.com, and my website is www.cccdevelopment-llc.com .
Dan Bricklin was at Harvard Business School in 1979 when he and his buddy, Bob Frankston, came up with the very first killer app, the world’s first spreadsheet, VisiCalc. Dan did his undergrad work at MIT. Here’s his Wiki page.
Recently, Dan decided to tackle the art of iPhone Development. Part of his effort was informed by our book, Beginning iPhone 3 Development. I can’t tell you how cool that is for me and for Jeff. Hard to explain how this feels but, suffice it to say, for me, Dan is right up there with Woz, Steve Jobs, Bill Atkinson, Bill Gates, Andy Hertzfeld, etc., as a person who helped get the personal computer to the place it is right now.
Check out the mention in this article:
Who would you add to this list? Someone who helped shape the personal computer universe…
Posted by Dave Mark on Oct 7, 2009 in Software Development
When I was first learning to program, a friend of mine suggested I take on C as a first language. This was before Object programming became the standard. I was already enamored with Unix, so C was a natural. I learned C by reading a book called The C Programming Language by Brian Kernighan and Dennis Ritchie. Here’s the cover:
Recognize it? This book had a huge influence on me. Really connected me to the concept of pointers and the danger of buffer overflows. To this day, I think C is the best first programming language for the wannabe programmer.
Take a few minutes to read this ComputerWorld interview with Brian Kernighan that hit the web yesterday. Absolutely brilliant…
Posted by Dave Mark on Sep 6, 2009 in Apple
, Software Development
Yesterday I came back from a week at the beach and found my copy of Snow Leopard waiting. I have an up-to-date Time Machine backup, so I figured I’d dive right in. The upgrade was the easiest OS upgrade I’ve ever experienced. It took an hour, but required no babysitting. Really quite impressive.
Once I was booted in Snow Leopard, there were a few things that required my attention.
The first was Adobe Flash. I read this article, which says that the Snow Leopard upgrade replaces the current version of Flash with a previous version that is vulnerable to a variety of attacks. No problem there. Once you finish your Snow Leopard install, go to the Flash site and download/install the latest version of Flash Player.
Next up is for developers. You’ll need a new version of the Mac and iPhone SDK for Snow Leopard. In the past, this has always been an all-in-one upgrade. For the moment, Apple has split Xcode and the SDK into two separate downloads. And, as far as I can tell, there’s no single page containing both downloads. Argh.
Go to http://developer.apple.com to download the SDK. As usual, you’ll need to first select the dev center you are interested in, then login. Once logged in, scroll down to the downloads area and download the SDK of choice.
Next, go to http://connect.apple.com to download the Xcode package. Login, click the Downloads link, scroll down to Xcode 3.2 and download/install. I don’t believe the order matters. I installed the SDK first, then Xcode and everything worked fine. Note that you can pull Xcode off the Snow Leopard install DVD (see the Optional Installs folder – thanks for the pointer, @akulbe), but if you do have net access, I’d always go for the download, since it ensures that you’ll always get the latest version.
The third item I needed to deal with came up when I double-clicked on a .wmv file. I got the message:
“quicktime player must be installed to run this application”
Turns out I have Flip4Mac installed to play my .wmv files. I went here and downloaded the latest version. Installed, and the .wmv file now opened in the gorgeous new QuickTime Player. Brilliant. Note that you don’t necessarily need Flip4Mac if all you want to do is play .wmv files. You can just use “Get Info” and associate .wmv with the QuickTime Player. Thanks to @mikejuergens for that suggestion.
Overall, an incredibly easy upgrade experience. Now to go find my new printer drivers.
Posted by Dave Mark on Aug 12, 2009 in Software Development
, User interface
This one is via Kevin Anderson. The iPhone Stencil Kit lets you quickly sketch out iPhone UI prototypes:
Comes with UI Stencil, Zebra mechanical pencil, printable template, stickers. From designcommission.com…
Posted by Dave Mark on Jul 24, 2009 in Apple
, Software Development
This is pretty interesting. A while back, my buddy David sent me an email asking about the process of deleting files from his iPhone. He had deleted some mail messages and then gone to the search page and found the messages even though they were deleted.
Search page? iPhone OS 3.0 introduced a search page, to the left of the home page. Press your home button to bring you to your home page and either drag to the right or press the home button again. This brings you to your search page. Using Spotlight (reverse indexing), the search page searches everything stored on your iPhone. This includes music, email, apps, photos, and even the trash!
Giving the user the ability to search deleted files is an interesting choice on Apple’s part. There’s no way to restrict searches so deleted files are not searched. In addition, there’s no simple way to “really delete” files so they are scrubbed from the persistent store. Not really a problem, unless you’ve got sensitive material on your iPhone that you really want to delete.
Enter my buddy David again. We cooked up this experiment which he was nice enough to run. He deleted some emails, then searched for them and verified that search found them and that he was able to open the deleted emails by clicking on them in search.
Next, he built a giant playlist that consumed all the free space on his iPhone. The theory: Apple maintains a list of deleted items and returns the memory to apps as requested. When an app needs more memory, they get that memory from the deleted list once regular memory is used up.
David ran the experiment and, as expected, as he filled his iPhone, items disappeared from the deleted list. Pretty interesting. Try it yourself…
Posted by Dave Mark on Jul 9, 2009 in Software Development
, app store
When Apple publishes an API, they include a specific set of accessors and mutators (getters and setters) they want you to use to access their frameworks. There’s an implied contract at work here. Apple promises to support the public interfaces and you agree to base your code upon those public interfaces. And there’s an explicit contract at work as well, a contract you agree to when you download the SDK that says specifically that you will not make use of private APIs.
Some folks like to look through the interfaces for private methods to allow them to do things they just can’t do with the provided public methods. I can totally see the fun in doing this for your own coding pleasure. But building production code that is based on private methods is a chancy proposition at best. Your code is likely to break as Apple changes the internal structure of their classes. And if that happens, remember, you were the one who broke the contract.
There’s a blog post that’s been making the rounds over the past few weeks that I found pretty funny. And it speaks to this situation just perfectly.
Here’s the post.
Read the name of the method. The ENTIRE method name. Come on, that’s pretty funny. Who said Apple doesn’t have a sense of humor!!!
Posted by Dave Mark on Jun 30, 2009 in Software Development
If you own the first edition of Beginning iPhone Development and are considering getting the update, read my coathor Jeff LaMarche’s blog post first. Yes, these are Jeff’s words, but I agree with every one of them…
Here’s a pic from the iPhone Blog of a banner hanging in Moscone, just waiting for us iPhone and Mac dev folks to descend this coming Sunday.
Woohoo! Seriously can’t wait…
Posted by Dave Mark on Mar 31, 2009 in Apple
, Software Development
, app store
Interesting article about App Store piracy says that as much as 20% of the apps on the App Store are cracked and available on the net as free downloads. One thing that struck me about the article:
“We want people to think of these as trial apps since Apple doesn’t allow trials of apps before purchase,” said “Omar,” one of the creators of the site, who refused to disclose his real name to Wired.com. “It’s Apple’s fault for not putting up a trials system.”
It’s Apple’s fault? That is simply outrageous.