iBeacons

iBeacons are indoor proximity systems powered by low powered Bluetooth. Apple introduced iBeacons with the iOS 7 framework, so essentially any device running iOS 7 can serve as an iBeacon. iBeacons can provide improved user interaction in many different industries including retail, fashion, entertainment, home automation etc.  

Retail:

Consider a scenario where you prepare a shopping list of items at your home and as soon as you walk into the store your shopping list turns into a map indicating where to find the items. Even better it will automatically downloads coupons associated with the items in your shopping list.            

Museums: 

At present if you walk into a museum and wants to find anything about a particular exhibit then you have to put on those 80's headphones. With iBeacons technology you can simply walk up to the exhibit and your smart phone will reflect all the information about the exhibit. This provides a more seamless and pleasant experience for the users.

Unforgettable Items:

People always forget their valuables at their home or in their car. With iBeacons you can get notified whenever you walk away from your valuable. A great example would be your beloved Pet. You can make your pet wear an iBeacon and then whenever is left behind you will get a notification.  

OK! I am sold where do I get one? 

Before spending money on the iBeacon device which ranges from ($30 - $100) you can test out iBeacon using your Mac. Yes! your Mac can serve as an iBeacon device. For a Mac to act as an iBeacon make sure your Mac supports Bluetooth 4.0 technology. If you are unsure about your Mac compatibility with Bluetooth 4.0 then download the Mactracker app and see your Mac specifications.  

Once, you are 100% sure that your Mac can serve as an iBeacon you can use the MactsAsBeacon open source project to host your Mac as an iBeacon device. I have explained all these steps in my screencast Introduction to iBeacon

After you have tested the beacons you might be itching to get the real stuff. There are lots of companies that provide iBeacons but two of the popular ones are Estimote and Particle by KS Technologies. Apple is also working secretly on their own iBeacon device which might be an integral part of the home automation.  

I am really excited about iBeacons technology and I believe this industry is going to provide huge benefits to consumers as well as organizations.  

You are NOT Pardoned from Learning Objective-C!

Apple introduced a brand new language, Swift at the WWDC 2014 conference. Swift is a modern programming language which get its inspiration from Go, Ruby, Java and C# language. There is a lot of talk about completely ignoring Objective-C language and starting with Swift language. Although I can understand the excitement I disagree with the idea of completely dismissing Objective-C language at this time. 

Objective-C Open Source Base: 

Objective-C language has been utilized in lot of open source projects which are utilized in many iOS applications. Since, Swift is compatible with Objective-C you can always mix and match Objective-C code with Swift code. But if you want to extend and customize the open source implementation you must have Objective-C knowledge. 

Glaciers Move Slow: 

I live in Houston, TX where we still use horses and cows for our primary means of transportation. The last iOS project I updated was running iOS 4.0, and it was last year. This is just to show that large enterprise companies move extremely slow. Unless you are working on a green field application you are looking at at least 2-3 years before Swift makes a dent in the Houston market. 

Language is Easy, API is Hard: 

If you are familiar with one language you can quickly jump on to another language. Although Objective-C language has a learning curve but the real issue is learning the massive API accompanying the iOS framework. If you are an Objective-C developer then at most you will need a weekend to get familiar with the Swift programming language. 

In the end if you are in a high tech area like San Francisco, New York, Seattle etc then you will certainly benefit from utilizing Swift language in your latest project. If you are located at tech arctic circle then you will be maintaining a lot of Objective-C code before you will finally make a jump into the Swift language.

Turning Childhood Memories into Games

People have always asked me how I came up with an idea of an app! Almost always the answer is "My Childhood Memories". I played a lot of different kind of games when I was growing up in Pakistan and those games which were played physically are a true inspiration for making the next iOS games. If you are from South Asia you might be familiar with few of these street games: 

  1. Pitho Garam
  2. Kho Kho 
  3. Barf Pani 
  4. King King

