Friday, May 18, 2012

App Review: Erase It

First and foremost I have to apologize about the lack of posts. Diablo 3 has consumed my soul for the past three days. I still managed to escape Tristram long enough to write an app review submitted by one of my readers.

                  Erase It




I didn't know what to expect with this app, but was pleasantly surprised.. The idea behind this game is the computer draws shapes on the screen, you have a target score and time limit. You must swipe the images off the screen. The quicker you do it the better the score. The higher the score the more stars you get. It's a very simple idea. I was a little disappointed with how the difficulty progressed, I could literally sit there and constantly swipe the screen and it would erase the images quick enough for a high score. I think the developer could really benefit from  directional swiping as the levels continue.  Also the brushes that are on the screen are very pixelated, high resolution versions of these would make this look much better. The animations are very polished, I'm really surprised the backgrounds don't change at all.

I think some game play difficulty changes and maybe the potential of leader boards this app would be 15 stars or better.




Here's how we rate it:

Implementation - Game play difficulty could use improvement, overall good.

User Interface - Graphics could use some attentions, otherwise working. I wanted to rate this 3 stars, but I have to give it 4 because of the animations are so nice.

Creativity - Not super creative, but still engaging. 

Value - I think the price for this app is higher than it should be. This should really be $.99.

Overall: 13  out of 20 

Monday, May 14, 2012

iOS Design Decisions - Part 3

So you've released your first app, everything is going great and ready to start a new project and close this iOS chapter in your life...

Hold on just a second, come back down to earth and lets think about this. You just released a piece of software that users are now installing, using enjoying, getting frustrated with and everything else you can imagine. These people are going to be emailing you, contacting your support email address or website.



Customer relations is a huge part of being successful in the iOS market, competition is fierce and you need every edge you can get. I make it a point to reply to anyone to contacts me through my website http://www.pescribe.com within 4 hours of receiving the email. Just a simple:

"Hello I received your request and I'll be processing it soon."
You'll soon get good ratings and reviews from users, suggestions will be coming in for features, changes. Implement these! if the user is willing to make suggestions they like your app enough to use it on a daily basis. Make these changes!

This will also show future buyers that your software is not just a one and done. You can also reward feature requests or bug reports will promo codes for your app or a different app you might have. Chances are they have a friend who wouldn't mind a copy.

Morale of the story here is listen to the community and users buying your app. They're the ones who use it, give them the features they want and you'll succeed.


Cheers,

Corey


Sunday, May 13, 2012

After 12 years... he finally returns.


Just finished the preloaded install, vent server is ready, microphone tested. With less than 48 hours to launch I feel like it's Christmas eve and I can't wait to wake up and open presents.

The one thing that really intrigues me about Diablo 3 is the new auction house system, for those who haven't heard about it let me explain.

Diablo 3 will support an in game auction house system similar to wow but with a new twist, you can sell the items you collect in game for Blizzard dollars or for real life currency ( in supported countries ). This really is a great move by Blizzard, this effectively removes the entire Chinese gold farming population from the community. No more seeing spam bots trying to sell you gold or in game items.

I did beta test Diablo 3 and was really happy with the game play, multi player. See you on Tuesday!


App Review: Save Easter




This is my first app review for an app called Save Easter. 

I'll be rating apps on 4 major categories with a star rating in each category 5 being the highest 1 being the lowest. The highest any app can rate will be 20 stars, 5 stars combined for each category.

The categories I will review the app with are as follows:

Implementation - Does the app work and function as advertised
User interface -  Is the interface intuitive and appealing
Creativity - Uniqueness, out of box thinking
Value - entertainment value, business value, are you getting your money's worth



Lets jump into the review:


First impressions are huge and the illustrations, icon and graphics are really top notch with this app, the artists did a fabulous job. Unfortunately game play and execution of Save Easter is really lacking. The idea behind this game is the evil bunny egg thief stole the eggs and you need to Save Easter by collecting them. The egg thief sits atop a platform and throws the eggs down and occasionally bombs. You need to avoid the bombs and collect the eggs. You get points for each egg, you miss enough eggs and you lose.

User Interface is again top notch, the graphics, menu screen, they did something similar to what Angry Birds did with showing some still images to imply a story line. This all works quite well, problems arise when you actually get into the game.

Implementation is lacking, within 30 seconds of playing the game I found a bug with the controls. The control idea is very simple you tap on the screen and the bunny moves left or right depending on which way you tap. Several times I'm tapping the opposite direction and the bunny kept moving the wrong direction. The backgrounds do change, but I haven't seen any sign of multiple levels or any other challenge. The longer you play the faster the evil bunny thief throws eggs and bombs.

This is really a primitive app covered up with a nice interface and professional graphics.



Here's how we rate it:

Implementation - Poorly done, clumsy controls

User Interface - Excellent menus, graphics, love the storyboard still images

Creativity - Primitive app, really nothing special going on here.

Value - This app should be free, it held my attention for about five minutes, I would not recommend buying this.

Overall: 7  out of 20 













Saturday, May 12, 2012

iOS Design Decisions - Part 2

Formula's and calculations

With Mobile Register I'm performing a static list of calculations that only differs by what the user inputs and the choices they make.

Again I'm looking at the grocery store checkout process for the basis of my app.

First the app will total the list of items

Item1     $3
Item2     $3
Item3     $4

3 + 3 + 4

Total  = $10

Tax Rate


Now that we have a total from the items the customer wants to buy we need to do a few checks.

Is there sales tax where the item is being sold?

Yes = Total * SalesTaxRate = NewTotal
No = Total

This is a good spot to mention something that new indie developers overlook. For the basic calculation we're performing it would look something like:

