Jan 31
2012

What Does It Take To Make An iOS App

Link: What Does It Take To Make An iOS App

This is one of the greatest posts I’ve read in a while. If you develop apps for clients, you will relate very closely with this one. The client can never seem to grasp these concepts. So from now on, I’m including a link to this blog post in every proposal I send under the heading: required reading.


Jan 30
2012

Trend-setting Vs. Trend-following

What’s hot and what’s not? This question can be applied to almost any aspect of society. There are trends in everything we consume, read, buy, sell, eat and anything else you could possibly gather a sufficient sample size for. While some may unbelievably annoying (ex: any YouTube comment about taking an arrow to the knee), they cannot be ignored when building a business. Being oblivious to the trends in your field will lead your company down a slow and painful path of irrelevancy. Take RIM for example. Around the time the first iPhone launched in 2007, the Blackberry was the smartphone of choice for everyone from teens to enterprise users. They rose to the top on the heels of the text message revolution and solidified their spot with their lovable BBM software. Even after the iPhone was released and praised by anyone and everyone, it didn’t make the impact on RIM’s core audience. Was it the $599 price tag? The lack of a hardware keyboard? Who knows. However the iPhone did start to gain traction. After the the price drop from $599 to $299 and the concept of a touchscreen phone with no buttons started to sink in, people began to realize they could get used to something like this. Yet, RIM’s market position remained very strong. And that is why they eventually faltered.

Its at this point that they should have realized what it was exactly that people loved about the iPhone. However, with no disceranble impact on their market share, they took the “if its not broke, dont fix it” approach. I remember when I got my first gen iPhone. The thing that most people would comment on is “how amazing the screen looked” or the fact that you could view “real web pages.” Couple that with the fact the camera on it was far and above most cell phone cameras at the time (and light years ahead of anything found in a Blackberry) and you had a device that was not only functional, but a pleasure to use.

I have found that most people’s brand loyalty is pretty high. They are not so quick to drop one companies product for another if it is not absolutely necessary. In other words, if Company X comes out with a product slightly better then yours for about the same price, most consumers will stick with you in hopes of you keeping up with your competition. RIM chose to completely ignore that. Their answer to the iPhone…a Blackberry Curve with built-in wifi or GPS (some carriers got the wifi model and others got the GPS version), the same pixelated screen and the exact same 2 megapixel blurry image capture device (aka camera). No innovation. Minimal design changes to both the hardware and almost none to the software. Same $199 price tag. Trends ignored. Market share declines as users are eligible for upgrade and start to evaluate their choices side by side. The App Store debuts followed shortly after by release of the much faster, redesigned iPhone 3G. The final knockout blow is delivered.

No business model can afford to ignore trends. You can however choose to evaluate the trends and commit to going against the norm in an effort to start a trend of your own. Become the elusive trend-setter. A very high risk, high reward move that can only be pulled off by a select few (see: flat panel TV’s or skinny jeans). If you got the gusto and a ground breaking idea, you may be able to influence the market enough to create your own trend and be lucky enough to be the first one on the scene. At the same time, realize that people like what they like and there’s a good possibility you will fall flat on your face. It’s no mystery why every show on TV now is either a reality show or contains some form of the letters NCIS. This is what society likes right now. This is what the market is calling for. However, there’s always that exception. Once in while, a “Glee” will come along a start a new, awful trend of its own.

The point is, you must pick a side. Either listen to market and get in line. Give the people what they are asking for. Or, be one of the crazy ones and show the people what they want. Never sit stagnant in the middle. Your product will become boring, your brand will be labeled “played out” and your business will fall so far behind the pack, you’ll never catch up. There’s nothing wrong with listening to market feedback. It’s only wrong to ignore it and think your “good enough” will remain good enough forever. 


Jan 23
2012

Unsolicited Song Search Help

Yesterday, I was watching the NFL pre game show for the New York Giants vs. San Francisco 49ers game. They did a piece on Alex Smith and all the criticism hes taken on his way to becoming a half decent QB. During the special, they were playing a song I knew I, personally, had heard thousands of times but I couldn’t think of the name. I attempted to attack the problem with Google-fu but came up empty. When I woke up today, the song was still in my head. I started to go through my iTunes library and it came to me.

The Jezabels “A Little Piece”

