Posted by AVAI Mobile Developer on Fri, Apr 02, 2010 @ 10:23 AM
If you develop on the iPhone long enough, you'll eventually run into this error.
You decide to run your app on your device and for some reason it doesn't work. It just errors out and says "Error launching remote program: security policy error". You clean your project and even possibly quit Xcode, but the same error appears again and again.
What gives?
Simply put, you have an expired provisioning profile on your device. It doesn't really matter which profile. As long as there is one profile that is expired, you won't be able to run the app.
The solution is to remove the expired profile from Xcode. Go to "Organizer" and remove it from the attached device and also from the profile list.
Everything should work again just like before.
Posted by AVAI Mobile Developer on Tue, Feb 16, 2010 @ 10:43 AM
AVAI recently partnered with Office Harmony to create the free Stress Check app and the $1.99 Office Harmony app. Take a look at what they had to say when we interviewed them.
1. What does your app do?
The Stress Check app was originally a 20 question stress test that I designed using qualitative research methods. My goal was to design a quick way to measure a person's level of work stress specifically. In designing the test, I created scales based on how the questions grouped together. Four scales emerged: interpersonal, physiological, control, and situational. Therefore, upon completion of the test, all users receive an overall stress score as well as their specific stress domain scores along the 4 scales. This way a user knows the intensity of their stress as well as how it manifests (i.e. through the body, in social situations, etc). Stress Check has since grown to include stress tools via in app purchases (IAPs). Therefore, users can now take the test as well as access stress management tools- all from one app.
2. How did you come up with the idea for the app?
My company, aiir Consulting, LLC, engages in executive coaching, leadership development, and stress management skills training. We had strong convictions about the app store early on and felt that a successful company in the 21st century needs to connect to its customer using a multi-method approach. Our goal is to have our customer work with us in person and takes us home in their pocket. For non-clients users, we're delighted in helping thousands of people become less stressed.
3. Why did you choose to do an iPhone app?
Interestingly, most of our customers are blackberry users. Only problem here is that the blackberry user is more of a personality type than technology choice. Or perhaps the two inform each other. In short, I don't know a blackberry user who has looked into their app store. Android is a young market and should we broaden our platform exposure, this is where we'd be looking.
4. What has been the response to the app?
When stress check was for sale, we were getting a few takers here and there. Overall, sales were somewhat disappointing. When we made it free, users began downloading it like bananas. In several weeks it rose to the top 5 slot in the medical free app section. We now have over 100,000 apps downloaded around the world and are looking for creative ways to begin monetization.
5. How are you marketing and promoting the app? What is working and what isn't?
Our marketing has been pretty hands off thus far. We do plan on sending our app to popular reviewers to review as well as place a gorgeous business card in select locations that cater to folks who appreciate stress reduction. We also plan on utilizing advertising on social networking sites. We have yet found a way to use twitter successfully, this is a disappointment and we plan to investigate a better strategy to build our twitter network.
6. What advice would you offer someone thinking about doing an app?
First and foremost, do your research on competition. The app store is very saturated. For every idea you have, there are probably 10 or more comparable apps. If you still feel your app can offer a competitive advantage, become very clear about what this is and do not lose the focus. This is going to be what sells your app. Right now there are at least several other stress tests in the app store. None give you more than an overall score. My goal with stress check was to drive deeper in providing more meaningful insight into stress levels. Furthermore, I distinguished my test by focusing on the specific area of "work stress". Customers seem to have also liked this idea.
Second, be prepared to be flexible. I actually intended stress check to be an 'added value' proposition for the app Office Harmony (my other app for stress management). I decided to isolate stress check and make it free to bring lead generation to Office Harmony. I never expected Stress Check to perform so much better than Office Harmony. As a result of how the market perceived our apps, I've had to shift my strategy flexibly to begin focusing more on Stress Check.
7. What does the future hold for you?
We're looking forward to bolstering the value of Stress Check through further updates. We like the stress reduction space, despite its increasing saturation. Should our sales strategy continue to be successful, we'll look into offering additional content and broadening to further mobile platforms. We think the app store is do for some consolidation. It will be really interesting to see if developers start forming strategic partnerships and/or alliances. I wouldn't be surprised if we start seeing M & A activity given how many synergies are likely out there. This is a space in our business development we're increasingly interested in.
Posted by AVAI Mobile Developer on Mon, Jan 04, 2010 @ 11:02 AM
According to the Apple iPhone development center's News and Announcements section, iTunes connect will be unavailable from December 23rd to December 28th. It will be available again on December 29th. This is big news for anyone hoping to submit a new app or an update over the holiday season. You can also subscribe to the News and Announcements RSS feed now so you can stay up to the minute on all things iPhone. Subcribe now.
Now for the coder tip of the week. After writing numerous apps for the iPhone, I can honestly say I'm getting a little tired of the black and blue navigation bars. Recently, we've been trying to add a little pizzazz to our apps by modifying the appearance of the navigation bar. One way is to modify the tint color property. But that's iPhone programming 101, easy. Another way that I've recently discovered is to overwrite the UINavigationBar's drawRect method. Add this code to your AppDelegate and the Navigation Bar will display your custom image throughout your app.