(total) * (salesTaxRate) = (salesTaxAmount)
10  * .05 = .50

What if the user inputs .5 instead of .05 for the sales tax rate?
The formula is now wrong and the customer is now being taxed $ 4.5 as opposed to $.45

You need checks and balances to determine how the values are being inputted and either correct the data or pop up a message indicating how the data needs to be entered.

The idea here is check if the number is already in  the proper decimal form, if it is leave it alone, if it's a whole number divide it by 100.


Discounts


Is a discount being offered?
No = process the total amount due
Yes = calculate the discount with the process below


At some point the user will want to offer a coupon or sale wide discount. You could get fairly complex here and only apply it to certain items in the cart, we opted to just apply a discount to the total amount. It simplifies the interface and the user can just specify the amount when totaling up the customer items.

We offer two forms of discounts % or $ amount.

When the user selects discount it opens a separate view and lets them choose % or $ and then the amount.

We'll talk about the dollar one first because it's fairly straight forward, they enter the amount they want and it's just subtracted from the subtotal of the cart.

Cart Total = 10.50
Discount = .50
Total Amount Due = $10.00


When working with percentage discounts it's similar to the tax rate, you allow the user to input the amount.  You then have your checks and balances to see  how they entered the discount rate and adjust it accordingly so you can process your discount.

Cart Total = 10.50
Discount = .05 %
Total Amount Due = $10.00.


Qty


When the user is adding items to the cart they might sell more than 1 of each product so we need to calculate a qty against the sale price of the item. We do this before we start the total amount due calculation.

Summary


This really is a simple example, but I hope it shows the underlying message here. You can't assume the user knows how to use your app. You need to account for all situations and handle user input accordingly, this will ensure your apps success when the user doesn't have to think about how they input values into your app, "it just works".

Cheers,

Corey













Friday, May 11, 2012

iOS App Reviews

I'm going to start doing three iOS app reviews per week, if it starts to take off I'm thinking I'll expand it to five. So if you're a iOS developer looking to get a unbiased review by a developer send the following to:

mobileappconcepts@gmail.com


  • iTunes link
  • Description of the app
  • Why you think I should review it
  • Promo Code(s), if you send multiple I'll do a giveaway contest.




Cheers,

Corey

iOS Design Decisions - Part 1

Being an independent developer is difficult and rewarding at the same time. While developing software you really have to step back and look at all aspects with a top down approach, how the user will interact with the application, the flow of how the application works, how often it will be used, how repetitive the flow is. During these steps you will have to make some critical design decisions. When designing an app I break these down into categories and address them separately, let me show you.

When working on my most recent app Mobile Register 2.0 I had no idea how to design a point of sale system, I've never worked in retail and really was quite clueless to how this stuff worked.

First thing was I broke down my problems into categories:
  • Cash register interface
  • Formula's and calculations
  • Data
  • Customer relations
Cash register interface

Rule #1 Simple is better

If people can't figure out how your app works there will be very little adoption and frustration. With that being said, I wanted Mobile Register to look and act like a cash register. One of the biggest hurdles you'll have to deal with when doing iOS development is the screen size 480x320 pixels doesn't leave you much room.

When you go to the grocery store and are checking out all the item's you've purchased show up on the screen in a list. I took this as my Que and really the best way to list items on the iPhone is with a table view. At the same time though I couldn't just use a full screen table view, I needed a set of controls on the screen that would:

Controls that affect the current sale:

  • Calculate Total
  • Add Tax Rate
  • Add Discount
  • Add a product
  • View existing products
  • Email receipt
I also wanted a set of controls that would allow the user to change settings and generate reports.
  • Settings Page
  • Reports Page
This is what I ended up with, the buttons across the top represent the controls we've talked about but they're condense. When pushed a UIAlertview will show up asking which control the user is looking for. It's essentially works like a sub menu.

+ button controls:
Add Product
Existing Product
Add Category

Gear button controls
Settings Page
Reports Page


At the bottom I'm displaying some data to the user as well as including the rest of my controls.
When the user clicks on the discount button it opens a new view and allows them to select a cash discount or percent discount.


This is just one example of intuitive ways to use the entire 480x320 pixels to design your interface. Think simple first, then think how will I make this function the way I want.

This is part one in a series of discussions I'll be going over for iOS Design Decisions.

Thanks for reading

Corey






Thursday, May 10, 2012

Importing frameworks, classes Xcode 4.3.1

First and foremost welcome to my blog, this is the first introductory post I'll be doing in a series of iOS tutorials.

In this tutorial I'll be touching on importing frameworks, classes, header files. This will be a short tutorial, the concepts here are pretty simple but can be frustrating if you're new to the iOS development world.

Let's get started!

Fire up xcode and create a new project:


I named my project "HelloWorld", use whatever naming convention you'd like.


If you open up your HelloWorldViewController.h you will see at the top it's importing:


When the import statement is incased in left and right arrow brackets "< >"
it indicates it's a system file or framework being imported.

If the import statement looks like this:


It's importing a file that was created within your project, this is indicated by the quotation marks "classname.h"

Now that we know the difference between the two types of imports lets show you how to import some of the great built in frameworks Apple has provided to you.

Select your project from the top of your file list, select the tab labeled "Build Phases", find the drop down labeled "Link Binary With Libraries"


This view will show you the current frameworks your application is already using, you can add additional ones by clicking on the + button.

Select the framework you want from the list and click the add button.
Now you just need to use the import statements we learned about earlier to bind to this framework in your class file.

In your HelloWorld.h use the import statement



Thanks for reading, our next installment will cover creating classes.

Cheers,

Corey