The story of my latest app

-   Dec 15, 2011 -   iDevBlogADay, Software, iOS -   ,

In the past week, my latest app , RunNow Pro was approved and released in the Apple App Store. The app project began about 6 weeks ago. My wife and I were talking about running and my wife decided she was going to try to run a half marathon next fall. While it is pretty far away, we decided it was best to get started with a run / walk program so she'd be ready to hit the road come spring. I looked up some plans online and thought there would be an app out there to help with this.  There are lots of them actually, but of all the ones I looked at, none seems like the right one.  Later that week, I got an evening home alone with the kids and the idea struck me to make the app for her myself. That night, I had the kids record encouraging messages of when it was time to run and then when it was time to walk or recover.  After I got the kids to bed, I coded up the app and it was ready for her run the next day. Over the next few nights, I cleaned things up, added a settings page for controlling the workouts, and added a log so she could see the workouts she did.  It wasn't too fancy, but it worked well.  The personal messages were fun and it was very customized to exactly how she worked out.  She ran a timed workout of 20 minutes so she'd just run/walk for 10 minutes, the app would remind her to turn around and she be back in the driveway when her workout was done.  I decided I would make a version for release soon after. Over the next few weeks I spend a few more evenings polishing it up and sent the "Pro" version to the app store.  I removed the kids voices but added other notification options. It has a built in couch to 5k workout plan, but still has the manual settings which will make the app work well for running intervals or just doing a custom run / walk plan.  It runs great on our old original iPhone with iOS 3.1.3 which is the device my wife uses it on. I'm working on the free version of RunNow as time permits with less features, ads, and the ability to upgrade to the full version with in app purchase.  It is not my top priority, but I’ll hopefully be able to finish it up some time in the coming weeks.  It was fun to see this simple project come together so quickly and was a nice break from my larger iOS project that I’ve gotten back to in the last week.

 Perfect mockups

-   Sep 08, 2011 -   iOS, iDevBlogADay -  

There is nothing like drawing up your app ideas so you can visualize things better.  Like most of you, I’ve used the trusty paper and pen method the most.  I came across Balsamiq in mid 2009 and have used it a nice amount. It does some things really well and the end product is great for sharing.  However when there isn’t a widget for everything you need, it breaks down.  I usually found myself starting with paper and moving to Balsamiq if I need to communicate a design to others. Recently, I came across Noteshelf and it is my new mockup tool of choice.  Noteshelf is a slick notetaking app for the iPad that is currently at the top of the US iPad sales chart as I write this. Noteshelf is a handwriting app that just takes what you draw/write and saves it as an image (No keyboard input.)  As you would expect, there are lots of pen and color options along with the ability to import images.  You can create multiple notebooks to organize all your notes on the common bookshelf view.  Notebooks can be saved as images or PDFs.  Where this gets interesting is there is an in app purchase for designer paper which gives you an iPhone template and an iPad template for drawing mockups. Once you add these to your app, you can make notebook of mockup pages for your app.  There are some incredibly helpful features like the zoom feature which lets you make work a smaller section of the page to give you a finer control and wrist protection which when turned on keeps your hand from making marks when you are writing with a stylus. Pro Tip: Splurge for a stylus if you plan to give this a real test. It makes a huge difference. Once you’ve got your app mocked up over as many pages as you need, it is easily sharable. The export options are excellent. I linked up my DropBox account and that to me is the perfect why to export these at least until iCloud is fully rolled out. At the moment, the app is $0.99 and the designer paper pack is another $0.99.  $2 is a bargain for the perfect mockup tool assuming you have an iPad handy. Note regarding the marvelous sample images: I wasn’t quite ready to share any of the real mockup images I’ve done in Noteshelf yet, so I made up this fine sample of Rabbot.  I have no idea what it is or how it plays, but if you find an interesting game in there, I look forward to trying it out.

 Delayed release in progress

-   Aug 09, 2011 -   iDevBlogADay, iOS -   , ,

