Delightful Wins

April 29th, 2011 by Kevin Wenning

Great article from Erika Morphy published by Forbes

New devices and platforms will always come to market, and free markets and competition are always good for everybody. Apple continues to win loyal users with products that are just so goddamn delightful to use!

iPhone or iPad app design should start from the same place. An experienced iOS developer knows the importance of great design and implementation to get your product noticed. Make it visually and tangibly a delight to use to launch something with potential for buzz and great ratings!

Plans? …should include

April 26th, 2011 by Kevin Wenning

“Plans? Hell, we don’t need no plans. We’re getting stuff done here.” If you recognize my bastardization of a famous quote, then God bless you. Please comment and share the correct version of that quote.

In meeting business owners and entrepreneurs, at conferences and events since coming to the Dragon Forged team for business development, I am surprised at the absence of a mobile strategy in most business growth plans.

It was 1989 when I started my first company. I was nine years old and had barely a clue what the internet was. In 1995, still in high school, I started working the company as a full time business; made a logo, business cards, even had t-shirts made up. Internet was a part of my daily life by now, but never did I think that I needed a website to do business or interact with customers. How many businesses today don’t have a website? “But Kevin, I shovel manure for a living.” Then my friend, I believe you are reading the wrong blog. Okay, so some businesses will likely never need online or a mobile app development.

How is this relevant? If you want your companies or products to have the broadest and most constant reach with clients as well as staff, you will need to create apps that let your minions interact whenever and wherever they choose. You don’t have minions? Well, if you want them, a well made app can certainly help with that. Apps can update with the latest products, offers or features. Apps provide instant access, without having to load a website or a search engine and can usually be accessed, offline. A well integrated plan gives access to most of the same features both online and offline.

An example if I may – I attended an entrepreneur conference where David Hauser gave the keynote. It was an incredible keynote about getting exposure and press for your company. There was one comment however that made me a bit defensive. (Disclaimer: not the exact wording), “Apps are merely a fad and add no value for companies. Less than 20% of our customers access the website from a mobile device so that tells me that the majority of our customers have no need for a mobile app.” I say, that’s 20% of your customers that would like to manage their relationship with your company on their terms. Perhaps grasshopper.com can develop a value added service for that 20% that offers mobile only features, and thereby develop a new revenue stream that will grow as more of their customers work exclusively from mobile devices. And yes, a dedicated app is faster and a better experience than working on your website from a phone or a tablet.

To be fair, the majority of our work for hire time is spent building apps that will launch entirely new business models for funded startups or refresh a legacy brand for an established company. Why? Among other things, being an early adopter says that you want to work with clients and your own staff on their terms. Also, the app store is international. You can develop a following globally while barely trying. Over the next few years, mobile and web apps will become increasingly integrated in features and design, iPhone software & iPad apps will become faster and more powerful, wifi and mobile connections will become faster, new distribution devices and models will emerge…and the companies and the developers who have been doing it the longest and the best will have a distinct advantage.

 

 

The Best Laid Plans

April 25th, 2011 by Kyle

It has been brought to my attention, by several people, that the our website hasn’t been updated in well over a year. Well I cannot argue the facts, it most certainly hasn’t. So if we haven’t been updating the website or writing blog post what have we been doing? The answer is working, all day and everyday. In addition to writing code we have also greatly expanded our staff into the double digits, and are always looking for additional new people.

Well you may be asking your computer monitor what it is we have been working on so hard for the last couple of years with nothing new on the site to show for it. The answer is simple, we have been consulting. In the last three years we have shipped literally dozens of iPhone, Mac and iPad apps. We have become a team for hire working with some of the largest companies in the world to deliver new and exciting iOS software. There are benefits to this system and of course there is always a downside, which I will not get into today.

We have not abandoned our in house software though, I have been working during off hours for almost 18 months on a new version of Trivium, which in my usual style is a complete rewrite from the ground up, and supports all those awesome new technologies that have been introduced since the last release like, Game Center, Game Kit, In-App Purchase, iPad, Retina, and a whole bunch more. We have also started working on some new in house products as well as some other really exciting stuff which we will begin to show the world in the next several months. I would love to provide an estimated ship time for Trivium but I cannot seem to keep it on the burner for long enough to meet any of my internal deadlines, so I will just say it will be available “soonish”.