http://www.youtube.com/watch?v=hPerIxIoDOE

I figured I wasn’t the only one in the world trying to find the title of the song so I thought I’d help out with a quick post. I tried to fill it with as many keywords as I could to help the search efforts.

The song is real dope. The whole album is great. If you were looking for it, here it is. Buy it!


Jan 21
2012

The Effects of the SOPA Blackout

If you have ever doubted the effectiveness of grassroots protest, you can put those doubts to rest once and for all. All of the blog posts, tweets, retweets, web site blackouts, emails to congressmen and petition signatures paid off. SOPA and PIPA have been shelved…for now. Exactly how effective was the internet’s uprising? Take a look at this infographic:


Nov 30
2011

Quote

He who has health, has hope, and he who has hope has everything
Arabian Proverb

Oct 16
2011

Siri Will Never Open To 3rd Party Devs

Whether you are an iOS developer or not, after playing with Siri for 5 minutes, you can’t help but think “this thing is going to be incredible once other apps can plug in to her power.” Great in theory, but not in practice. Although I think Siri will get features added (send tweet being the most obvious), I am pretty sure it will remain strictly under Apple’s control. Let me give you a couple scenarios that would allow Siri to truly access 3rd party apps and why they will probably never work.

First possibility. Apple releases an API and allows developers to register action phrases. For example: TweetBot waits patiently in iTunes Connect for the midnight opening of registrations and successfully grabs “send tweet”. Seems simple enough, right? Very wrong. First of all, this method is very dirty. Far from the Apple way of doing things. Not only will it bring out “phrase” squatters, but it will fill Siri’s database with all sorts of garbage. If someone registers “send tweet”, can I then go register “compose tweet” for my Twitter client? Can the virtual candy app register “send sweet” and have you end up sending your friend an on screen lollipop instead of mentioning hm in a tweet? Way too messy for Apple’s standards. I think this option is completely out of the question. 

Second possibility. Apple allows Siri’s integration with other apps to be handled by the user. For example: I enjoy using TwitterClientX. Apple allows me to go into Siri’s settings, type/record my command and link it to an action for TwitterClientX. I can say “check my mentions” and it will open TwitterClientX to my mentions tab. Again, so far so good. The problem presents itself in development. How does Siri (or Settings.app) know what actions are available to specific apps? What if its not possible for TwitterClientX to open directly to the mentions tab? Granted, the API could allow for a type of “action broadcasting” which would allow apps to make their actions known to Siri’s configuration. This way, the user could look at the available actions and pair their custom command with an action of their choice. This method seems much more plausible. There is a similar type of thing with custom URL schemes. Many apps have them, but hardly anyone knows about them due to a lack of a way to broadcast them. They allow for an app to perform a specific action on launch. Clicking fb://profile/123456 on your iPhone will open up the Facebook app and immediately show the profile for the user id 123456 (sorry if I just linked a bunch of people to your Facebook profile). These URL schemes have been around since iOS was called iPhoneOS. Here is a list of many more. 

Again, the second method seems much more likely then the first but not likely enough to come to fruition. All Siri request are sent to Apple’s servers. I do not know exactly why or the flow relating to how Siri’s speech recognition works, so I will not attempt to get into technical detail on that. Opening it up to virtually any app in the App Store will increase the load on the Siri servers exponentially with very little gain on Apple’s end. 

Which brings me to the final option and the only viable one in my opinion: Apple controls all who enter the Siri domain. They periodically pick and choose apps (in reality its more about the service behind the app) they deem worthy and assign them their own commands. You know Facebook and Twitter are coming in the near future. Siri already recognizes requests containing either of these, she just tells you she can’t help you with them. While this is not as fun or exciting, it will make added Siri features that much more enticing. Apple can convince jailbreakers to update to un-jailbreakable firmware by adding new actions to Siri. Better yet, they can begin to offer Siri add-ons in the App Store. Now that sounds much more like the Apple way. 

TL;DR: Siri will get expanded and become more amazing then she already is, but don’t hold your breath for an API. 


Oct 12
2011

Don’t Trust the iCloud

Its finally here. The revolution of mobile computing has arrived. iCloud is upon us. What does this mean for iDevice users?

  • Mail, contacts, calendars, reminders, bookmarks, notes, photos, and app data (saved games, logins, etc) will be synced across all of your devices
  • Find My iDevice is [easily] enabled
  • Your device can now backup to the cloud

