Posts Tagged ‘ ipad

iOS Book Reviews: Professional iPhone and iPad Database Application Programming

Disclaimer: I do not generally read programming books from start to finish! Instead, I read them much as I would read a blog that I’ve discovered for the first time, skimming the archives (table of contents), and then taking-in the first few sentences of parts that look interesting to me, and bookmarking posts that I want to read in greater depth (dog-earing pages that deserve a second glance). I almost never go back for those second glances, so basically I have a bunch of programming books laying about that look like they’ve been heavily read, when in fact they’ve hardly been cracked. My excuse is that programming books are so seldom relevant past their publish date that keeping them for reference seems silly. If I’m paging through a book’s contents in search of some solution, it usually means I just don’t know the right search terms. When I find some pages that seem relevant, I then turn to the web with my newfound knowledge, and feel vindicated when I find some piece of web-content that appears (at least at first glance) to be superior and more timely.

I do still tend to keep those books around, however, mostly so I can look through their code examples. I find books that consist of mostly code are almost always more interesting than those that try and teach you some general topic. You can usually find nice code examples on the web, of course, but they are seldom explained in as much detail as you would find in one of these “by example” books. In this case, I have in front of me two books that both attempt to teach some topic, but do so with heavy use of examples. They are hybrids, if you will, of books that teach a general topic, and books that consist of mostly code examples. Maybe all programming books exist on a spectrum with pure thought and abstract theory at one end, and pure code (and more easily out-of-date examples) on the other.

Professional iPhone and iPad Database Application ProgrammingThe first of these is Professional iPhone and iPad Database Application Programming, by Patrick Alessi, published by Wiley (Wrox) in 2011. With chapter titles like “Introducing Data-Driven Applications”, “The iPhone and iPad Database: SQLite”, “Displaying Your Data: The UITableView”, and “iPad Interface Elements”, you would definitely not know at first glance that this is an example-driven book. In fact, each of those sections (and all the other sections of the book) run you through the creation of a sample project, each building on knowledge gleaned in the previous chapters. The first chapter includes a very nice introduction to Xcode and shows you how to create a simple UITableView based application.

The following chapter, “The iPhone and iPad Database: SQLite”, goes a bit farther down the UITableView rabbit hole with its sample project, and introduces SQLite besides. This chapter definitely endeared me to the author when it said: “While Core Data is the recommended framework for creating data on the iPhone, you may want to forego Core Data and use the SQLite API directly for several reasons.” The author then lists several compelling reasons! This may be a heretical position to take, but avoiding Core Data has always been my preference, although I do occasionally wonder if there are ever good reasons to use Core Data of which I am simply ignorant.

The author does later dedicate five chapters (about a third of the book) to using Core Data, so he can’t think it’s entirely useless. He does not, IMHO, (at least in the cursory skimming I gave that portion of the book), provide any compelling reasons to use Core Data. The closest he comes is when he says (repeatedly) that using the graphical data modeling tool will dramatically speed up the development time of your data driven app. I fail to see how this is the case! If creating your db schema is taking up a lot of your development time, I think you’re probably doing something wrong, or possibly you just aren’t familiar with SQL in general.

(A decent db abstraction layer to handle your SELECT, INSERT, UPDATE etc. calls is also a must, and I am disappointed to report that Alessi’s book does not cover this topic. There is at least one decent open source wrapper available (called FMDB), although there are things I would change about it — namely the API for retrieving your result sets.)

Unfortunately, the portions of the book dedicated to the Core Data modeling tool fall into the “already obsolete” category of coding examples, because they do not appear to cover the Xcode 4 interface. I created a sample project using Core Data to look at the modeling tool, and like Interface Builder, it has been consumed by the “one window” paradigm prevalent in all things Xcode 4. Reading the first couple of chapters on Core Data will probably give you the base knowledge needed to use it anyway, but as I said earlier, google can probably do a better job.