In addition I have hired a Business Development Manager who will help us continue to grow and shape Dragon Forged Software. Kevin will also be posting blog updates and other tidbits of public facing information.

A lot has happened over the past year and a lot more is going to change in the coming months. I have decided to redirect our efforts more into in house products and less into consulting. Writing software for other people is great and it keeps the team on their feet with new challenges, and by no means am I going to turn off the switch on consulting. However I have some really great ideas I would like to see introduced into the world, there is some software that I have been itching to write for a very long time now. I have decided to refocus efforts and get those projects rolling, at the same time I don’t want to sacrifice consulting. Consulting will remain an invaluable backbone of Dragon Forged Software, and I look forward to many more years of working on awesome client projects.

Oh and incase there is an interest my new book “Beginning iOS Game Center and Game Kit” should be available by the end of June 2011.

“Sherlocked!”

March 18th, 2009 by Kyle

This Tuesday I sat in my seat and watched Apple announce what would become iPhone OS 3.0, by the end of the presentation Handshake was dead. What events lead me down this road? They were long and very unexpected. Two years ago if you told me that I would have been part of all this I would have just written you off.

How It Started

When the iPhone SDK first became available it felt as though anything was now possible and everything was suddenly exciting. I was still wet behind the ears having just finished Trivial. Ian and I had recently meet at the local CocoaHeads Gathering and we were looking for a project to work on together.

Ian already had a good chunk of the network back end written for another project that never saw the light of day, but I will let him tell that story. We wanted a project that would be fast, easy, and enjoyable for the iPhone. I think the most important thing was seeing if we could work together as a team. Very quickly we came up with the idea of a contact sharing App, as there was a tremendous need and no solutions at the time on the iPhone.

Birth of Handshake

I was tasked with writing the client while Ian would write the back end. I immediately set to work getting a UI up and running so we could start testing things. Handshake was supposed to be a short project with one very simple goal, send contacts from one device to another. Unfortunately it wasn’t that simple, it never is.

Every time we took a step forward it felt like we took two back. The network had to be fast, stable and able to work on unstable cell networks. This kept Ian very busy and left me to fight with the client.

In the beginning my primary focus was the number of button clicks needed to be able to send your card. By the 1.0 ship we were able to get it down to two clicks, one to say you wanted to send your card, and one to select who it was to be sent to. Interfacing with vCards is not as easy as it sounds on the iPhone, especially back in the early days when the SDK was much less complete. Ian wrote an SMS share feature to make it easy for new people to get Handshake. It turned into an App that could have and probably should have been 3 or 4 separate apps.

Sending pictures was one of those afterthought kind of things. The home screen looked empty with just two buttons on it. We really wanted to be able to send calendar events but just couldn’t access that data anyway we tried. I was surprised weeks later to learn that pictures turned out to be a huge hit.

The Awkward Years

I’ve never really publicly talked about this before but Handshake 1.0.0 had a serious bug that was completely my fault. When the app was first run it tried to figure out who the user was. Handshake does this with some fancy code that scrapes through your entire address book trying to piece together information about you. This process took a bit too long, sometimes and would make the iPhone think that it locked up while launching, causing the iPhone to exit the App. This was caused by an extra call in the loop that was redundant and took a long time to execute. Handshake worked fine for address books with only a few hundred people in them. This didn’t get picked up in initial testing because we didn’t have huge address books. Who does have huge address books though? The media, thats who. Despite this Handshake was very warmly received by blogs and other news sources.

The power of Handshake was that it would work over 3G, Wifi or Edge in any circumstance, and across any network. It would automatically find people standing next to you and would even work with one bar of Edge (although slowly). To this day no other third party iPhone developer has really gotten this to work that I have heard about. With peer to peer networking in OS 3.0 I doubt anyone will try to tackle this again.

Growing Up

Handshake was huge (especially in Sweden). The problem was we never really had a way to make money on Handshake. We had an ad supported version and a premium version for $2.99 that was ad free. There was no way we could have been successful at all if we charged for the app since both the sender and receiver needed to have it installed. No one wanted to say: “I’ll send you business card, but you have to pay 99¢ first”. We saw decent premium sales, but they really only covered development and server cost.

The ad supported model just wasn’t working well for us. Handshake was one of those Apps that everyone installed, but only ran once a month for 15 seconds, it was not great place for ads to be. We launched with Ad-Mob and made some money the first few days, but it was causing crashes for some of our users, so we decided to pull it. We then tried to roll our own ad network, with some success and that is what you will see in the latest version of Handshake. We used it mostly for advertising our other software, but also had some success selling ad spots.

