Learning iOS Programming, 2nd Ed. – Updated to cover iOS 5, iPad, iPhone, iPod Touch – #programming #bookreview

Learning iOS Programming, 2nd Edition
By Alasdair Allan
(O’Reilly, paperback, list price $34.99; Kindle edition, list price $27.99)

Alasdair Allan’s popular iOS programming book recently has been updated to cover iOS 5. And it has a new name. (The first edition was titled Learning iPhone Programming.)

“The changes made in this second edition reflect the fact that a lot has happened since the first edition was published: the release of the iPad, a major release of Xcode, two revisions of the operating system itself, and the arrival of Apple’s iCloud,” the author notes. “This book has therefore been refreshed, renewed, and updated to reflect these fairly fundamental changes to the platform, and all of the example code was rewritten from the ground up for Xcode 4 and iOS 5 using ARC.”

Allan’s book – well-written and appropriately illustrated – is structured to provide “a rapid introduction to programming for the iPhone, iPod touch, and iPad,” and it assumes that you have some familiarity with C or a C-derived language, as well as a basic understanding of object-oriented programming.

And the pace is fast. By chapter 3, you are building the requisite “Hello, World” application and running it in iPhone Simulator.

In that same chapter, Allan also introduces the basic syntax of Objective-C and highlights some of the “rather strange” ways that it deals with method calls. He discusses how the Cocoa Touch framework underlying iOS applications “is based on one of the oldest design patterns, the Model-View-Controller pattern, which dates from the 1970s.” And he warns that “[a]ttempting to write iOS applications while ignoring the underlying MVC patterns is a pointless exercise in make-work.”

Learning iOS Programming, 2nd Edition does not emphasize web-based applications. It centers, instead, on creating native applications using Apple’s SDK. “The obvious reason to use the native SDK,” Allan states, “is to do things that you can’t do using web technologies. The first generation of augmented reality applications is a case in point; these needed close integration with the iPhone’s onboard sensors (e.g., GPS, accelerometer, digital compass, and camera) and wouldn’t have been possible without that access.”

He emphasizes a financial reason, as well. “Consumers won’t buy your application on their platform just because you support other platforms; instead they want an application that looks like the rest of the applications on their platform, that follows the same interface paradigms as the rest of the applications they’re used to, and is integrated into their platform.”

He adds: “If you integrate your application into the iOS ecosphere, make use of the possibilities that the hardware offers, and make sure your user interface is optimized for the device, the user experience is going to be much improved.”

Hard to argue with that.

Learning iOS Programming, 2nd Edition provides the steps necessary to develop and market your first iOS application. Allan notes: “Until recently, the only way to obtain the iOS SDK was to become a registered iOS developer. However, you can now download the current release of Xcode and the iOS SDK directly from the Mac App Store.”

Of course, if you intend to distribute your applications “or even just deploy them onto your own device, you will also need to register with Apple as a developer and then enroll in one of the developer programs.”

You may need some system upgrades, as well. To develop apps for the iOS, you’ll need an Intel Mac running OS X 10.6 (“Snow Leopard”) or later. If you plan to create apps that use Apple’s iCloud, you’ll need OS X 10.7 (“Lion”) or later.

One other recommendation from Allan: If you’re truly serious about being an iOS developer, consider also registering with the Mac Developer Program.

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir. He is the author of an e-book detective novel, Erwin’s Law, now also available in paperback, plus a novella, Jump, and several other books and short stories.

Learn Microsoft Visual C# 2010 with ‘Start Here!’ Book for Beginners – #programming #bookreview

Learn Microsoft Visual C# 2010
By John Paul Mueller
(Microsoft Press, paperback, list price $34.99; Kindle edition, list price $27.99)

I like the “Start Here!” series from Microsoft Press. The books, in my view, provide a convenient, affordable and approachable way to develop some new skills in a hurry, without having to take classes.

There is nothing wrong with taking classes, of course. Most of us in America’s workforce (working or unemployed) need all of the new skills and education we can get. But if, like me, you’ve checked the prices of online classes lately and also looked at your checking account, you likely need some affordable alternatives.

