4 Problems with the Current App Store Models

May 23rd, 2011 § 1 comment § permalink

App Store IconThe Mac, iOS, Android, and Amazon application stores and other places like it have become the go-to destination for many device owners to find and purchase new applications for their devices. But, they are also drawing large crowds of developers. According to Apple, there are over 350,000 applications; and, that number is growing almost daily.

However, the app store model isn’t perfect. I have always come from the persuasion that you need to step back and look at the past in order to gain appreciation and inspiration for future endeavors. Because more and more consumers are using these app store as the primary point of sale and delivery of software, I believe that we should take a step back and look at the app store model in an overall picture to see what things need to be changed going forward. No app store is perfect, and I highly doubt that it ever will be; but, I believe that there are 4 things that, if implemented, would make the app store a better concept in general. Two of the problems are from a developer’s point of view, and the other two are from the consumer’s point of view.

1. Developers and App Store Listings

At the core of any app store is the developers. Without them, you wouldn’t have any applications available for your platform. They are the “bread and butter” of devices. Imagine an iPad without any apps. Not so “magical,” huh?

I think Apple has implemented a great system for developers to get their applications out to the public with a great distribution system. They have also allowed developers to get their applications out to the press, free of charge, with promotional codes that can be downloaded and sent out to reviewer. However, there are things that Apple and others could do better.

First, I would like to see all development platforms provide developers with the ability to download promotional codes. Currently, Google’s App Market doesn’t support this, and I’m sure there are other app stores that don’t.

Second, developers should have the ability to customize their app store listings a little more. Perhaps the ability to use their company logo and colors, or the ability to have an email contact or support form that can be filled out. Before the app stores, customers interacted directly with the developer’s website. Since then, the app store has abstracted the developer, making them almost “the man behind the curtain,” so to speak, when it comes to interacting with customers. No longer do we get to e-mail a customer when they purchase a piece of software, to ask them how they are liking it. We usually only hear from a customer when they are having problems with the application.

2. Comments and Ratings

Comments and ratings are a tough situation. In part, they are a good thing because it allows a customer to express their opinion about the software they just purchased; however, I have seen many customers complain about a feature of the product not working when they just didn’t read the instructions. This bad review can then turn into tanking sales, and suddenly an application you’ve been working months on ceases to turn a profitable number of sales.

Another problem with ratings and comments is that usually the only time a user actually posts one is when they are having problems with the application. Because the app store listings don’t foster a relationship between the developer and the customer, and because most listings on app stores don’t feature contact information for the developer’s support channel, customers feel they should just post their problem into the comments and give the app a bad rating in hopes that the developer will pay attention to the issue.

Here’s the problem, however: Developer’s don’t have access to the comments, or the e-mail addresses of those users posting their problems.

This is why I think app stores should implement some type of CRM (Customer Relationship Management) software so that when a user is having a problem with your application, you will be able to respond to them in the comments to let them (and others) know what is going on and how to solve the issue. Perhaps these messages could be posted publicly, or (if the customer requests), privately.

Regardless, however, developers should have the right to respond to customer’s comments. Especially since we are giving 30% of our revenue (depending on the app store) to the app store, and surely, all of that can’t be going to just hosting of the downloads and credit card transactions.

3. Upgrades

Another thing that really annoys me about the app store is the inability to issue (as a developer) or get discounted upgrades (as a customer) for future versions of the software. Many developers allow discounted upgrades (say, 50% off) for repeat customers upgrading to the newest version (i.e. from version 1.0 to version 2.0) of the software.

To make matters worse, often times when an X.0 upgrade is released for a piece software, the developer takes down the older version, most of time forcing people to upgrade to the new version at regular price. This, of course, leads us to the last problem with the current app store model: Backups.

4. Backups

How many of you have been in a similar situation as this: You purchase an app from the app store, and after a year, the developer decided to upgrade to a new 2.0 release. Because the developer no longer wishes to keep distributing the old 1.0 release, they delete from the app store completely. But, as a buyer of the old 1.0 release, you no longer have access to download the 1.0 release should you wish to in the future. Of course, you can still install the software in the future using a backup stored on your computer, but that is your only lifeline.