The last third of the book consists of a couple of chapters about integration with web services. This topic makes a lot of sense to include in a book about data-driven applications, but it’s definitely given less attention than the previous two sections. I really think the book should have been expanded quite a bit, both to go into more detail about the stuff it does cover, and also to cover additional stuff that was notably absent. Off the top of my head, here are headings I would have liked to see: best practices for storing data retrieved from web services, how to deal with syncing issues, common tools for consuming web services, and at least one code example for parsing and consuming JSON. Unfortunately, JSON is given only a cursory mention, and its superiority to XML for the task at hand is not, as I feel it it should have been, firmly established.

In the beginning of chapter 10, “Working with XML on the iPhone”, there is a section called Synchronous Data Retrieval, in which some lip service is given to NSString‘s stringWithContentsOfURL: selector blocking your UI, but then it is not made clear that the subsequent code examples (using NSURL and NSURLRequest) are asynchronous in nature! Also, on the topic of “common tools”, the book pretty much writes everything from scratch in this section. I can understand the impulse that the author may have had to explain all the gory details of xml parsing and NSURLRequests without complicating matters by introducing open source libraries that simplify these processes, but they save far more time than I’m liable to believe you can save by using Core Data. If you are consuming web services from your app, you would be stupid not to use (or at least look at) ASIHTTPRequest. That little project has probably saved me dozens of hours in the last three months. On the subject of XML parsing, the question is not whether you should use an external parser, but rather which XML parser is right for your needs!

Overall, I didn’t expect to read as much of Professional iPhone and iPad Database Application Programming in detail as I ended up reading for this review. I don’t know how much of that was due to wanting to give it a fair read in spite of my bias against using Core Data, and how much was due to the author’s really well written prose. Database applications is about as dry a subject as they come, and yet I never felt lulled to sleep in the way that many programming books have a tendency to do to me. If you are not familiar with SQLite, or programming for UITableView, I would definitely highly recommend the first four chapters of the book. As for whether they are worth the asking price, (currently $30 on amazon), I’ll leave that up to you.

Unfortunately, I think I’m going to have to leave any in-depth review of my second learn-by-example iOS book for another day: Learning iOS Game Programming: A Hands-On Guide to Building your First iPhone Game, by Michael Daley, published by Addison Wesley in 2011. This book takes you through the author’s process of building an iOS game from start to finish. The game you build, Sir Lamorak’s Quest, is available as a free download from the app store, so you could potentially download it and see if it’s got stuff in it you’d like to know about. I haven’t actually looked at the game for more than a minute or two, but I know from personal experience that parsing through the source code of a game, even one I have no interest in ever making, is always fascinating to me, so I’m quite excited to dig into this book.

Cross-posted on Martin’s dev blog, Chesstris.

Recursive Awesome Helps Adolfson & Peterson Launch the American Swedish Institute iPad App

On a chilly April Saturday, the American Swedish Institue broke ground for the Nelson Cultural Center, a modern addition to ASI’s existing Turnblad Mansion.  The new center is a state of the art building, with a 325 seat event space , craft workshop, conference room, retail shop and an additional gallery.  The lower level offers more space for collection storage, exhibit prep and a utility tunnel that connects the new building to the Turnblad Mansion.  The Nelson Cultural Center is tracking to be LEED Gold certified, and will achieve this by using sustainable materials, geothermal heating and cooling systems, a green roof, and water conservation strategies.  The Turnblad Mansion will also receive updates as well.  The lower level will be renovated to offer additional storage for Swan Turnblad’s archive.  There will also be new classrooms and a community hall, with kitchen facilities.

Recursive Awesome partnered with Adolfson & Peterson Construction — the general contractors for the project — to develop an iPad app, which allows ASI members, volunteers, and visitors alike to take a virtual tour through new Nelson Cultural Center and Turnblad Mansion renovations.  Not only can you keep up to date with the latest project news, you can learn more about the American Swedish Institute in the ‘ASI Is…’ section.  You can read about the sustainable aspects of the project, and understand what it means to be LEED Gold certified.  There is a ‘Virtual Tour’ that lets you learn more about key areas of the project, just by tapping on the map.  Lastly, you can give & get involved yourself!  The app offers the opportunity to donate, join as a member, volunteer, or sign up for ASI’s Klipp! newsletter.