We added new features like email sharing and global user searching over time, but mostly we planned Handshake 2.0. We needed to add some premium features to be able to sell it. We had our foot in the door with tons of users in over 150 countries, now we needed a way to make money from it. Sending photos lead us down the path of sending files, without the photo feature we might of never seen that next step.

We got 2.0 mostly written including a file browser, which I will be showing in an upcoming post. We just needed a good way to get the files on the iPhone. We looked at every option available, web apps, desktop clients, and network sharing. We settled on WebDav, the problem was Handshake wasn’t making enough to live on and we did this full time. We were working on projects that had proven income potential. We would not have the time to write it ourselves, so we contracted it out to a friend to write. It would have to work flawlessly with Windows, Mac and Linux to be usable.

The WebDav server was never finished and we kept pushing it to the back burner to work on other things like Trivial, Transactions, Cocktails, Changes, etc.

We always knew that Handshake had a limited life and was expecting it to appear in Apple’s software sooner or later, after all we were filling an important niche. We were limited by the SDK and hardware access, something would have to change to take it much further. Apple was the only one that could take it to that next step.

Death and Cooping

The last few months it feels like we have barely thought about Handshake. The support load has been minimal despite the ever increasing user base. We have been busy working on Transactions. Handshake was slowly turning into a word I would use when introducing myself to other developers, “Hello, I’m Kyle Richter, I wrote Handshake”. Don’t get me wrong I always cared about Handshake, it put me on the indie map, but I think I knew its time was passing.

As I sat there and watched Apple first announce peer to peer networking in the iPhone OS 3.0 I was worried, more about our business reselling the Handshake back end then Handshake itself, and I instantly started to work through the task needed to switch Handshake onto the new system.

Ian was sitting next to me and I had sensed for a long time he was looking for the reason to move past Handshake onto new projects, I think this was the message he was waiting for. Even as I thought of ways to adapt and save Handshake I could tell it was dying. Once Apple announced MMS and email with attachments I knew Handshake was EOL. I was upset for a few minutes but the more I thought about it the better I felt.

Being “Sherlocked” is one of the highest honors an indie Mac developer can receive in my opinion. Apple saw the niche we filled, saw how we were doing it, and that people wanted it filled. They implemented it and they gave it to everyone instead of our limited user base. In the end we created Handshake to fill a need for ourselves and the journey has come full circle and now everyone can use it. I can’t think of a better way for Handshake to ride off into the sunset.

[Handshake] Should be a built-in iPhone feature.” – John Gruber.

And now it is.

Handshake will remain available in the App store and free until iPhone 3.0 is available to the public, at which point we will see what we want to do with it.

Transactions

March 15th, 2009 by Kyle

Transactions is a new iPhone App that I wrote with Ian Baird for accepting credit cards on the go. This is the second App that we have released jointly, the first being Handshake.

Transactions was a really interesting project despite some difficult hurdles. I ended up rewriting the entire user interface no less then 3 times including 11 revisions along the way. We put a lot of effort into the UI in order to make it simple enough for any retail clerk to master in minutes but powerful enough to handle the complex nature of payment processing. In the end I am very happy with how it turned out.

img-0005.jpg.jpeg

We also have a couple of firsts on the iPhone technologies with Transactions. We had a major problem of easily entering login credentials for PayPal™ and Authorize.net™. Ian developed a tool for solving this problem that we called the Credentials Tool, it allows you to copy and paste your account information into a website and have an email sent to your iPhone that will automatically configure the App. Founded on this same technology we allow you to transfer settings from Transactions Lite to Transactions.

Transactions Lite allows anyone to try out Transactions with no risk, it does have a limit of 2 Transactions per 12 hours though. Transactions sells for $29.99 and is available in the US App Store. International versions will be available as soon as possible.

Detecting the iPhone User’s Name

February 11th, 2009 by Kyle

There have been a lot of questions about how to detect the name of the user on the iPhone. I thought I would take some time today to walk everyone through the process.

One of the challenges a lot of developers have been facing is that there is no -(ABPerson *)me method on the iPhone. On a mobile device it is especially helpful to know who is using the device.