When this feature was first announced, a collective sigh of relief was heard around the world. No more long, arduous backups through iTunes every time you plugged in your phone. Actually, with over the air updates in iOS 5, there’s really no need to ever plug your phone into a computer again! Not so fast…

Everyone’s level of dependence on their phone may vary, but mine is extremely high. If my contacts were to ever get lost in the mystical cloud, I would be lost to say the least. With that in mind, I can’t, in good conscience, fully trust my data to the all knowing iCloud. Nothing will ever take the place of a local backup for me. So far, I have been extremely impressed at how well Apple’s servers have handled all this. With the hype of iOS 5’s release (and judging by the download speeds), it seems like the whole world updated today. Handling the firmware downloads is not what impressed me. The fact that all those people synced apps, photos, videos and more to and from all their devices at the same time is what’s so amazing. There was a ton of data moving in and out of Apple’s servers today and they didn’t miss a beat. So under the heaviest load they will most likely be under, they performed masterfully. But still…

My local backups will definitely become much more infrequent (thankfully), but I can’t cut the cord completely. I suggest you don’t either. Think about it: backing up to your computer or an external hard drive will be 1-4 hours well spent when the cloud has a rainy day and swallows your contacts. And don’t forget to encrypt!


Oct 05
2011

Steve Jobs: Gone But Impossible To Forget

Let me start this little tribute post with full disclosure: I am probably considered an Apple fanboy by most people who know me. However, that is not actually the case. I’m a technology geek at heart and a huge proponent of forward thinking. Though those two worlds intersect often, they rarely meet cleanly. Executing perfect balance takes intelligence, a little OCD and a lot of passion. Steve Jobs was the perfectionist that the world had been waiting for. 

“For something this complicated, it’s really hard to design products by focus groups. A lot of times, people don’t know what they want until you show it to them.”

Apple products have become more then just electronics. They have become indispensable parts of our lives. Some people may be reading this on their Android phone saying to themselves “I don’t even own an Apple product. This shitty blog post is debunked already.” Well Android was created in the wake of the iPhone. It was not just Steve’s famous catch phrase, it truly was a “revolutionary device.” Before the iPhone was released in 2007, the majority of the population were using flip phones. The Motorola RAZR was the most popular phone on the market and texting was just starting to see signs of growth. Internet on on your cell phone was pretty much a couple lines of text that was only useful for checking sports scores and stock quotes. The iPhone changed everything as we once knew it without us even realizing it was changing. 

At the time of the iPhone’s launch, there was no App Store. There were no third party apps at all. Actually, “apps” as we know them today didn’t really exist. Whether Steve realized it then or had it planned all along (I’m thinking the latter), he released the iPhone SDK and soon after launched…the App Store. 


What I’m about to say is going to sound real fanboy-ish but I whole heartedly believe it to be true. Steve Jobs and the amazing engineers at Apple are responsible for the massive growth of Facebook, the success of Twitter and countless other startups. It is not the actual device itself that made this possible, it was Steve’s forward thinking. Putting the [real] internet in people’s pocket launched a revolution. It engaged people in social media. It made our lives easier. It changed the world. 

His reach spread far beyond the iPhone. Many of our earliest memories include us playing Oregon Trail at school on those trusty Macintosh’s. If you have ever had the joy of spinning in circles and mashing the space bar while you hunt for buffalo, you have Steve to thank for it. Some of the younger people may have missed the Oregon Trail days and even the time when Macs were the computer of choice in schools, but I don’t know anyone who hasn’t seen Toy Story. As the founder of Pixar, if you got to stare on in awe as Buzz and Woody came alive on screen for the first time, you got Steve to thank for one, too.

He never stopped trying to raise the bar. He was always shooting for the next revolutionary thing. You have to respect that in someone. In his passing, his words resonate now more than ever: “Stay hungry. Stay foolish.”  He taught us all to keep reaching. You may fail. You may fall short. None of that matters in the end. The only ones who fail are those who do not try. 

One of the most important things I learned from Steve Jobs was that people respect hard work. It shines through and can be seen from a mile away. It’s reflected in whatever it is you have that passion for. While the iPhone didn’t (and still doesn’t) have the most impressive specs, Steve showed the world that attention to detail and design trumps all. Whatever you do in life, do it right or don’t do it at all. Pour your heart and soul into what you love and people will see it. 