My wish is that from a consumer standpoint, Apple and Google would finally see that if you purchase a piece of software it should remain available to you, even if the developer decides to take it down in the future. I further think that even if the app store management decides to take down the software at their own discretion, they should either refund you or allow purchasers to keep downloading the software. It’s not fair to take down the software without any warning, not refund the customer, and then not allow access to the purchase.

What are your thoughts regarding this situation? I think there are other changes that need to be made, but these are just a few big ones. Join the conversation on Twitter or in the comments below. I’m looking forward to your thoughts and comments.

Protecting Yourself On Public Wi-Fi

May 18th, 2010 § 0 comments § permalink

Something that a lot of people don’t pay much attention to is wireless access points. Many people will connect to any wireless access point and begin checking their email, bank accounts, and go to other online services without giving much thought to their wireless surroundings.

But, here’s the thing … no matter if you’re connected to a 100% trusted wireless network, your information and security could be at risk no matter the operating system you’re using: Windows, Mac, Linux, it doesn’t matter.

The insecurity comes from the way a network operates. Generally, wireless networks work in a logical BUS topology, which means that any data response is sent to all computers on the network, but only the computer the data was addressed to will accept it and other computers will disregard the data.

If you have some specially designed software on your computer, like Wireshark, then you can “sniff” the packets (small chopped up bits of data) being sent and received from other computers on the network you’re connected to. By doing this, you can see in plain sight any data (passwords, bank account numbers, usernames, messages, etc.) that is being sent as plain text. Most websites generally send sensitive account information in this fashion, too. This will work on both wired and wireless connections, mind you.

Take the screenshot below. This is from my home wireless network that I was connected to. It shows where I was attempting to login to a website using my username and password. Notice how both the username and passwords were sent unsecurely as plain text. If anyone was connected to the network and had an application like Wireshark up and running, they could capture those packets and retrieve my username and password all without me ever noticing.

This is something very important to remember when connecting to wireless networks. What you may think of as a secured access point may be the way in which your important information is stolen unsupectingly.

Protecting yourself
There are ways to protect yourself from this method of data theft, however.

Generally, banks and other websites that maintain personal data use SSL security. This means that data sent or received to your computer and the server you’re connected to is encrypted before being sent. If you’ve ever noticed a small lock in your web browser or noticed that the protocol in the address bar changed from “http://” to “https://” then you’re most likely secured via encryption.

What does HTTP or HTTPS mean?

HTTP stands for Hyper Text Transfer Protocol and it’s the method by which web pages are requested and delivered to your web browser. HTTPS stands for Hyper Text Transfer Protocol Secure and it’s a secure version of the standard HTTP protocol that allows SSL security certificates and other security layers between you and the server you’re connected to.

In addition to checking to make sure you’re connected to a secure website before typing and submitting personal information, you also have a few other options. You could set up a VPN (virtual private network) on a computer at your home that you could connect through to provide a secure gateway for accessing websites while on-the-go. You could also invest in a 3G/4G wireless card for your notebook computer. This would allow you to have a direct connection to an wireless Internet provider (via a more secure cell tower connection). Plans can be pricey, however, which is why some use a VPN connection.

This is one of the reasons I went for the 3G version of the iPad. I’m trying to free myself from using public Wi-Fi where I am only as secure as the content I access and my computer security is only as safe as the people accessing the network.

The problem with this security issue is that anyone and any network is susceptible to the problems. Even if the network features WEP or WPA security measures. If someone can connect to it and open an application like Wireshark, they can begin gathering sensitive information.

What is WEP and WPA Security?

WEP stands for Wired Equivalent Privacy and is an older, less secure way to encrypt a wireless network. WPA stands for Wi-Fi Protected Access and is a newer and more secure way to encrypt a network. Generally, it is better to stray away from WEP encryption because tools exist that can allow anyone to penetrate the network and gain access to your wireless connection.

I wanted to post this because I see a lot of people who nonchalantly connect to public wireless networks and begin surfing to websites that contain sensitive data about that person. I hope that you were able to understand my concern and the reason that I wanted to let you know about this security issue.

If you have any questions, feel free to post a comment below or email me. Also, if you have a computer topic that you’d like me to talk about, feel free to send me an email and I will see what I can do.

Documenting Your Programs

March 23rd, 2010 § 0 comments § permalink