The game I am working on right now is inspired from Pitho Garam. Pitho Garam is played by a team of two. Each team can have 5-6 members. The purpose of the game is to hit the tennis ball and collapse the rock tower and then make the tower again before any member of your team is hit with the tennis ball by other team member. The image below shows the game in action. 

Transient

Although the game I am building has slightly different concepts but it has been inspired from Pitho Garam game. I find it quite interesting that how easily these memories of our childhood can be carved into the modern iOS games. So, the next time you are looking for an idea try to take a journey back into your childhood and the games you played in the street.

I hope no one has patented the gameplay of Pitho Garam :) 

I am making a Documentary!

I always dreamed of ordering pizza from Pizza Hut while in Italy or eat delicious Taco Bell while in Mexico! Well my dream has come true because I will be visiting Cozumel, Mexico in the near future to make a documentary about effects of salt in sea water. 

My experience will be limited due to the confined walls of the hotel room where I will spend most of my time playing Atari games. The good news is that our team already have sponsors for this documentary and have raised over 10,000 YEN. That is freaking LOT OF MONEY!!!

Due to our big budget I have already preordered a nice looking and affordable paper shredder which I will be taking to Cozumel, Mexico. Following a wise advice that only bring absolute necessary things! 

The documentary will be over 15 hours long (take that Lords of the Rings) and will be available only on VHS tape. If you don't want to watch the complete 15 hours director's cut (for some lame reason) then you can watch the 4 hour trailer. 

PS: I just overheard some Hollywood directors talking about creating a documentary on worst documentaries and I think they mentioned our name! That is so freaking awesome! 

This is all for now! Stay tuned! 

Hex App

When I am designing my iOS applications I always get my inspirations from other beautiful applications. Apart from the slick animations and transition effects I am intrigued by the color combinations and shades used by these beautiful apps.

