I’ve spent part of my development schedule over the last few months rebuilding the iPhone app for NYC based startup Clean Plates. The Clean Plates iPhone app v2 is now available on the app store so check it out. Clean Plates offers professional restaurant reviews and a series of email newsletters with a healthy eating focus. The app allows users to search nearby or by neighborhood to find restaurants (think Yelp’s app but with more advanced filtering options and only professional reviews).
From a development perspective it was an interesting project in one way in particular: it was a brand new re-write of an existing app. Why re-write instead of extending the existing code base? Read on…
The old app was originally built several years ago and consisted of 475 classes and 79,889 lines of code. If that sounds like a lot of code that’s probably because it is. Because of it’s age there was no use of Storyboards and art assets were fixed in size (no Auto Layout). Combine this with poor performance, frequent crashes and heavy usage of an old un-upgradable version of RestKit and you have a perfect case for a brand new build.
The new app uses Storyboards and Auto Layout so it is compatible with the newer, larger iPhone models. It has been redesigned to be more in line with iOS 7+ style guides and even has more advanced features, including better restaurant filtering and the ability to save favorite restaurants. It is also only has 52 classes and 6,910 lines of code. With the new updates I tried to not to leave any existing users behind so it is still compatible with iOS 7.1+ devices, including hardware compatibility with the iPhone 4 and it’s shorter form factor. Finally, there are no major dependencies on third party libraries such as RestKit so future upgrades should be relatively smooth. The app is not perfect and at least one update will be needed for minor improvements but I consider everything here a big win.
The iPhone 6 and 6 Plus are now available so I thought I would post my brief thoughts on both (how original). Let’s start where I started though: the 3GS.
My first smartphone was an iPhone 3GS. Despite it being far worse than my older phone at actually making phone calls I enjoyed it. There were other smart phones on the market but none of them were very good in comparison. After going skiing one day I reached into my pocket and only got a handful of snow instead of my 3GS (I forgot to zip the pocket back up at some point). I decided to replace my lost phone with the newer model at the time: the iPhone 4S. While I liked the 4S I had to question my purchase. Android phones now had nearly all of the same features and nicer, larger screens. It wasn’t a no brainer purchase like the 3GS. Was I getting sucked into the cult of Apple?
Last year my wife bought me an iPhone 5S for my birthday and while I liked it, I would say that it was objectively worse than the top of the line Samsung phones at the time. If it wasn’t for the fact that I develop iPhone apps I would surely have switched to Android last year. I really hated how Apple chickened out with the iPhone 5 and 5S by simply extending the height of the phone a mere 0.5″ instead of making a drastically larger phone to compete with Samsung.
Which brings us to the iPhone 6 and 6 Plus. Apple has finally released the larger phones that people have been demanding for years. This past week I stopped by the Apple store at Grand Central Station to try them out. The iPhone 6 is the perfect form factor in my mind, being much larger than the iPhone 5 while still being comfortable to hold in one hand. You can make an argument that top of the line Android phones can be a better value than the iPhone 6 price wise but as far as overall quality goes I think the iPhone is back on top. The iPhone 6 Plus, on the other hand, feels way too big and goofy to me. Maybe if I was female and carried around a purse or if I had hands the size of LeBron James I wouldn’t mind it as much.
I think that ten years from now when we look back we will say that the iPhone 6 was the last great evolution in the iPhone line. The form factor is perfect and the performance is more than good enough for everyday computing needs. Outside of a few nitpicks (battery life, internal storage size, ram size) I fail to see how the iPhone will get more than simply incrementally better in the future. That’s why the iPhone 6 is the perfect
GitHub is a website that has been around since 2008 and in the last few years has become a major part of the software development community. GitHub serves as a Git repository (a popular source control application) coupled with a web hosting service. I have been using GitHub to collaborate on private projects for several years now and in that time I have also used lots of GitHub hosted projects to help me build some fun and interesting websites and apps. I thought it was high time that I start giving back to the developer community and so I’ve begun the process of publishing example applications based on some of my work on GitHub.
For my first GitHub repository I have created the iPhone App TextToSpeech. TextToSpeech is a single view application that shows off some of the text to speech features that were first introduced in the iOS 7 SDK. You type in text in a textbox, select a voice type, speed, pitch and pause cutoff type and then play and stop playback of the text translated to voice. The app also registers itself to play speech when the app is running the background with full audio control capability. There are a number of bugs in the official Apple SDKs surrounding text to speech so this project includes several workarounds that may be useful to developers diving into this stuff for the first time. Here’s a quick look at the app:
Get the TextToSpeech project from GitHub