code_commenting_101.jpgI’ve been programming for several years now and every time I start to write a line of code, I think about the documentation that I’ll need to write for either people who could read my code later (comments in code) or the users of my program (user documentation). I’ve seen several programmers both in academia and full-time developers that don’t comment their code. I firmly believe in commenting code for several reasons, but I just wanted to point out a couple reasons as well as some methods that I use in my own code commenting.

Reasons

Commenting for the future
If you don’t comment your code for any other reason, please, please, please, do it for this reason. If you’re part of a large project where you’re constantly updating your code, then this might not be as big of a problem, but if you rarely update your code, you definitely need a record of what things do.

Making sure you comment what things do, what needs to be updated (or fixed), etc. makes life a whole lot easier when you come back to your code down the road. Chances are you’ll be writing so much code that you won’t remember exactly what certain functions do or what a line of code might do.

Another reason to always document code is that you might not be the one working on the same code down the road. Especially if you’re involved in a large project or with a large company. And let’s hope it’s because you were promoted (and not fired for not documenting code ;-) ).

Comment the head of documents
I always comment the head of every document in my program (program files, header files, etc.). I use it as a record of the filename, who initially programmed that particular document, the date of initial programming, and a description of what that file does.

In addition to adding the regular doldrum of information at the head of the document, you could also add licensing information such as copyrights, EULA, etc.


Add a log file at the head of the document
Adding a log file at the beginning of your program files can generally be a good place to store information such as a revision log or changes you’d like to make down the road.

Comment Functions and Class Methods
When you comment functions and class methods you’re making a record of what that particular piece of code does. As mentioned by some of the reasons above, this is a good idea if you’re going to be coming back to your code down the road. Plus, if you have multiple people working on a project, this lets others instantly see what your function or method is doing. Look below to see how I comment functions and methods.

Commenting Methods


Commenting the head of a document

Below is an example of how I document all of the headings of my program files.

/*
Filename: MyProgram.java
Author: Cory Bohon
Date: Mar-23-2010
Description: This is the most awesome program you'll find anywhere. Srsly.

Version Log:
1.0.1 - Fixed bugs, added awesomeness
1.0 - Initial release to awesomize the world
0.1 - Beta version of awesomeness -- ADD MORE AWESOMENESS
*/

Commenting Functions and Methods

I like to use the Javadoc method of commenting functions and class methods. I even use it for some C++ code that I do, just simply because I think it’s a really efficient way to document functions and methods. Below is an example of this commenting method.

/**
* Returns the my_name variable
* @param none
* @return a string type with the name of the user
*/
string MyProgram::get_name(void)
{
return my_name;
}

I hope this post has helped some people see why it’s important to document your code. If you’re already documenting your code properly, I hope that you have learned some tips from the ways I’m documenting my code. And if you have any tips for me or some tips that I have missed, please leave a comment, or send me a message on Twitter.

Thoughts About the iPad and App Development

January 30th, 2010 § 3 comments § permalink

ipad_2up_hometimes.jpg

If you live on planet earth, then you know Apple announced the release of its newest invention, the iPad this week. A lot of people have been speculating about this device, wondering what market it’s for and what all it might be capable of. Many people have mixed feelings about whether or not they will purchase one, also. In this post, I want to let you know why I chose to get one and also what the iPad means to the developer community.

The iPad has been compared to a “giant iPhone or iPod touch,” but I simply don’t think that’s what this device is. Sure, the device is running iPhone OS 3.2, but the OS and software has so many more possibilities than the iPhone or iPod touch. I’d imagine Apple chose this operating system over Mac OS X because it’s extremely touch-friendly and because probably half the population of the world has seen and/or used the iPhone OS. If people already know how to use a piece of software or hardware, the chances they’ll purchase and enjoy it is more likely because they can relate to it.

But the OS is just one small part of the device. The third-party software that can be written for the device is generally about the same as the software that can be written for Mac OS X. There’s a few differences, but for the most part high-quality software can be written for this device. Take Apple’s own iWork for the iPad. They are taking a piece of software from the Mac that’s pretty hefty and porting it to a device that supports Multi-touch gestures for manipulating text, images, slides, and spreadsheets. To me, that’s the amazing part of this device. My hope is that developers take heed to the wonderful iPad SDK Apple has released to develop desktop-class applications that can take full advantage to the Apple designed processor, and touch screen.