Using an image like this
will make the navigation bar look something like this:

Be careful though because this will make all navigation bars look like this, even the movie player's navigation bar.
Posted by Eric Mills on Sun, Nov 29, 2009 @ 10:44 PM
AVAI partnered with Botany Buddy and the Botany Buddy app was release two months ago. If you are thinking of developing an app, check out what these guys have to say about the experience.
What does your app do?
As an app, Botany Buddy is essentially an interactive reference book for identifying trees and shrubs or selecting them for use in your garden or landscape. It also allows users to compile the information into collections, add photos of their own, and share it with other app users. Each plant has 25 fields of information that are coded to an advanced search engine that allows users to search and browse the information through a number of different filters. What our app has done for Botany Buddy, is allowed us to launch and build our larger brand before it goes live on the internet. It has also provided us with valuable feedback about where we are going from our users before we take it to the broader market and next level. Most importantly, the app has allowed us to put what will be a predominately internet (vs. native app) based platform and brand into people’s pocket and become a household name.
How did you come up with the idea for the app?
Oddly enough the idea already existed in something that I had built two years earlier for a consulting company I owned. Having been in the landscape profession for over twenty-five years, I have grown up with the traditional reference sources as well as the new technologies as they emerged, and having this type of reference “tool” in your pocket is something I have always dreamed of. I was already providing similar technologies via the internet with a hybrid of several different software and communication tools and this consolidation was a logical next step. As a whole the horticulture industry has always lagged electronically and once I researched it I was shocked at the time we started this there weren’t any really good gardening apps out there already.
Why did you choose to do an iPhone app?
Opportunity knocked and all the stars aligned. The iPhone opportunity was the first to arise, and all the partners to make it happen saw the potential so we made it happen. Once we started we realized that we were onto something far greater than “an app for that”, but the app gave us a clear, reachable attainable goal that we could all get our hands around to provide a solid starting point for everything else we wanted to do. In the future, I will be more apt to use apps to extend rather than launch a brand. In the meantime, it has provided an ideal testing ground and launching point for where we are going with everything else.
There has been much written about Apple’s exclusive contract with AT&T and how it has limited their market share. After having this experience I am convinced this was intentional with Apple in that it limited the damage that could be done to their reputation for customer satisfaction while they perfected their technology. It also tied them to someone that people already didn’t like so Apple could always be the good guy. Being in the app store has been somewhat like that for us. We know from our user feedback, followers and inquiries that currently only about 10% of the people that want to buy Botany Buddy’s services have an iPhone. Being able to perfect what we are doing in the safety of the app store will only benefit us when suddenly we are available to ten times as many people. The iPhone and Touch are definitely the best devices for a mobile internet experience, but AT&T’s limitations have protected us and bought us time that we needed to get everything just right just like it has for Apple. In the end, the product will be even better for Apple users because it is still the best device.
What has been the response to the app?
The response has been great. Over 3/4 of the hits that now come to our website everyday are direct name searches for Botany Buddy. There is only one thing that can create that kind of traffic and it is one on one referrals from happy customers. Our ability to market ourselves is directly related to the app and the image of the icon that it is burning in people’s heads. The constructive criticism has been great too. As a direct result of the feedback our web based product is going to have about ten times the information and search capabilities. It will also improve upon several areas of the interface and flow of functionality. Without the feedback on the initial app we would not have near the product we are going to have.
How are you marketing and promoting the app? What is working and what isn't?
We are marketing in several ways. Our main focus has been on getting outside of the traditional iPhone market as the horticulture industry is predominately on Verizon. This has lead us to work with the press to get unbiased reviews from several national and regional garden magazines and getting people who don’t even own iPhones to push the app for us. We also use our Twitter account as kind of a running periodical of botany related links and info as a way to create an identity for the brand that isn’t just selling it. One of the whole concepts behind Botany Buddy was to be a “Buddy” to botany as well as a way to bring botany lovers together by not only giving them information but allowing them to share it.
The absolute best marketing we have is our customer service and that we have a quality product. We have a very diligent program set up to make it easy for people to find us with suggestions or questions, and we make a point of responding to every inquiry timely, personally, and honestly. The whole concept behind Botany Buddy is to create a “Growing Community” and we are definitely creating a community users who are helping to promote us. We have watched other apps launch with lots of glitches and simple proofing mistakes and it has killed them in the long run. We have also watched big names like Audubon launch with soaring numbers, but their apps are getting reviews that aren’t living up to the quality of their existing brands and they start falling fast. The worst thing we have seen that anyone can do is think that apps don’t require customer service. In twenty-five years of selling products and services I have never seen more go into a single dollar earned than does with an app.
Opening ourselves up like this has been our greatest asset. Between our demo video, the fact that we list our entire library contents on the web page, and that we encourage the use of our forums to keep customer concerns in the open, we only leave one thing left for people to wonder about, and that is the one thing we have complete control of; customer service. On that same note, our blog says everything you need to know about Botany Buddy, who we are, and the efforts we try to support. Overall, I hope and am pretty certain that many of our customers really do think of Botany Buddy as a person, and not just an app for that.
What advice would you offer someone thinking about doing an app?
Three Rules:
- Building: Be patient, be thorough, know what you want to deliver and it do it, because your customers expect it.
- Branding: If you are going to use the app to extend a brand you had better live up to your brand expectations
- Delivering: To succeed in the app store you had better be prepared to do retail sales because that is what it is.
To sum it up remember that app buyers are real people. I think some developers and the people that hire them often flock to the app store thinking they are going to get rich and never have to deal with people again. Too often it is thought of as a place to sell a widget and hope it makes it just because it is there. The bottom line is the iPhone and Touch are amazing tools and the people that are loyal to them are smart, educated, and expect the best. There may be 100,000 apps in the store, but less than 5000 are actually made for people who use their apps and the operating system to its fullest. The rest people collect and throw away daily and frankly it seems like most are just made to satisfy someone’s own desire to have an app in the store rather than a customer’s desire to use it. Realize that you are dealing with real people, and start thinking of the people who are going to buy it that way. Even more importantly once the app is in the store treat your users like real people because they are.
What does the future hold for you?
You will have to wait and see. Botany Buddy Online is coming out in the VERY near future and it will change everything for us, the way we build and use apps, and hopefully an industry.
Posted by AVAI Mobile Developer on Tue, Nov 17, 2009 @ 11:25 PM
When developing mobile applications, user interface design is one of the most crucial elements that you need to worry about. Users are already restricted to a tiny keyboard and 3.5" screen, so they start out having less patience than they would for say, a desktop application. With that in mind, whenever an application has to perform a task that takes more than half a second, such as downloading data, or doing a lot of computation, the user needs to be notified with an activity indicator view or progress view that the app is still working, and has not simply frozen.
So how do we add an activity indicator to notify the user when the application is working? You might assume that you can add a UIActivityIndicator in Interface Builder, link it up with an outlet in your view controller, and just call the startAnimating and stopAnimating methods before and after the code for downloading images. With this method, the view will not actually be loaded on the screen until after the images are downloaded, so you will never even see the activity indicator. This is because the downloading of images is occurring in the main thread, which also happens to be the one used for UI updates. So, while fetching images, the UI thread is blocked from doing updates, so your activity indicator doesn't appear until it's done.
The solution is to download images in another thread, and call back the main thread when you're done. This can be done with the performSelectorInBackground and performSelectorOnMainThread methods from the NSObject class. The code below outlines the method just described.
- (void)viewDidLoad
{
[self.activityIndicator startAnimating];
[NSThread detachNewThreadSelector:@selector(downloadImages) toTarget:self withObject:nil];
[super viewDidLoad];
}
-(void) downloadImages
{
//Download images here
//Once the download is complete, go load the downloaded images into the table.
[self performSelectorOnMainThread:@selector(loadTable) withObject:nil waitUntilDone:NO];
}
-(void) loadTable
{
[self.activityIndicator stopAnimating];
[self.tableView reloadData];
}
Richard
Posted by AVAI Mobile Developer on Tue, Nov 10, 2009 @ 09:08 AM
I recently attempted to write my first Blackberry application. I knew that I would have to learn some new skills but, with my background in mobile development and my roots as a Java developer, I was up to the challenge.
I didn't start with anything too complicated. I found the tutorials section of Blackberry's developers site (http://na.blackberry.com/eng/developers/resources/tutorials.jsp#tab_tab_development) and started working my way through the getting started tutorials.
Now I've used the Eclipse IDE in the past, so I was ecstatic to learn that not only is there a Blackberry plug-in for Eclipse, but it's the recommended approach. I also learned that the plug-in is not compatible with my Mac OS X. Now I wasn't excited about this, but I can adapt, so I hopped over to the Eclipse homepage to download the newest version and installed it in my Windows VM. After, not too much time I have Eclipse up and running and return to Blackberry to download the plug-in. They have an easy to use installer, so I download that, hit install and I'm ready to go. Of course, nothing can ever be that simple. The install doesn't take and I have no message explaining why. I double check the requirements only to realize that the newest version of Eclipse is not supported. I have to head back to Eclipse and download an older version. Great, I haven't even finished the setup, and I've already made a mistake. But a simple mix up over the wrong version isn't huge, and I have been assured that Blackberry development is easy, so I'm not giving up yet.
I must say after I installed the correct version of Eclipse and ran the Blackberry Plug-In installer one more time, the install went off without a hitch. I opened my brand new copy of Eclipse, create a workspace, create a new project, and there in front of me is the option to create a Blackberry project. Score! At this point, I must admit I am excited. I love Eclipse. I really do. And after all the time I've spent fighting XCode, I'm finally back to an IDE that doesn't fight me. From this point on the process seems very simple. I follow RIM's very understandable Writing Your First Blackberry Application tutorial. The code makes sense, the RIM libraries appear easy to use, and within an hour I've written a very basic "Hello World" app. Now granted Blackberry has an unfair advantage over iPhone in this respect. When I wrote my first iPhone application I had never seen Objective C code before and the syntax was completely different than anything I had ever written before. However, I did appreciate that Blackberry development allowed me to use both a language and an IDE I was already familiar with.
Running the application in the simulator also seemed quite easy. Aside from the fact that it didn't automatically launch my application as the iPhone simulator does, the simulator seemed relatively easy to use with enough options to test various states my real Blackberry phone could be in while running an application.
With the great success I had had writing, compiling, and running my app in the Simulator I was ready to see it on a phone. This was the step I had most anticipated, not only because it always feels great to see my application in its final state, but because I had heard that putting an application on the Blackberry is a much easier process than putting an application on the iPhone. I still get a sour taste in my mouth when I think back to the struggles I had with my first several iPhone apps and making sure my code signing settings were just right and all my certificates in place and never being exactly sure what was wrong when XCode gave me one more cryptic error each time it failed to put the app on my phone. But this was not going to be a problem on the Blackberry. I connect my Blackberry and begin looking for the "Build to device" option. I can't find one. I return to my tutorial. Surely the tutorial's writer anticipated that the next logical step any developer would want to take would be to put their application on an actual Blackberry device. I scroll to the bottom, but all I see are suggestions as to other things I can add to my application and instructions on how to exit Eclipse. Thanks RIM.
I scan through Blackberry's list of tutorials and find one entitled "How to Deploy and Distribute Applications." Surely this must be it. Again I find another series of useful steps explaining how to deploy my application through the Desktop Manager. Great. I install the Desktop Manager update to the latest version, follow all the appropriate steps and I'm ready to go and I get an error when I attempt to install the app. I double check everything, make a few changes, try again, this time a different error. I try several different configurations, nothing seems to work. After several attempts, I resolve to give up on the Desktop Manager. Reading through the rest of the document I discover the javaloader deployment method. Apparently, the Blackberry JDE comes bundled with this easy to use command prompt tool. A simple call to "javaloader -u load yourfilename.cod", and my program is loaded on the phone! I find my application in the Downloads section (like the Simulator, it doesn't seem to automatically run it) and soon I'm staring at the familiar "Hello World" screen.
All in all, I must say Blackberry development was only a little more complicated than I anticipated. At the time I remember cursing Blackberry and complaining that this was not in any way easier than beginning iPhone development, but looking back, I can see that Blackberry development does have its advantages. From my limited experience with the platform I can already begin to see that it is well thought out and I'm eager to learn more. I won't say my first Blackberry app was easier or harder than my first iPhone app, but it was different. But different is good. While Blackberry and iPhone are both smart phones, they are very different, and they both deserve my share of respect as a developer.
Posted by Eric Mills on Sun, Nov 08, 2009 @ 06:45 PM
“They do everything in 3’s”. For reasons I cannot explain, this is a strange line from one of the countless sci-fi novels I read in my youth that sticks with me 30 years later. As I recall, the story had something to do with a space traveler encountering a massive space station which had been evidently built and then deserted by an alien culture. The foundation of all design and function on the ship was the number 3. Three sides to all objects, three legs to tables and chairs, etc. The parting line evidently being some kind of an epiphany for the human visitor, but one that left me feeling I was missing something.
Fast forward 30 years to Intel’s Craig Barrett saying something totally obvious that again showed me I had been missing something. Barrett congealed the cacophony of competing technologies and mobile devices down to this very basic premise – going forward there will be 3 screens in the average human life: the first is a big screen primarily for entertainment. The second is an intermediate screen for the majority of our interactivity. The third screen is the recently added “mobile device” so many of us now spend so much time engaging. Our third screen will always be with us for communication and easy access to information on the go.
So EVERYONE is going to have a 3rd screen. Just look at the adoption rates for iPhones – staggering. We will all use our 3rd screen to communicate and to retrieve all types of on the go information. It was obvious to us this would change the way we all experience the world. Up to date, location filtered information wherever you go – how cool is that?
As our company began writing apps for the bludgeoning iphone industry, however, we still felt like we were missing something. People were building and downloading high performance apps OR they were serving dynamic content via webpages. Few were providing dynamic content via high performance apps. This lead us to as the question “how can we make mobile content management easy and maximize the end user experience – regardless of the mobile device?” It ended up on the whiteboard like this:
Problem Identification:
- People on the move need access to 'fresh' information and content
- Big screens, laptops, even netbooks are not practical as an in-pocket solution
- Relevant content is constantly changing based on countless factors
- Content providers want branded/customized experience for content delivery
Problem Solution: a mobile optimized content management platform
- Best of both worlds: hybrid solution of native application and backend content
- Native application with on-device content allows high performance and off network use
- Synchronizing local content with backend content ensures timely/easy updates
- Horizontal solution with countless vertical applications
- Cost Effective solution to the problem of dynamic content management and delivery
So we built the AVAI Mobile Platform, which being true geeks we felt obligated to christen “AMP”. The AMP content management system leverages the power of a browser based content management system with native applications on mobile devices. We proffer it as the perfect hybrid solution to the identified problem. Easy, straightforward, and we even offer it as a service so first costs are low. Yet 80% of the folks that engage us in discussions on mobile “aren’t ready to invest in mobile yet”. Maybe they think it’s one of those passing phases – like that whole Internet thing. Or is it me? Am I missing something again?
Posted by Eric Mills on Sun, Nov 01, 2009 @ 11:32 PM
In the spirit of Halloween, I want to provide some tips on one of the most horrifying and scary parts of iPhone development: Ad hoc distribution. Generally, ad hoc distribution is used to allow other people to install applications onto their device during development. We typically use it as a way to let clients test out an application before it reaches the app store.
The biggest problem we ran into with this method was actually getting it to work. We would send the client an email with some files and we would constantly hear back from them "It didn't work". Since our job was to make sure that it did work, we became pretty familiar with the errors that would arise and how to fix them. Here are few common errors and reasons why you might see them.
If you are installing via iTunes and the end message is this:
This could mean a few things. The device you are installing the application to doesn't have the provisioning profile on it. Check the phone under "Settings" -> "General" -> "Profile" to see if the provisioning profile is there. If it is not there, you need to make sure you dragged the profile into iTunes.
Another reason the profile could be missing is because the device you are installing to isn't included in the profile. You will need to double check the program portal and verify that you have included the device. If you make these checks you will likely find the problem and can resolve it.
If the end message is this:
This usually means the Entitlemints.plist file is missing. This file is included for ad hoc builds and is necessary for everything to work right. If you are a developer, make sure you have included this file in the project and unchecked the "get-task-allow" option. Also check the project settings and make sure that you have included this file as a "Code Signing Entitlements" entry for the build type you are using.
Another thing we recommend for this process is to take email out of the equation. While we develop applications on a Mac OS, we still use Exchange email, and our clients use various operating systems and email clients. There are a lot of opportunities for file corruption if you use email. We have started putting the files on a public server and linking clients to the files. If you make these checks each time you create an ad hoc build you will have a much better success rate with ad hoc distribution. Or, in Halloween terms, it will turn a trick into a treat.
Posted by Eric Mills on Wed, Oct 28, 2009 @ 10:14 AM
Want to see a company that gets social media? Look no further than Malibu Boats. They make boats, so you might be surprised at how they are using twitter, their blog, their youtube channel, and delicious to interact with their customers.
Last week, the Malibu Boats iPhone App was approved and I really believe this is a beautiful piece of mobile marketing. Malibu managed to provide value to prospects, existing customers, and their dealers, which ultimately benefits their entire ecosystem. Download the app and you'll see what I am talking about.
Ask yourself this question: as a product manufacturer, what is the best thing you can do for your dealers? The answer: bring them business. This is exactly what the Malibu Boats iPhone App does. It uses the GPS signal in the phone to locate the nearest dealer. Users can contact that dealer through phone or email and get driving directions with just a few taps. Users can also request pricing information from that dealership by filling out a simple form. These pricing requests are routed through Malibu's lead management system and distributed to the appropriate dealer. In addition, users can contact Malibu Boats and request a brochure, tour request, or subscribe to their ENews.
Malibu has hit the sweet spot with this iPhone app. Users get updated news, videos, blog posts, and an easy way to contact their closest dealer and the manufacturer. Dealers get local leads, and Malibu gets all the accolades for reaching their customers on a mobile platform.
Posted by Eric Mills on Mon, Oct 26, 2009 @ 09:17 PM
I love iPhone apps. I love using them. I love shopping for them. I love reading about them. I love designing them. I love teaching business what they are all about and I love how they make life better. I also know that there is this little platform called Blackberry that lots of other people love. In fact, more people may love the Blackberry than love the iPhone. Blackberry is still outselling the iPhone, so they must be doing something right. I decided to see what all the fuss was about.
I received a brand new Blackberry Bold and after 2 seconds of pressing buttons, I was off looking for the Blackberry App World. I looked for a long time (20 minutes of going in and out of menus), then I just had to google it. Hint, it isn't in the folder called "Applications". It turns out that you have to download App World onto the blackberry by going to a specific url in the browser. This is a big mistake for RIM. Joe six-pack isn't going to google for the App World download link. In fact, most Blackberry owners I know don't even know about Blackberry's version of the app store. Do you think there are any iPhone users who don't know about the Apple app store? I don't think so. Apple makes the app store part of the product. It is one of the reasons why you actually buy an iPhone or iPod touch. Because there is an app for that. But I digress.
So I download and install App World, but afterwards, I can't find it. I had to look through all the menus again. Hint, it still isn't in the folder called "Applications". It is in the downloads folder. Once I get into App World, I start feeling better. There are lots of apps. They were categorized well, and the search was decent. It was easy to navigate and find some apps I wanted to check out. Of course the prices were much higher than iPhone apps (minimum price is $2.99 in App World). The app preview isn't nearly as good as iPhone. The screenshots aren't nearly as big, and there isn't nearly as much information as the app store. Never-the-less, App World has some apps that aren't in the app store. I found Age of Empires and a few others that I wish were on the iPhone. Overall, it was a good experience.
So is App World going to gain market share for mobile aps? Well, it only has one way to go, and that is up, since it has about 0% of the mobile app market share right now. So many millions of people have Blackberries and love them, so I believe App World is going to do just fine. Competition is good for the industry. Viva Mobile Apps!