Initially looking at the challenge I spent a couple of days digging around the iPhone to see if it had any record of a “Me” address. I spent a lot of time in Mac’s AddressBook application using Changes to see if the cards were somehow tagged with a “Me” reference that could later be read on the iPhone. Sadly this was a no-go. The iPhone strips all this information out of the contacts before syncing them to the device.

I have been asked to remove this entry from my blog. Sorry.

For my friends at Apple rdar://problem/6579406

Special thanks to Daniel Jalkut for turning me onto MarsEdit this is my first post using it.

Trivial 2.0 Released

February 11th, 2009 by Kyle

Okay so Trivial has been out for a couple of weeks now, but incase anyone is just watching my feed I thought I should mention it.

On top of that my website has seen yet another redesign. I am very happy with how everything looks now so hopefully I will be able to keep it around for more then a year.

You may have also noticed a coming soon teaser on my software page as well as a few tweets about it. More about that should be available soon as development on it is finishing up.

Trivial 2.0 in Closed Beta

January 10th, 2009 by Kyle

As Trivial moves into closed beta this week. Those who didn’t get a chance to get in the beta group I thought I would share just some of the new features that did make it into 2.0. Some of these features may change before release but they are almost certainly going to be included. 

• Interface themes, a lot of people really liked the old look and a lot of people really hated it. There was no way to satisfy  all my users with just one layout. Trivial 2.0 adds 5 built in themes at launch. New themes will be added as time progresses.

• Multiplayer gaming, play against another user across any network Wifi, Edge, 3g or even across different cell carriers. Find users automatically near you or search for users around the world. 

• Artificial intelligence, play against your iPhone/Touch with 4 different levels of skill. 

• Resumable games, I understand that iPhone users want to play for a couple minutes at a time. Trivial 2.0 allows for resumable games and crash protection. Play for as long as you want and when you come back your game will be right there for you. If your iPhone crashes or loses power the game will restore right to where you left off. 

• In game high scores, while Trivial has always had networked high scores they were only available on the Trivial website. 2.0 brings these scores right into the game for you. 

• Questions will no longer repeat between games. Trivial 2.0 will exhaust the question supply before repeating them.

• A new game mode, Timeless! Timeless mode lets you play on your schedule, no pressure to answer questions against a clock, take as long as you want. Timeless mode even has its own soundtrack which is much more mellow and peaceful then the rest of the music. 

• Plus many many more features, enhancements, and bug fixes!

Trivial 2.0 will ship when its complete, but its getting close.

Howto – iPhone’s Mail App Delete Button

January 7th, 2009 by Kyle

Okay, admittedly I have been doing a terrible job at running a developer’s blog. I am really going to try and start giving back to the community. This is my first attempt at sharing code and tricks that I have developed for various projects.

Today I will be showing everyone how to make a delete button like we see in Mail App.

maildelete

First off you will need two resources one for the background one for the icon. 

redbutton trashicon

You then simply create a button. 

/*Set your button size*/
deleteButton.frame = CGRectMake(0.0, 0.0, 95, 33);
/*Set button background and scale it to fit the frame we set*/
[deleteButton setBackgroundImage: [[UIImage imageNamed: @"redButton.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
 /*Set the icon*/
[deleteButton setImage:[UIImage imageNamed: @"trashIcon.png"] forState:UIControlStateNormal];

/*Then when the user has items selected to be deleted you can set the title*/
[deleteButton setTitle: [NSString stringWithFormat @"Delete (%i), numObjectsSelected] forState:UIControlStateNormal];

/*When the user has nothing selected you can disable the button with*/
deleteButton.enabled = FALSE;

/*Don’t forget to enable it when the user has selected a file!*/

And this is what our final product looks like, the button adjust and centers just like the Mail App button.

endresultdelete

You are free to use this code or modify it in anyway that you want, I only ask that if you plan using it that you send me an email or a comment with what it is being used in.  If you plan on republishing this tutorial please give me credit somewhere. 

Trivial 2.0 Progress

January 6th, 2009 by Kyle

 

I have been very busy the last few months working on Handshake. However I have recently found some time to work on the next version of Trivial. I am really trying to get this update out to everyone before I get sucked back into other projects.

As promised the next version of Trivial will bring true head to head gaming over any network. It also is a complete rewrite from the ground up. Dozens of new features have been added and I am very pleased with the progress. I am hoping I can finish implementing new features this week and move it into beta. 

Here are some sneak peak pictures of what is coming!