I will leave you with a final quote from Steve and some words to live by…

“You can’t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something – your gut, destiny, life, karma, whatever, because believing that the dots will connect down the road will give you the confidence to follow your heart, even when it leads you off the well worn path and that will make all the difference.”


R.I.P. Steve Jobs

1955-2011 


Aug 29
2011

WebOS: the failure we thought we loved

I was always the first one to say, “WebOS is a great mobile operating system and I hope it gains the traction it deserves.” Well, after picking up an HP Touchpad amidst the chaos of the fire sale, I finally realized why this device failed. When I first heard about HP throwing in the towel and giving up on the tablet, I figured the same thing everyone else did: the iPad killed its hopes and dreams. No tablet can truly compete in a market dominated by Apple. Turns out, that’s not necessarily true. While the Galaxy Tab’s numbers pale in comparison to the iPad’s, it has gained some traction in the market. Not to mention Amazon’s not yet released tablet is already creating a ton of buzz. With all that in mind, how did the HP’s Touchpad fail? It was designed to be bigger, better and more powerful than any other tablet in the market. And on paper, it seemed like it was going to be.

The Touchpad boasted a 1.2 Ghz dual core Snapdragon processor and a gigabyte of RAM. Compared to the iPad 2’s 1 Ghz dual core A5 processor and 512 MB of RAM (half that of both the Touchpad and the Galaxy Tab for those of you keeping score), its specs seemed quite impressive. 

Then why the hell is this thing so damn slow?!

The Touchpad failed because WebOS sucks. It is a horrible operating system. The “card” based multitasking is awesome. There is no taking away from that. However they rode the praise from that feature alone all the way to production. That alone is not enough to sell hardware.

WebOS uses a linux kernel but is driven by HTML5-like apps (think ChromeOS). Its entire existence is coded using and HTML and Palm/HP’s own framework called Enyo (formally was Mojo until they updated for WebOS 3.0).  If you have ever used a javascript framework of any kind (Ext, JQuery, etc), you will feel right at home with the code. While this “since everything is on the web so lets keep the code as close to the web as we can” concept works great in theory, its consistently awful in practice. Code like this is far too high level to perform like true native code. Touch events are slow to register, loading is dreadfully sluggish and the overall performance suffers greatly.

And the only thing to blame is the software. 

Specs can be rendered irrelevant by well designed software. The general public do not care about processor speed or benchmarks, they care about functionality and usability. We have seen this time and time with Apple products flying off the shelves. People were buying MacBook Pros with Core2Duo processors when every price comprable PC had Core i5/i7’s under the hood. Why would someone pay more for less? Because OS X closes the gap and even gives the more expensive, less powerful MacBook Pro the edge. When the iPhone 3G came out, it touted having 3G internet connectivity as its big feature. Other smartphones had 3G capabilities far before and double the specs. But again, iOS closed the gap. Same with the iPad and all 20 versions of the iPod. More expensive, less powerful and the most sought after devices. 

Software. Trumps. All.

It is what the users sees. In the average, everyday user’s eyes, iOS is the iPhone. Android is the [insert one of the countless handsets here]. There is no distinction between hardware and software. The devices themselves have merely become large screens. They are used only as a means of interacting with the software. Somewhere along the line, Palm/HP forgot this. They released a device with great promise running a software that we only thought we loved. The harsh reality is, WebOS and those cool multitasking cards are like the girl on the other side of the bar in the dimly lit club: good from far, but far from good. 


Jul 19
2011

Google+ iOS App Review

Update: According to Punit Soni, project manager of the Google+ mobile division, Apple somehow pushed one of their test versions by mistake. If you go to the apps home screen and click the gear icon in the top left, the version number should read 1.0.1.1809. If its anything other then that, you have the test version.

Update 2: After re-downloading the correct version, not many things have been fixed. However, I have noticed that the UI elements overlapping in a video post has been fixed. App seems to be a little bit snappier but very little improvement. Punit Soni has also acknowledged the fact that posts with several comments take quite a while to load and they are working on a fix. 