My process of extracting the hexadecimal color codes from these apps is as follows: 

  1.  Take a screenshot of the app screen using iPhone 
  2.  Email the screenshot to myself 
  3.  Open the screenshot in any photo editing app (Pixalmator
  4.  Use the dropper tool to find the hexadecimal color of the portions of the screenshot 

As, you can see this becomes a long, tiring process. It would be great if I can do everything using my iPhone? This necessity led the way towards the creation of "Hex App".

Hex App is an iPhone app which loads the app screenshots and allows the user to find the hexadecimal color code by just tapping on the color on the screen. This instantly eliminates all the unnecessary steps and increases productivity. 



Phreak Show

I was fortunate enough to be a guest on iPhreaks Show. For those not familiar with iPhreaks, it is a leading podcast for iOS development. I talked about my experience on the App Store and how I created an app that was featured by Apple on the app store. 

You can listen to the episode using the following link: 

The App Store with AzamSharp

How to Kill a Flappy Bird?

screen568x568.jpeg

Unless you have been living under a rock, you must have heard of Flappy Bird! Flappy Bird is a really simple retro style game developed by Dong Nguyen which took over the App Store by surprise. Flappy Bird reached the prestigious number 1 spot on both the Apple App Store as well as Google Play Store pulling in $50,000 a day. 

This story took a twist when the developer, Dong Nguyen, announced that he will remove the game from all the stores in 22 hours. The developer explained that he has gotten too much fame in too little time and it is going out of control. Further investigation revealed that he was getting a lot of death threats from the users of the game because of the insane difficulty of the game. 

Initially, the 22 hour take down notice was perceived as a marketing stunt but Dong kept his promise and took down the game. 

With Flappy Bird not being available on the App Store or Google Play, interested buyers went to Ebay to purchase iOS/Android devices which have Flappy Bird installed. The price of the Flappy Bird game which comes with an iPhone ranges from $90,000 - $100,000. According to latest reports Ebay has pulled down several of those listings.

Apart from the preinstalled Flappy Bird devices, many different Flappy Bird clones cropped up after its death to cash in on its success.  

"In the end it was not the green pipes that killed the Flappy Bird neither was it the fall to the ground but it was the people who killed it."

 

 

 

 

 

 

 

 

 

 

Daily5 iPhone App is Now Open Source

Transient

Daily5 is designed to focus on daily accomplishments! The one of a kind beautiful interface allows you to add at most five tasks for a given day. Why only five? Well, life is short and we want you to enjoy it life rather then thinking about incomplete chores.

 

 

 

Features:

- One of a kind user interface which is attracted by the laws of gravity
- Plan for five days ahead
- Travel through time for up to 5 days in the past

Usage:

- Double tap to toggle between complete and incomplete state
- Delete the text of the task to remove it

https://github.com/azamsharp/Daily5

Wearables

Wearables is an exciting new technology that will be the main focus of lot of a lot of tech companies in the near future. Google has already entered this market with the prototypes of Google Glass, Samsung rushed out Galaxy Gear, Pebble has already released consumer version of their smart watch and Apple might release iWatch sometime later this year. 

For me personally I see a huge potential in Google Glass technology. Ability to seamlessly consume information without looking at your wrist or juggling phone in your pocket is extremely intriguing. One of many great practical use is to retrieve information based on the user's geographical location. This means if I am standing in front of the Colosseum in Rome I will get all the details about the Colosseum right there in my Google Glass.

This image is taken from http://www.hdwallpapers.in/walls/the_colosseum_rome_italy-normal.jpg

This image is taken from http://www.hdwallpapers.in/walls/the_colosseum_rome_italy-normal.jpg

Google glass can be extremely handy when you are shopping. Just by scanning the bar code glass can figure out if you are getting the best deal or a better price is available at a different store or location. 

Heck even TSA members can wear glass and perform a face recognition and pull up data on the person. Not only this will speed up the process but will also work to make our airports much safer.

Of course, not everything is rainbows and unicorns in Google glass world. There are also downsides, driving is one of them. Although I live in Texas I am against talking on the while driving. I also admit that I do this all the time but this does not make it right. I do believe that more and more people will be driving while using their Google glass which will be extremely dangerous. Although the Google glass owners argue that it does not obstruct the driving view but keep in mind it only takes a less than a second distraction to cause an accident. 

The other concern revolves around socializing. It always breaks my heart to see young people sitting in a cafe with their mobile devices pulled out and ignoring each other. Google glass is going to amplify this problem since it will give an illusion that a person is actually looking and listening to you while in reality he/she was just reading the messages on his/her Facebook wall.  

Overall, I am excited about the possibilities and I am looking forward to the wearable devices and how they help us in our daily routine tasks.

Speak Up!

I have been in software development industry for quite some time now and one thing that has always amazed me is the lack of South Asian speakers in the tech industry. The south asian community forms the backbone of the Silicon Valley but during conferences it perceives itself as a spineless community.

When I attended Apple Tech Talks couple of years back I was quite amazed to see that 95% of the attendees were white. During the conference I felt like a himalayan snow leopard, rare and going extinct. Some might argue that south asian do not like to spend money on these things. That argument will fail quickly since most of these conferences are open to public at no cost. 

Take a look at the CocoaConf speakers. Take a look at 360iDev speakers. See the pattern! Not even a single south asian speaker... none.. nada.. ZERO. This reminds me of a RubyConf a while back which got cancelled due to all white speaker list. I contacted RubyConf organizers and told them the reason you don't have any non white speaker is because none of those people ever applied.

Some people might have a wrong idea that even if they apply they will not get selected but I disagree with them completely. Couple of years back I applied for 360iDev and I was selected and it was one of the best conference I ever attended. I have been speaking at Houston Tech Fest for almost 5 years now. I have given sessions at .NET user groups and iPhone user groups multiple times. 

Presently, I applied for mdevcon 2014 in Amsterdam. Due to the quantity and quality of sessions my chances of being selected are very low but it is still better than not applying at all.

My message to all the south asians is to stop being a 9-5 person and wake up and try to change the world. Don't give excuses of not having enough time. I have wife and two kids and I still find time to work on my side projects, create screencasts, play cricket, swim etc. Stop living in a cave and come out and explore. Let your voice be heard.. Speak up!!  

 

 

On Rating Dialogs

There has been a lot of ongoing discussion on the subject of rating dialogs in the apps. I believe John Grubber started this discussion in one of his post, later followed by Marco's post and others. This is an interesting discussion since it affects both sides of the equation, the consumer as well as the developer.

If ratings dialogs are handled irresponsibly then it creates a poor user experience. Consider the app which pops up ratings alert on every launch. These apps if lucky are placed in "Do not launch" folder or deleted at worst. The developer side of the story is quite different. In order to survive in the app store developer's needs to obtain reviews from customers. App store algorithm is based on placing the highly rated app on the top while the unrated apps gets lost in the crowd.

Although most of the developers might think that there is no workaround to this issue but they would be wrong. The key to the solution of this problem is "How you ask". As mentioned earlier most of the apps show the ratings alert prompt on every app launch with only two options "Yes" and "No". We need a third option "Never ask me again". This simple option will instantly improve the user experience. If you are thinking that you just lost that review then you are wrong. If the customer has not rated your app several times when you hijacked the app then it is more than likely that they are not going to rate the app ever. 

In my app "Vegetable Tree - Gardening Guide" I did not implement a rating dialog. Instead I allowed the user's to contact me directly using the "Contact Us" option. This created a relationship between myself and my customer. After fulfilling their request I requested them to review the app and they did. If you visit iTunes page for Vegetable Tree you will notice that most of the reviews are because of excellent customer service or as I call it personal attention. 

You might argue that I was able to give personal attention because my app has less users but that is not the case. In peak months I received 20-30 emails per week and I replied to every single of them. If your app is becoming huge then maybe you should invest in hiring representative who will answer the emails. 

One other option was to simply put the ratings option buried in the settings screen. This will result in a much cleaner experience for the user allowing them to rate the app when they desire. 

I do not think that Apple should ban these ratings dialog as the developer's paycheck is directly tied to the user's response. But I do believe that Apple should provide some API's where the ratings should be performed in a more fluent fashion from right within the app thus persisting the user experiencing. 

   

Don't Don’t Start a Company, Kid

This post is in reply to Aaron Hillegass post on "Don't Start a Company Kid".

Time is changing! I do not envision my one year old son sitting in front of the computer and writing code 8 hours a day. I do not see him driving to work because he can connect from anywhere, anytime.

We are already experiencing this revolution in the form of apps on the app store. Most of the popular apps are created by startups. Of course not everything is fine and dandy in the startup world since most of the startup will fail before they make a single dime.

The Hacker News post Aaron mentioned is a very different scenario. The post is about a mature adult with wife and kids. He took a chance and failed! This is quite different for young people because even if they fail, they have ample amount of time to get back on track.

My advice to young kids is go start a company OR join a startup. It can be in the form of app (Instagram for dogs). The things you will learn in startup in 2 months will be more valuable than your 4 year degree. If you fail then look for other alternatives.  

Aaron wrote "The point is, old companies are desperate for innovation and they have the resources to take your ideas to fruition."

My experience has been the complete opposite. Old, well established companies moves like snails and kill innovation. Most of the companies are already running systems in COBOL. I have worked for at least 5-6 fortune 100 companies and it takes them eternity to jump on the bandwagon.

"You miss 100% of the shots that you don't take"

Adjusting UIBarItemButton for UIToolbar in iOS 7

In iOS 7 the Navigation Bar extends up to the status bar. If you are using a background image for Navigation Bar then it should be 64 points in height instead of the classic 44 points. The first 20 points belongs to the status bar and the last 44 points belong to the Navigation Bar. 

You can also set the tint color of the navigation bar background by using the barTintColor property.  

[self.navigationController.navigationBar setBarTintColor:[UIColor blueColor]];

The result is the following: 

Screen Shot 2013-11-11 at 12.26.24 PM.png

Everything looks as you expected. Now, let's see how this will look like when you are using a Toolbar instead of the navigation bar. The screenshot below shows how you will adjust the toolbar using Storyboards. 

Screen Shot 2013-11-11 at 12.30.02 PM.png

The result is shown below:  

Screen Shot 2013-11-11 at 12.31.57 PM.png

The bar item buttons are too close to the carrier label as well as the battery label. In other words they are not adjusted properly. The main reason for this issue is that the toolbar is positioned at origin (0,0) and it is only 44 points heigh. In order to accommodate for the status bar the toolbar needs to be placed at origin (0,20) as shown below:  

Screen Shot 2013-11-11 at 12.36.28 PM.png

Run the application and you will notice the difference: 

Screen Shot 2013-11-11 at 12.37.55 PM.png

Well, that kind of solves the problem but now out toolbar does not extends up to the status bar which looks weird. In order to fix this problem you will need to return UIBarPositionTopAttached for the barForPosition property of the UIBarPositioningDelegate. The UIToolbar already conforms to the UIBarPositioningDelegate delegate and returns UIBarPositionBottom. 

-(UIBarPosition) positionForBar:(id)bar { return UIBarPositionTopAttached; }

Now if you run the application you will notice that the toolbar extends all the way to the status bar.  

Screen Shot 2013-11-11 at 12.50.25 PM.png

Oops Apple Forgot to Enable Delete All Photos in iOS 7

I am about to leave on a short trip and I wanted to just carry my iPhone to take pictures. Being a parent of two kids my iPhone contained thousands of images of my children. I quickly backed up all the images using Google Picasso so I can free up my space. 

In iOS 6 if you go to Settings => Usage => Photos and Camera you can slide the Camera Roll row and delete all the images in the photo roll. Unfortunately, in iOS 7 this feature does not work at all. When you slide on the Camera Roll row nothing happens.  

The other option was to go into the Photos app and then delete the albums. Below you can see the screenshot.  

photo 1.PNG

You can clearly see that there is an empty space on the left hand side where you typically see checkboxes which can be selected to delete the items. Unfortunately, we see nothing but empty space.  

And to rub a little salt on my cut you can go to Settings and remove the podcasts right from the Usages options. 

photo.PNG

Recognizing iOS 7 Device on XCode 4.5

At my work I am using Xcode 4.5 (Don't ask me why). The iPhone and iPads I am using for testing runs iOS 7. When I plug in the device to run the app on the device it is not being recognized by Xcode since the latest version of SDK on Xcode 4.5 is iOS 6. In other words there is no way to install the app targeted to iOS 6 on a device running iOS 7 using Xcode 4.5.  

But there is!!  

Plug your device into a laptop that has Xcode 5. It will recognize the device and show the name of the device in the Xcode device selector. Once, all the device information has been downloaded you can unplug the device and connect it to the Mac running Xcode 4.5. Now that computer will also recognize the device and you can install your iOS 6 app on the device running iOS 7.  

Please note that although you can install the app you will not be able to debug the app!! 

Speaking at Houston iPhone Meetup Nov 9 2013

I am humbled to be speaking at the Houston iPhone Meetup on November 9 2013. I will be talking about my 3 year experience on the app store. The description of the session is as follows:   

In this session Mohammad Azam will take you to a personal journey through the app store. Azam will talk about how to challenge yourself to finish a product. The session explains how to get ideas and spark creativity for your new app. Azam will also explain the decision that went into his apps and what worked well and what failed miserably.

The session will also cover the idea of treating app features like mutual funds and saying NO more than saying YES. Azam will unravel the mysteries of app pricing and explain how to price your app correctly. Azam will also explain that how customer service will place you apart from your competitors and get you higher ratings on the app store.

In the end the 3 year app store journey in compressed into an hour of knowledge and experiences.

http://www.meetup.com/Houston-iPhone-Developers-Meetup/events/146819242/