Kevin Lind (Virtual Construction Manager, A&P) was present at the groundbreaking — and helped visitors use  the app — said “My biggest reflection on the day was the linking of generations. Seeing families sit down together and walk through the app, asking question of each other”.  He went on to say “We had numerous people spend 30 plus minutes sit down and thumb through the content that is good to see.  My favorite part is the virtual tour — Google style maps — but really makes a huge leep in the direction of a new way to view your project”.

The app will be on display in the solarium of the Turnblad Mansion, during construction of the Nelson Cultural Center.  The app also includes a ‘kiosk’ mode — accessible from the iOS settings menu — which will allow every guest to have the same experience.  It will be available in the Apple App Store, for everyone to download and stay up-to-date with the project.

About The American Swedish Institute

The American Swedish Institute, founded in 1929, serves as a gathering place for people to share stories and experiences around universal themes of tradition, migration, craft and the arts, all informed by enduring ties to Sweden.
http://www.americanswedishinst.org/

About Adolfoson & Peterson Construction

A&P is one of the top 50 construction companies in the U.S., providing construction management, design/build and general contracting services to public and private clients. A&P serves the K-12 school, energy, healthcare, higher education, municipal, multi-family, retail, and senior living market segments from its offices in Arizona, Colorado, Minnesota, North Carolina, Texas and Washington.
http://www.a-p.com/

About Recursive Awesome

At Recursive Awesome we focus on the design, development, and support of tablet, mobile and web applications. We use Agile software development practices, to create RESTful API’s (Ruby on Rails), as well as mobile (iOS, Android, Blackberry and Windows Phone 7) and web products for ourselves and our clients.
http://www.recursiveawesome.com/

Media Inquiries:

Breon Nagy
Recursive Awesome
breon@recursiveawesome.com
612.399.6626

Win an iPad 2 or Motorola XOOM at Mobile March!

That’s right, folks.  Recursive Awesome is giving away an Android 3.0 powered Motorola XOOM and a yet-to-be-released Apple iPad 2 at Mobile March Twin Cities.

The Motorola XOOM has only been out for a couple of week, and it’s already making its mark in the world of tablets.  I was able to get my hands on a review unit.  You can read what I think about it here.

Complete with front and rear-facing cameras, the iPad 2 is sure to take the market by storm…again.  It will be released on March 11th, and we’ll be there to snatch one up, just for you.

Not sure what Mobile March is all about?  Take a peek at this blog post from Recursive Awesome founder, and Mobile March organizer, Justin Grammens.  If you can’t make it to the full event, check out Mobile 3D (Demos, Dinner and Drinks).  Mobile 3D is a new addition to Mobile March.  Mobile 3D is included with your Mobile March admission, or can be purchased separately.

See you there!

This Week in Mobile and Web – 01.25.2011

Hello, Readers!  It’s been awhile since we last chatted.  A lot has happened.  Let’s dive in.

This Week in Shameless Plugs

Mobile March is back!  Recursive Awesome is, once again, a platinum sponsor for the event.  Mobile March is a day-long (March 19th) event and will have two tracks, much like last year; Business and Development.  Many speakers have already signed up to present.  More are added everyday.  What’s new this year?  How about Mobile 3D?  Mobile 3D (Demos, Dinner, and Drinks) will give developers and business a chance to show off their mobile apps and services.  It will be held Friday night, before the event.  The best part?  It’s included with your Mobile March registration!

Development

OS News

Web

Apps

Carrier News

Devices

This Week in Humor

Android Alternatives to Apple’s iPad