Note: I am writing this less then an hour after it went live in the App Store. Some of these problems may resolve themselves when the traffic dies down but I doubt it. This is Google. It can handle any amount of traffic you can throw at it. For all intensive purposes, I am calling this an iOS app and not an iPhone app, however in the app’s description page it makes no mention of being compatible with any iPod Touch at all. I do not own an iPod so I can’t comment on this aspect of it all but I’m sure it works just fine, at least on the newer models. 

As we have seen in the past with the other major social networks, a good mobile app is one of the most important factors in the service’s success. So finally, after a long (in internet time) wait, the Google+ app finally went live in the iTunes App Store. Being as happy as I am with the service, I was eager to check out the app to see what it could add to the user experience. 

So far, absolutely nothing. It actually degraded it a little bit.

When you open up the app, you have to click through 2 different “login” buttons before you are even given a login form. When you finally get there, you are greeted with the dreaded webview. I absolutely hate this in a mobile app. It may just be personal preference, but I can’t stand when developers use they’re standard mobile optimized login form and just throw it in a webview. Its awkward, looks horrible and seems to always have problems. 

Moving on. Once logged in you’re greeted with a home screen that leaves a lot to be desired. Think Facebook’s iOS app home screen with more minimalism and less creativity. From here you can access your stream, start or join a Huddle (for those wondering WTF a Huddle is: http://www.youtube.com/watch?v=iA22daAstNg), view your photos and photos from people in your circles, view your profile and edit your circles.

One thing I immediately noticed was the lack of a way to quickly write a post or upload a photo. You have to go through the Stream (which loads very slowly) and click the compose button in the top right. Or, if you want to “quickly” snap a photo and upload it, you can click the photos icon and then the camera/library buttons in the top right. This is a huge fail. With mobile apps, the user is constantly capturing moments that happening right now. That’s why Twitter has had its success. The ability to open the app and fire off a tweet and attach a photo within seconds is priceless. Slow loading dialogs and dragged out UX flows are not what makes a good mobile app. Save that for the web app. I am much more tolerant of these things on a computer where I have a keyboard and mouse. When it comes to mobile, I want to hit it and quit it.

The profile page is pretty straight forward. It sticks to the very familiar tab design we are used to seeing (although they’re much bigger then native iOS tabs) in most Twitter clients.

Now, on to the bad part. Loading peoples profiles is extremely slow (see note at the top of this post). When clicking on a users profile that has several posts with a a decent amount of comments, I got the spinning “loading wheel” for upwards of a minute. While that may not seem like a long time on paper, you know damn well that’s an eternity when waiting for something to load. There were several UI quirks I found when browsing my feed using the app. Here’s one example:

Certain elements overlapping other elements then disappearing completely once you start to scroll. And these are not some special post with a ton of info, its a basic post with a YouTube video attached. Basic functionality which is very well supported and deeply integrated into the service but the mobile app doesn’t know how to handle it? Big problem. [This problem has been fixed. See Update 2 at the top.]

More UI problems followed. Most seem to be such simple thing that we have come to expect. For example: there is absolutely no way to share a post using the app. I thought this was a core component of the service. Think of a Twitter client with no ability to retweet. Or how about not being able to +1 a post without clicking on the post and waiting for all the comments to load. There are 2 paths user can choose to go down when viewing a post: they can engage in the conversation by posting a comment or they simply say “I like this content however I have nothing to say or I just don’t have the time to say it” by +1’ing it. You should not force a user to jump through the comment hoop to +1 something. As much as I hate to keep jumping back to the comparison  Facebook’s app does it right. You click the “+” button and it gives you the option to “like” the post or comment on the post. Simple and sticks to the “hit it and quit it” mobile model. Not to mention it saves all kinds of overhead by not loading all those comments. What if Google+ really takes off? Its going to take 10 minutes to load a Kim Kardashian post with 100k comments. Nobody is going to want to interact with it and in turn, it will fail. 

All in all this app is pretty awful. Its not the worst thing I’ve ever used, but coming from a company like Google with virtually unlimited resources and a history of great [web] UI design, I expected much better. Maybe it was just rushed. Maybe they used the same dev team that made the Google Voice app. I’m not quite sure where they went wrong but I’m hoping to see a lot of improvements in version 1.1. Come on Google. Take a deep breath, refocus and get this thing right. Its essential to the success of Google+. I’m cheering for you. 


1 2 Next