If you are ready to tackle Microsoft Visual C# 2010,  you definitely can “Start Here!”, with John Paul Muller’s well-written new book.

Learn Microsoft Visual C# 2010 has been “conceived and created for the complete novice–someone who has no programming experience at all.” And it uses a hands-on approach to learning. It is not recommended for experienced programmers seeking to pick up another language.

But if you are, indeed, a complete novice to computer programming, you probably should read another “Start Here!” book first: Fundamentals of Microsoft .NET Programming by Rod Stephens. Or, at least have that book handy to read in conjunction with Learn Microsoft Visual C# 2010.

The “Fundamentals” book explains and illustrates many essential terms and concepts, such as routines, call stacks, and passing parameters. And sometimes, in Learn Microsoft Visual C# 2010, you will be referred to some of the definitions and examples found in Fundamentals of Microsoft .NET Programming.

The software download section of Learn Microsoft Visual C# 2010 may be a bit confusing for some beginners. Some of the screens and choices have changed somewhat and some have been combined since the book was published.

And while the author says “you don’t need a copy of SQL Server to work through the examples in this book,” the “Code Samples” discussion in the book’s introduction says otherwise.: “…your system should have Visual Studio 2010 and SQL Server 2008 installed.”

I left an SQL option box unchecked when setting up for my download, but I still received all of the SQL files. And, altogether, I spent a ridiculous 14 hours going through (and sometimes sleeping through) the download and installation process on a somewhat aging PC running Windows XP and a not-so-blazing wi-fi connection.

Your results will vary. So do not be in a hurry, even with a fast system. Set aside plenty of time to do things right once you start the process.

But at least all of the software tools used in this book are free. And once things are up and running, the author takes you right into the process of learning how to develop applications using C#.

His book is divided into 12 chapters:

  • Chapter 1: Getting to Know C# – Includes the Integrated Development Environment (IDE), creating and testing a Windows Forms application project, viewing its code, using Windows Presentation Foundation (WPF), creating and testing a WPF project, and viewing the code produced.
  • Chapter 2: Developing a Web Project – Focuses on developing two web applications using C#. Also shows how to download and install tools used to develop web applications.
  • Chapter 3: Using Simple Data Manipulation Techniques – Introduces data manipulation and shows how to use Language Integrated Inquiry (LINQ) to manipulate data.
  • Chapter 4: Using Collections to Store Data – Shows how to create containers to store similar data together, and explains three different types of data storage.
  • Chapter 5: Working with XML – Shows how to use eXtensible Markup Language (XML) in tasks such as saving applications settings and working with web services.
  • Chapter 6: Accessing a Web Service – Shows how to access free web services using two techniques that C# provides: Representational State Transfer (REST) and Simple Object Access Protocol (SOAP).
  • Chapter 7: Using the Windows Presentation Foundation – Focuses on using WPF to “help you create applications with impressive interfaces and new features that aren’t available using older C# development techniques.”
  • Chapter 8: Working with Libraries – Programmers try to reuse code as much as possible, to speed up the development process. This chapter shows how to create and use a library as part of  an application.
  • Chapter 9: Creating Utility Applications – “…shows how to create applications that have a command-line interface so that you can work with them quickly and automate them in various ways.”
  • Chapter 10: Using LINQ in Web Applications – Shows how to use LINQ to ask an application to supply certain types of data.
  • Chapter 11: Working with Silverlight Applications – Silverlight “works with multiple browsers and on multiple platforms”  and “can transform your C# application into something that works everywhere.” This chapter focuses on understanding “the basics of Silverlight development using C#.”
  • Chapter 12: Debugging Applications – Shows how to apply tracing techniques learned in this book to the process of finding and fixing errors.

The code samples used in the learning exercises can be downloaded from a Microsoft site. And, once you work your way through the book, the author says you may want to move up to another book, Microsoft Visual C# Step by Step.

You also may be eager to take a C# class, online or on campus, where you can learn from an instructor and fellow students.

It all depends on your resources and how committed you are to programming in C# after you “Start Here!”

Si Dunn