People have been badgering the device because there’s no Adobe Flash playback, but I’m not so sure that’s a problem. Flash has been around for a long time and has been adopted by a lot of websites, but that doesn’t mean it’s the best use of the technology. Microsoft has also came out with their own sort of technology called Silverlight. These technologies, however, often take up lots of memory and CPU. And for what? Video playback? Games? All of these tasks can already be done with the iPad if developers would take a look at creating apps. Not a fan of apps? Apple is simply addressing the future. Because of the iPhone and lack of flash support, Apple has forced developers to take a look at other technologies to accomplish these simplistic tasks. Adobe is just angry because Apple is slowly taking away their market, but the truth is that flash is on its way out (or at least should be). Advanced CSS and HTML techniques give web developers the ability to add video playback and game design right on a webpage without using the resource hogging flash that’s common today. YouTube has already adopted many of these techniques and it’s simply beautiful to see in action.

Too many people have compared the iPad to the Amazon Kindle and various netbooks. The iPad is in a completely different class than those devices, and the iPad will probably take a good bit of market share from those and other devices like it. Apple has created a device that can do eBooks (or iBooks as they’re calling them), it can do HD video from either iTunes or YouTube (another game changer for parents who despise portable DVD players and the ever-so-scratchable discs), and it can do productivity with the iWork suite (I’d imagine it’s only time before Microsoft joins in, please?). Sure it doesn’t have an e-Ink display, but so what? Many people read and have no problems reading from an LCD monitor everyday. Plus, you don’t need a book light like you need to have to read in the dark with e-Ink devices. Plus, this device is in full color and has a 9.7″ screen that will be amazing for displaying textbooks in PDF or ePub format.

Basically, I’m just a little disappointed that people are already bashing this device when it (1) hasn’t been released yet, and (2) hasn’t been used by anyone except people at the media event last week. The iPad has a lot of potential if only people would look at that. This device is truly a game changer. The Amazon Kindle DX is only a few dollars less than the basic iPad that costs $499, a few dollars separates these two devices that are completely different. Except, the iPad can do all that the Kindle has to offer. The Kindle, however, cannot touch what the iPad has to offer.

Getting into the iPhone Dev program

March 8th, 2009 § 0 comments § permalink

App_Store_Logo.jpgI was looking through my RSS feeds this morning and stumbled across a Slashdot article that talks about the current situation regarding the iPhone Developer program through Apple.

The article mentions that the current waiting line to join the developer program has stretched from waiting weeks to waiting for a few months. Having recently joined the developer program in December, I can say that it definitely has started taking longer to join the program. I purchased the $99 developer access on December 7, 2009, and had my first applications in the waiting line a week later; however, it wasn’t until the third week in January that my contract was approved and my apps went into the store. I think this is a real problem.

Also mentioned in the Slashdot article is the Android phone. While I believe Apple has beaten the Android OS in almost every regard, the iPhone falls short when comparing it to Google’s open development standards. I would love nothing more than to see Apple fully open the device up to the developers who are wanting to create applications. Sure, require the digital signing in order for the apps to run, but don’t limit the developer’s creativity with the SDK restrictions! There are tons of good applications that will probably never see the light of day on the App Store because of Apple’s choking standards.

I believe that if Apple would lighten up a little bit with their SDK restrictions that developers could really make this device shine (even more than it already does). Google really has a good thing going for them. Yes, they have a marketplace, but they also allow developers the ability to give downloads from their own site that can be installed (legally) on the device. I think this is a far better system than what Apple has proposed, and just might “win” in the end. After all, why should Apple limit their users? It’s 2009, not 1999.

Where Am I?

You are currently browsing the Rants category at Cory Bohon.

  • About

    Cory's picture
    Hi, my name is Cory Bohon. I am a tech blogger at Mac|Life, Mac/iPhone developer, lover of all things technology, and photographer. This is my personal blog, where you can find what I am currently ranting about.

    Any opinions expressed on this site are mine and not necessarily shared by my employer or educational institution.
  • Latest Tweets

    • Categories

    • Archives

    • Images

      CloudsWindy and rainy weatherSunset  Sushi"The George" at USC Upstate"The George" at USC Upstate