Some of us are excited about the iPad. In fact, who are we kidding, MANY of us are excited about the potential application for the iPad in our industry. Latest news is that Apple is selling more iPads in one month than Palm WebOS devices have sold in the past year. But, the iPad isn’t the only tablet game in town. In fact, while it is the first highly advertised device (thanks to Apple’s huge marketing budget and rightfully “cute” ad campaigns), it could be argued that it wasn’t the first to hit the shelves. While not as large, Archos released a MID (Mobile Internet Device) last fall. It runs the Android operating system, features a 5″ touch screen, has WIFI, 3G, games and applications. Never heard of it? I’m not surprised. In fact, never heard of Archos either? That wouldn’t surprise me either. Neither Archos or the tablet were advertised and consequently didn’t sell in high volumes. Why?

There are many reason for this.
True, it was not advertised every 30 minutes like I am seeing right now with the iPad, but there are other reasons. It was underpowered. It was not sexy, it did not have all of the apps that iTunes has, runs an outdated version of Android. And finally, it’s not integrated with desktop software (like iTunes) to make audio and video transfer and sharing easy.

So, what’s a person looking for alternatives to the iPad to do? The good news is… there’s A LOT to do.

Here’s a link to an article on Mashable that shows a 9 upcoming tablet alternatives to Apple’s iPad.

http://is.gd/dydb9

and again, seven more iPad alternatives.

http://is.gd/dyddx

more…

http://is.gd/dydfg

and finally… one prime example of a tablet device hitting the market everywhere.

http://is.gd/dAXfv

So, what is different now, v.s. last year?

Here’s my take.

  1. Android has dramatically improved. With version 2.0 and newer of Android, I can finally say that Android is no longer “in-beta”. It has a much more polished look and feel out of the box. anyone running the Froyo release (version 2.2) would have to agree with me.
  2. The hardware is getting much better. With the 1.0 ghz, “snapdragon” and now 1.0ghz “hummingbird” processors, applications are responsive and actually doing development right on the device is faster, since you can launch and run the application in fraction of the time you could in the past. This follow the “Recursive Awesome Law #3 of software development” – the less pain developers go through, the more applications they will will write.
  3. The sexy factor has been increased. For better or worse , the iPad has upped the bar and companies are starting to realize they not only need a functional device, but a visually appealing one as well. The new tablet/pad style devices coming out are in my opinion, head and shoulders better than the Archos MID that was released last year.

So what is still outstanding?

The biggest problem is that the Android SDK only supports 480×854, 5.0″-5.8″ as it’s highest resolution display. While the screen can be made larger on the device, support for higher resolutions won’t be coming until the next version of Android 3.0 (aka Gingerbread). That means that the manufactures will need to do some tweaking, or else just leave the default resolution and stretch the display out. The less that device manufactures need to mess with the operating system and its internals, the faster the adoption rates will be.

Another question I think still remains is any type of integration is with desktop software. But, is it really needed? The largest consumer use case that I see for a tablet device is web browsing, reading books, watching videos and listening to music. If the manufactures of these alternatives can create easy ways to either sync with iTunes, Windows Media player or offer some type of desktop client that will allow the user to push their content to the device, then these devices really have chance. The other option that we can see (and the direction the industry is going), is to have all of your digital media stored “in the cloud” and your device accesses those services wirelessly wherever you may be. This is where Google is pushing the market, and something that we will get to someday, but in the mean time, if the Android devices need to synchronize their digital media by digging through folder after folder and user must manually copy and back up their data, this will be a major turn off. Android needs to create some sort of sync utility.

So, there you have it. A basic run down of some devices contending against the iPad. We haven’t discussed the industrial/business usage which actually changes the numbers quiet a bit. In that scenario I can see the alternative to the iPad winning out since Android and other mobile platforms are free and are not restricted by Apple’s hardware or policies.

Will I get one of the these alternatives?

You bet! We already have purchased an iPad at Recursive Awesome and we working to develop a handful of iPad applications for not only ourselves, but our clients as well. But, you never bet on one horse in technology and we are always looking at the alternatives. In this case especially, the alternatives have huge potential and opportunity for those wanting to run Android or another open source operating system.

Let us know you thoughts on any of these devices!

UPDATE: It looks like since I originally wrote this post there have been some setbacks around manufactures bringing their tables to market I’m still convinced that Android tables are going to a major player in the tablet computer arena for years to come.