I recently finished up my 3rd App Store game, SudokuKids for iPad.  While I can't wait to see it available in the App Store, I decided this was a good candidate for delayed release. I know many people advocate the delayed release.  Usually, the main point is to try to build up a buzz around the app. Noel Llopis wrote a nice short description of delayed release at the end of his review of the Business of iPhone and iPad Development.  You can contact media/review sites and even give out promo codes for your app ahead of time with the goal of having most of your PR hit right around the launch day.  To be honest, I’m not expecting to be able to generate a lot of buzz, but any buzz does help.  The main reason I delayed the release of this app was to give myself sometime to work on some of the tasks I’ve been neglecting.  I’m not sure how important these tasks are but I was beginning to feel they were pulling me down.  I decided I would give myself a few days to try to get them in order before this app hit the store. First up was a new RazorAnt Software web site.  It still isn’t quite done yet, but is getting closer every day.  I needed to make more information available about my apps and this is the place for that.  I’m not sure how valuable the web site is for iOS game developers, but as I have some different apps coming up yet this year, I figured I really can’t neglect it any longer. Next, I needed to start getting some social media connections going.  I’ve just focused on making games in the past and hoped the marketing would come.  Word of mouth has been ok, but hopefully this will propel it a bit better.  Lastly, I wanted to work on getting better pre-release details together.  Better images, write ups, a press release.  Hopefully, I’ll be able to get a video done this week as well. I was kind of hoping this would be the calm before the storm type of thing.  So far, I’ve been busy, busy, busy and feel like I’m not producing a whole lot, but I feel better about the image RazorAnt Software is projecting and that counts for something.  Since this is my first iPad app, I’ll have no idea if any of this helped compared to my previous releases, but I feel better about what I’ve done. SudokuKids for iPad was approved last week and will be available in the App Store this Thursday, August 11th.  If you have kids, be sure to check it out.

 The organization of a indie developer

-   Jul 26, 2011 -   Development, iDevBlogADay -   ,

Project organization is something we all need to deal with on a daily basis.  The way we handle it leads directly to how efficient we can be, how support is handled, and how complete our products are.  No one wants the be the guy who is letting things fall through the cracks. Project management for an independent can be easy to overlook as you don’t have anyone to answer to, but it is important to have a solid system to keep track of everything.  I’ve been asked by a number of friends over the years how I keep on top of stuff and have had the idea of blogging about it for a while now. Key Points I figure it is best to start off with the key points before I describe how I personally implement them.  Here they are: Have a single tool were you keep all your project tasks and support items. Find a tool that is quick, easy and everywhere you are. Make the tool a part of your workflow and review it often. I think these are things that have made the biggest impact for me.  It doesn’t matter what tool you use to manage things.  It could be a notebook, a text file, or something more advanced.  It just needs to become the place for managing project stuff.  It can’t be a hassle to use and must be as quick to access.  It has to become an indispensible part of your work process. The rest of this post will be focused on how I’ve implemented these.  Hopefully, it will be helpful or at least interesting to compare to your own workflow.  For the past few years, my key tool for project organization has been RememberTheMilk (RTM).   The rest of this post will focus heavily on how I use RTM to manage things, but most of these types of things could be done with other tools easily enough. Areas If you are looking to organize everything, you are gonna need multiple lists.  I keep a number of high level lists or areas.  Personal, Work (day job), and RazorAnt (my company) are the big ones.  Ideas and Someday are special areas that I’ll explain a bit near the end of this post.  The main point here is a have a few high level areas to place my tasks. The RazorAnt list is the one we are concerned about in this post.  It is a list of every task I’ve record for all my myriad of projects.  (Yes, I have way too many projects between client work and my own projects, but that is a different problem.)  Since I have so many things going on, I like to have them all lumped together in one area.  I assign each task a tag stating what project it is a part of, but they are all part of the RazorAnt list.  The point of the big list is I can see at a glance which projects have the high priority tasks and which ones have due dates coming up.  This helps me know what projects need the most attention.  It is often the place I start the day at so that nothing gets forgotten. Project List Once I’ve settle down to work on a specific project, I pull up the filtered view so I’m just seeing tasks for the project at hand.  This gets rid of the extra noise and helps keep me focused.  The last thing any of us needs is more distractions.  I keep the project list organized by using the priority levels and due dates.  I’ve included a screen shot of one of my current projects that is in the early stages to give you an idea of what this looks like. Tasks These are the real key.  As I work in the early stages of a project, I sometimes feel like I’m adding as more tasks than I’m crossing off as I breakdown tasks into multiple steps. Once you do the work of breaking down the tasks into the steps, you might as well make them into tasks. Big items on your list can sit out there until you are ready to deal with them and break them down to manageable chunks. When I first started writing down all these little tasks I felt like I was wasting time, but it turns out it is more then worth it.  You don’t want to have to figure out the steps again and you can’t always control interruptions and other issues.  Besides, there is a sense of completion as you mark items as completed. Support Many indie developers handle support by having customers email them.  I’m the same way.  Emails come in and if the email is a feature request, bug or other issue that requires work, I just forward it to my RTM email address, give it a smart subject line, and it shows up right in my task list tagged correctly.  It is placed right with the rest of my task and doesn’t get lost.  In the screen shot above, you can see a bug item that came via email.  It has a note icon on it where the body of the email can be viewed. Project Ideas & Questions As we work on projects, new ideas are always popping up.  When new ideas or questions come up, I just add a new task with the project tag and a question mark on the end.  If there are lots of details, I usually end up send RTM an email with the details in my head so it gets listed and everything is right there for me. I can evaluate these question mark items later and not lose focus completely on the task at hand.  It is not uncommon for me to have lots of question mark tasks when I’m in the prototype phase.  Question marks don’t mean I’m going to do these things, just that I’m going to think about them. Other Lists If you are anything like me you have a list of ideas for possible apps you’d like to consider.  I keep my project idea list in RTM as well.  These aren’t tasks like everything else, but it is a great listing tool and since I’m in this app all the time, the ideas don’t get lost and get to revisited often. Hear about a book you should read or a video you should watch?  I put them in my Someday list.  Again, it is simple a place to list things that you might want to revisit.  If after 3 months you no longer care about that book, just delete it from the list.  The key here is again having a place to put something that you see often. I keep this list at the big area level as I don’t need to see these every day but since I’m in RTM all the time, they are always there and get reviewed on regular basis.  (Roughly weekly for me.) Why I chose RTM RTM has some key functions for me.  Since I rely on it so heavily for my dev work and my personal organization, it is important it is always with me.  The iPhone app is great and it automatically syncs with the web site.  Everything is always up to date everywhere. The easy of entering tasks is huge.  The smart add functionality allows me to put tags, lists, priority and due dates all on the task line as I enter it.  One line of text and enter and I have my task in the right list, tagged and organized.  No messing around with separate fields. Lastly, the ability to easily manage emailed items is huge.  I can keep my inbox clean and not let it get out of hand.  I simply forward the emails to my RTM address, change the subject (and use the smart add features) and send it.  Nothing gets lost and I don’t have 2 places to keep track of items. Summary The goal of this post isn’t to sell you on RTM, but to share the key things I think are important in keeping me on track and showing you how I do that.  There are tons of great tools to help solve this and many of them might work better for you than RTM.  Hopefully, my key points show through in the description of my workflow.

 Getting the most out of Ad-Hoc testing

-   Jul 12, 2011 -   iDevBlogADay, iOS -   ,

I’m sure most iOS developers are familiar with ad-hoc testing.  For the uninitiated, it is a way of testing where you can put a development version of your app on someone else’s iDevice without having to have it sync to yourself. In the early days of iOS development, this was a somewhat painful process, but with the advent of services like TestFilght, this is now a breeze to do. Without going into to all the reasons you might want to do this, I want to focus this post on how you can make this process more valuable to you.  I’ve done Ad-Hoc testing with 4 separate apps now and each time I’ve changed up the way I did the testing to get better results from my testers. Test it early Now that Ad-Hoc testing is so much easier to distribute, bring it into your development cycles earlier. I’ve been running early tests with small groups of trusted friends.  It is super valuable to get some great feedback at very early stages in the development process.  Some of this feedback has saved me a lot of time pushing in the wrong directions.  It is just so easy to do now, I don’t hesitate to get those early builds out to those I trust. Be specific The first few times I did ad-hoc testing, I just included a message that said, “Check this out. Let me know what you think or if you have problems.” Oddly enough, I didn’t get the kind of feedback I was hoping for. As I’ve done more releases, I’ve found that highlighting new features and asking specific questions with the release has given me the type of feedback I was looking for. There is nothing wrong with asking your testers questions or asking them to take a look at a function and requesting their feedback on it.  You don’t want to lead them to answers though, so take you time and ask good questions. Make it easy to give you feedback Now that you are testing often and asking specific questions, you want to make it as easy as possible to have your users give you feedback. The easier you make it for someone to give you feedback, the more likely you are to get it. In my more recent testing process, I’ve taken to putting “Send Feedback” buttons right in the app to encourage testers to get in touch.  It can be as simple as a button that opens an email addressed to yourself or as advanced as you want it to be. Make feedback count Lastly, if you are going to get some feedback, you might as well get a serving of data to go along with it. When a user presses the “Send Feedback” button to send you information, there is no reason you can’t load some stats, error reports, logging details, or whatever else into the feedback message.  It is best to be up front with your testers that you are doing this, but I’d guess most won’t mind a bit. If you have suggestions on getting more value out of ad-hoc testing, I’d love to hear about it in the comments.