A free library for iOS for making apps that download images or other data from URLs. Includes caching, easy memory management, etc.Read More
Santa's Lil' Zombies is our first free iPhone game build with Unity 3D, it's out now in time for Christmas! We're releasing it in 3 versions:
- Free to play on the web
- Santa's Lil Zombies Free, with 3 levels and iAds.
- Santa's Lil Zombies, 99c with 8 epic zombies blasting levels.
This casual iPhone game is full 3D but designed to be super easy for anyone to pick-up-and-play. Its a portrait mode game leaving room for iAds, and you can play one handed by holding the phone and aiming the gun with your thumb. Its very easy, in our player tests, even non-gamers who don't have iPhones were able to get into the game quickly. As we built it with the most awesome Unity 3D, its easy to publish it on the web, so santaslilzombies.com has a full free demo of the first 3 levels of the game.
I own 91 books covering iPhone app programming, design, marketing, and business, and I've browsed plenty more. From all those books I've picked out the ones I consider to be the very best. My recommendations are split into four parts:
Learning iOS Programming (below)
Part 1 - Learning iOS Programming
Learning to program the iPhone & iPad has never been easier due to some fabulous books. Programmers who are new to Apple have to learn Apple's Cocoa Touch SDK and in most cases will be learning Objective-C as a new programming language too. Of the 21 iphone programming books I've read, here are the best...
I recommend you start with Beginning iPhone 3 Development – Exploring the iPhone SDK (soon to be updated to 'Beginning iPhone 4 Development'). Jeff LaMarche and Dave Mark clearly introduce and explain the most important topics to get new iOS developers over the initial steep learning curve. Of all the iPhone books this remains the best for developers new to iOS. They have a companion book 'More iPhone 3 Development', but you won't need that unless you later want to delve into advanced topics.
Another great book for learning iOS programming is iPhone Programming: The Big Nerd Ranch Guide by Joe Conway and Aaron Hillegass. This books is written by the premier iOS and Mac training company in the world. It covers more topics than Beginning iPhone 3 Development, but it still starts out slow and easy, has a lot of great explanations of 'good ways to do it' and it includes introductions to Apples iOS development tools too, so you get a very well rounded kick start on the platform. Because it covers so many topics it makes a good reference later for stuff you forget.
If you like books with lots of text to explain stuff, you should start with 'Beginning iPhone 3 Development' if you hate lots of text and really just prefer short lessons on 'how to do it on iOS' then start with the Big Nerd Ranch book. But people, this stuff is really difficult when you first start, so its worth having both so you can hear two different voices when you get stuck.
Once you start writing your first app you'll find there are lots of little specific things to figure out, your best bet is to check with Erica Sadun first by looking in the pages of her wonderful book 'The iPhone Developer's Cookbook'. Its a great companion for any iOS developer, and its the one book I refer back to most often.
Programming for iPhone means programming in Objective-C. Objective-C is the C language, with dynamic object oriented extensions. Coming from any other language, you'll need to learn the Objective-C way, and for that you should check out ‘Learn Objective-C on the Mac', though there are a bunch of newer Objective-C books I've not seen (if you find one you love, let me know). Also consider adding 'Programming in Objective-C' by Steve Kochan to your library, as this is the comprehensive language reference, it will have the answer when you are trying to figure out more complicated parts of the language. Some of the more advanced parts of iOS development, eg audio processing, are done in C rather than Objective-C. This means that when you get to those you'll need to understand the crazy C stuff of pointers to pointers to functions returning references to arrays of pointers to alloced memory buffers... If all those stars and ampersands get you down you should go back to an easy learning C book, of which there are many, eg ‘Learn C on the Mac'.
I have a handful of books on user interface & app design, and one shining star is 'Tapworthy, Designing Great iPhone Apps' by Josh Clark. Josh takes the reader through a journey to understand what makes great iPhone apps. Josh examines how real people use their iPhone and their apps, what thrills them, how people like to get in and out of an app quickly and use it for one thing without having to think too much about it. For example he compares gestures that are known by everyone with gestures that most people never use (ie don't design for a UI gesture that only geeky iPhone experts know about). He introduces all the standard controls and talks about how to use SDK components to structure and organize the your UI in a way that will be natural for iphone users, and then goes on to show how you can dress UI components for a custom look. Josh doesn't shy away from discussing when you shouldn't use a standard interaction too, and Apple should take note: no-one likes the shake! Throughout Tapworthy there are case studies based on interviews with app designers explaining the design choices of some hugely successful apps including Facebook, Gowalla, USA Today, Things, Twitterific, & PCalc. Whether you are building for iPhone or another mobile platform, you should study this book and keep it on your shelf, its that good. Suzanne Ginsburg's 'Designing the iPhone User Experience' is another worthy read. Its 277 pages cover iPhone apps from the point of view of a UI specialist and includes tons of good advice about market research by, prototyping, testing, how to approach the overall app design, UI design, and branding. On my first look through I feared it was another manual of 'how the pros do it' that would not suit the resources of my own two person company, but on closer inspection that's not the case at all. When the author does explain bigger budget approaches she also explains low budget 'guerilla' methods. There are tips and anecdotes throughout the book drawn from Susanne's experience working on iPhone app design and UI testing. (Suzanne is an acomplished user experience consultant in Silicon Valley.)
One piece of advice about listening to designers... They have a lot to say about things you should do, and stuff you should put into you app. All those 'shoulds' are scary to an indie software developer short on time and money and focused mainly on writing code. Think of all the 'shoulds' as a menu of stuff you can consider, and then spend your time and money where it makes sense for you. Remember though, end users don't care one bit how costly or time consuming an app is, they only care how delightful, fun, and useful the app is, and your app is going to be competing against apps that have had a lot of careful design put into them.
For those of you who can't get enough I'd like to recommend a couple more design books, though they are not iPhone books. 'The Design of Everyday Things'by D Norman is an industrial design classic. As the iPone is a device you hold and touch, the app design direction of physical / real world metaphor has proved very successful for a number of apps, and Norman's book is probably the best design guidance you will find for that kind of app.
'Don't Make Me Think' is a concise and accessible book on web usability design, it has some great lessons that iPhone designers can use too that might be a little easier to learn when seen in the context of the more familiar web.
Finally a quick mention of 'Design Basics Index' by Jim Krause, which is a useful intro and reference for graphic design concepts that's helpful to those of us without training in graphic design.
As game players we all think we can design games, but to make a great game you really need to step outside your own enjoyment of playing games, think about what makes games fun and more, how games generate an emotional experience for they player. 'A Theory of Fun' by Ralf Koster is an easy to read 221 page masterpiece exploring what games are and why they are fun. Every 2nd page is a cartoon that illuminates the concept on the proceeding page. This is no gimmick, it really makes the book more accessible and will aid your understanding. Koster gets right to the heart of what the human mind gets from game playing, how people vary in how they like to play, whats happening when players cheat. This book is so good, I need to go read it again for a third time instead of describing it more. Making a game? Buy this book. Scott Rogers' 'Level Up, The Guide To Great Video Game Design' is my second recommendation for game makers. Its a much bigger book that Koster's and instead of looking at the heart of what gaming is in the player's mind, the book takes a hands on look at the elements of computer games: characters, camera, controls, UI, cevels, combat, game mechanics, audio, etc. Its also a very readable book with lots of cartoons, and it will help you understand what you are building in terms of the conventions of all the games that came before, from which your players learned how to play computer games. Its an excellent resource to help you understand some of your choices when you get stuck with some part of your game's design, and it will help you round out parts of your game you've neglected.
Finally on general game design, I'd like to give a shout out to Nicole Lazzaro. I don't think she's written a book yet, but go hear her speak if you can, and get her papers on the 4 Keys to Fun at her website XeoDesign.com.
Typically games means animated 2D or 3D graphics, and you'd be a fool to write a game from scratch without using a game engine. There are a bunch of excellent game engines on the iOS platform, but undoubtedly the two leaders are Unity 3D and Cocos2D (with Box2D or Chipmunk Physics). After writing our first iPhone game from scratch in C and Open GL ES, we've now chosen Unity 3D for our next games, and I have to tell you so far its amazing, brilliant, excellent value for money, and totally fun to use! Despite the name, Unity 3D is good for 2D games too (check out Sprite Manager 2). It speaks volumes about Unity that there are several books now available to help you learn to harness it...
Unity Game Development Essentials by Will Goldstone, and Unity 3D Game Development by Example are two good beginners books, feel free to select either one or both to get started in creating Unity scenes, scripting objects, and making basic games. Unity Game Development Essentials introduces everything by working through the building of a simple first person perspective game where you walk around an island and interact with the 3D world. The example game the book takes you through can't be run on the iPhone though, as it makes use of the terrain modeling features of Unity which are not supported on iOS. Unity 3D Game Development by Example on the other hand takes you through building a handful of casual games without using any features that aren't supported in iOS. The book is aimed not just at Unity beginners, but at beginner programmers too, and it a very easy to follow. If you are an experienced programmer you might find it a bit annoying, and in fact the authors very casual style ends up detracting from the book a little because the humorous section titles just make it hard to look up Unity stuff you need help with.
'Creating 3D Game Art for the iPhone with Unity, Featuring modo and Blender Pipelines' by Wes McDermott is a fantastic book to help you get to grips with Unity. From the title you might think this book is for game artists about 3D modeling, but really the title could have been 'Everything technical you need to know about making 3D games with Unity for iPhone except programming'. It will teach you how to use 3D models, animation, and textures in Unity whether you are creating them yourself, using stock, or hiring a 3D artist. Also, despite the fact that modo and Blender are in the title, this book is for you whether you use those applications or not. The book explains the power and limitations of Unity on the iPhone and has great advice on how to get good graphical performance. It teaches how to use all the different settings for importing graphics into Unity so they will work well on iPhone, and explains some performant techniques for constructing the game world. The author takes you through all this by building up an animated 3D over the shoulder perspective shooter game.
If you're making iPhone apps to try to make money, then marketing is key or only your friends will ever download your app. When most people hear the word 'marketing' they think of telling people about a product after its been built, but I see marketing as much more than that, and in fact I think the most important type of marketing is the basic understanding of the market in the first place, and that comes before you make you app. Why? The most important factor in getting people to buy your app is having an app that people will want! If you can do that the rest is much easier. You have to think about out what kinds of apps people want to buy, why they choose one app over another, how many people want something like this, what you can do to make your apps desirable. Once you've got a handle on all that, then you actually make your app and go ahead with the advertising and PR part of marketing to get the word out. So here are some books to help...
The Business of iPhone App Development by Dave Wooldrige and Michael Schneider is an excellent on book that covers market research, app design & design for your promotional materials, different pricing and revenue models for apps, working with the press, connecting with customers, and running promotions. There's a lot of hands on techniques and information in this book you can really use. (I was the tech reviewer for the first edition of this book, Dave just updated it in 2011 to a 2nd edition.)
In App Savvy Ken Yarmosh takes the reader through a masterclass in app product strategy, managing app development, marketing and engaging with customers. The book is packed with sophisticated approaches that successful app publishers are using, but all the material is presented in a accessible easy to read form. Ken's expertise comes from publishing his own iOS apps and working as a consultant on more, but he goes further and includes interviews with plenty of other successful app developers, marketers, and industry experts. App Savvy can give you an up to date understanding of the app store marketplace, will help you understand where your own app plans fit in, and its filled with guidance towards success. I especially love App Savvy because Ken introduces the ideas of Customer Development / the Lean Startup, which have been very influential on my own apps business. Whether you are an indie app maker, or working in a larger company, I cannot recommend this book strongly enough.
You probably want to get some press for your app, but can you afford a good PR firm? No? Yeah me too. If you are going to pitch the press yourself you MUST read 'Pitch Perfect' from TUAW.com bloggers Erica Sadun and Steve Sande. They tell you what its like on the inside to get hundreds of app pitches a week, and they coach you on how to get them to notice your app.
Another good iPhone specific marketing book is Jeffry Hughes' 'iPhone & iPad Apps Marketing, Secrets to Selling Your iPhone and iPad Apps', and it covers similar ground to Wooldridges book, and had lots of good examples of how app publishers promote their apps, and some financial models to help you make sensible plans.
Suzanne Ginsburg's 'Designing the iPhone User Experience' has some excellent advice about how to perform a competitive analysis of the market for your app, and lots of detailed information about user research and prototype app testing - key 'before you build it' marketing.
'Positioning, The Battle for Your Mind' by Al Ries and Jack Trout was first published in 1981. Its been perhaps the most important marketing book I've read, it really changed how I think about how customers feel about the products they buy, and was tremendously helpful in understanding the vast gap that exists between how you feel about and see the app you are making, vs how all those iPhone users our there might feel about and see your app. Really, it comes down to the fact that pretty much no-one will feel anything about most apps because for most apps, no-one will ever even know they exist! Positioning is a huge challenge for companies with millions to spend on marketing, so how can this book be relevant to an independent iPhone developer with a micro budget? The lesson I took away was to make something that people can imagine what it is... that they could recognize what the app will do... that they can make that jump to wanting to check it out when they first see the app icon, name, or a screen shot when they are in the app store or perhaps a website. Check it out, its a great read.
Priceless: The Myth of Fair Value is a wonderful read about behavioral economics. It should make clear to you why in app purchases can be so profitable, and why you need to sell multiple things in order to get your freemium game to pay. You know what - real customers are _not_ doing ROI calculations in their head when they consider buying your app!
Also very influential to how I think about my iPhone business are the ideas of Customer Development and Lean Startups from Steve Blank and Eric Ries. Customer Development is about taking the risk out of startup businesses by figuring out what to make and how to sell it before investing lots of money on sales. Another way of looking at the basic idea is to say its about figuring out what people want to spend money on that you are capable of making, and it lays out techniques you can use to get there. Steve Blank explains this in his book 'The Four Steps to the Epiphany'. You can also check out the more recent The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses. If you get a chance to hear Steve or Eric Ries speak, take it.
Starting your own business as an iPhone app publisher means you've got to deal with a bunch of legal and admin stuff. Whether you hire a lawyer or not, I recommend learning some of this stuff for yourself, how else can you be in-charge of your own business? For those of us in the USA, Nolo is here to help. A few of their excellent books to check out include 'Legal Guide to Web & Software Development', 'The Small Business Start-Up Kit', and 'Consultant & Independent Contractor Agreements'.
I'll leave you with one final book recommendation which can serve you well in life generally, and especially well if you take on some iPhone app consulting / contracting work! 'Bargaining for Advantage' by G Richard Shell is a great and easy read that will explain what master negotiators do, will help you defend against getting bullied in negotiations, and will help give you the confidence to find agreements that work for you - including decent contracting terms and rates.
Here we look at how to use @2x graphics file to draw for the iPhone 4 high resolution retina display, explore how to use the new scale property to determine at run time which resolution to use, and how this works for an iPhone app running on the iPad.Read More
I got a new MacBook pro with high res display and a solid state drive and for iPhone development. For development tasks the new machine is 2-3 times faster than the old one, and it has enough screen space to comfortably run Xcode and the simulator side by side...Read More
I'm about to outline the single most powerful thing you can do to improve sales/downloads of your iPhone app. I know this is a bold claim, but read on and I will justify it. I first presented this at 360iDev San Jose 2010. Apple made us an amazing market for our software and threw in a fantastic distribution & sales platform. All that for just 30% of receipts, which IMHO, is an incredibly good deal for developers. But the app store doesn't help anyone find your app right? Wrong! The app store is a catalog of ads for iPhone apps, and millions of people are browsing through those ads - especially the top 100 lists. These browsing people are primed and ready to download, you just have to make them notice your 'ad' among the 200,000 others. When people are looking in the app store they are scrolling through a table of app listings. It doesn't matter if they are checking out the top 100 games or they searched for 'gardening', everything in the app store is shown as a list of apps. The listing shows: icon; app name; price; star rating, company name. Get someone to notice your listing, and they will tap through to your app's page. There they see the screen shot and maybe download your app, but that can't happen until they've tapped on your listing in the first place. The key then, is to get them to tap on your listing. To make the very best performing app listing you need to carefully select the best icon and the best app name. How do you know what will be the best performing, and what do I even mean by best performing anyway?
If you study how to be successful advertising on Google, or you learn about AARRR metrics for online business, you will discover that a key metric for online ads is is the Click Through Rate. CTR = clicks / impressions. (Clicks: number of times it was clicked on by people; impressions: number of times the ad was seen by people.) Better CTR means a better performing ad. Study this or try it yourself, and you'll soon find that no-one makes money on Google by writing an ad, paying for the clicks, and sitting back while money pours in through their web-site. This is because it nearly always cost more for the ads than you can make back by selling your stuff! To make money you need to test several ads, figure out which is the best performing, take that 'winner' and make more variations to test. Keep repeating this until you have discovered one that performs well enough so that it is cost effective to pay Google a bunch of money to run the ad in large volume. iPhone app developers should use this same approach to figure out the best performing app listing: change name or icon, measure, compare, repeat.
OK, so how do you measure CTR of your app listing? You need to know impressions and clicks. But you don't know these, only Apple knows how many times your app listing was shown and how many times people tapped on it (assuming even they are tracking this stuff). Hmmm... What we need is a way to test our app listing outside of the app store. It turns out there is something almost as good and extremely affordable: Admob. Below on the left is an app store listing for one of our old apps 'Smart Caller'. On the right is an Admob ad in an iPhone app. Consider the content, structure, and context - they are very similar. So what I'm saying is that you can use Admob ads to test different icons and different app names for your app, to figure out the very best performing app name and icon for your app in the app store.
You can run an Admob mobile banner ad campaign for as little as $50, which will buy you 1000+ clicks (click prices vary by geography and demand). You might have a CTR of 1-2%, so that $50 is buying you 50,000+ impressions. This means you can test your icon or app name by sampling it 50,000+ times (which probably translates to almost 50,000 different people) all in a day. Survey 50,000 people in one day for just $50 to see which icon or which app name most catches peoples attention? Wow, if that doesn't blow your mind then you'd better leave your app marketing to someone else. You can even test several ads at once in one $50 campaign, though you might have to baby sit it a little in order to get even testing of each. Now repeat a few times and you can find an app name and icon that performs much better than the ones you started with, all this for around $200 and a few hours work.
OK, here's some proof for you of just how powerful the app icon and app name is. The graph below is real download data for one of our free apps. I won't explain all the in & outs of the various name and icon changes the app has been through here, but you can see from the graph what a huge effect changing the name and icon had on downloads. Each blue line marks where we changed name or icon, and the red line is the daily download rate. (Of course when you do this, you are trying to increase downloads, and you can see that we decreased downloads... but exactly what happened there is for another blog post!) For this app, we saw 20x difference in download rate for the best app listing vs the worst. Wow. Now in testing via Admob you won't see such a huge difference in CTR, because live in the app store, a better CTR for your app listing has a leveraging effect. Double your CTR and you double downloads. Doubling downloads will increase your rankings a whole lot, and with increased rankings more people will see your app (more impressions), which leads to even more downloads. Your app listing CTR has massive leveraging power, which I'll discuss more in a later blog post.
Often when app publishers (especially indie developers) look at paid promotions like Admob ads, it's not clear if it's money well spent because of the question of how many actual downloads you will get for your money. It can cost a lot per download (Admob does have a way to measure downloads per impression and per $ spent, which is very neat). For example, one campaign we ran ended up costing us $2.50 per download for a free app, which was not a cost effective way of acquiring users for that app. Figuring the download rate (aka conversion rate) for your ad is a more sophisticated way to measure how 'good' the ad is, and you should try to measure conversion rate if you are using ads to acquire users / makes sales. But here I'm not talking about acquiring users, I'm talking about A/B testing your app name and icon, and for that, your $200 might well be the best money you'll ever spend.
Why do I claim this is 'the best' thing you can do? Consider your sales funnel. Below is the sales funnel for a free apps that doesn't have a bunch of PR, blog reviews etc. Its downloads come only from people finding it in the app store. To get people out the bottom of the funnel where you actually get paid, you need people to enter in at the top and keep moving down the funnel. To improve the conversion rate at which people will move down from one level to the next, you have to do more work and spend more money. All the conversion rates multiply together to result in the overall conversion rate of your sales funnel, so you can double your overall conversion rate by doubling conversions at any one of the stages. Improving how much people love to use your app (app use stage, or activation and retention in AARRR metrics) is probably quite hard and expensive, but improving how many people click on your app listing in the first place (acquisition) is quite easy and cheap by doing what I just described. Then on top of how cheap this is to do, add in the leveraging effect your app listing CTR can have and I hope you can see the potential here.
You can and should test your app name before you release your app, but you can also do it for an app that's been out for ages. Got an app sitting there not selling? Experiment with different names and icons and find something that performs better for you. In our experience, existing users won't mind you changing name & icon, but do consider changing only one at one time unless you go for a full rebranding, in which case just tell existing users what you are doing.
Would you like to de-risk your entire app making business by using this technique? Do app name testing before you ever write a line of code or design a single pixel. Are you an iPhone game developer? I bet you have many ideas for different games, but you're not sure which one to invest the time and money to develop? Use ads to test several concepts, and build the one with the best click through rate. By doing this you'll be pre-picking the one that has the best chance of being noticed by people and rising up the app store charts. Up-front market research like this is part of what the customer development & lean startup approach is all about - testing your idea as early as you can.
When you try this watch the CTRs for your ads and see if they change over time. When the ads first run, CTR tends to show higher in the reports than it will end up. As time goes on CTRs drop. Then leave it a few days and you'll sometimes see CTRs rise again (even once the ad campaign has finished). I think it's just differences in timing of how the click data and impressions data gets reported. I also suspect there's an effect because of 'ad-click jockeys', users who really like clicking ads to see what new apps are out there, so these people click on new ads as soon as they see them. If this is happening its just fine, because click jockeys are the same people who are going to push your app up in the charts. So do keep an eye on the CTRs, and check back after a few days to see how the numbers settle.
I'd love to hear from anyone else who's doing this kind of stuff with their mobile app business, and if I've inspired you to try it, let me know how it works out for you. Comment below or email markj at markj dot net. I'd love it if you could share the CTRs you get for different kinds of apps and the ranges you find between best and worst performing in order to develop some benchmarks for evaluating app ideas. I'll be writing more on these topics myself, so please consider subscribing to this blog. Below are some references to the people I learned these techniques from, I encourage you to go read their blogs, books, and hear them speak if you can.
Steve Blank: developed the 'Customer Development' approach to the startup business, which my iPhone business is based on.
Eric Ries: was Steve's student, and went on to pioneer customer development for online businesses in combination with agile engineering practices, resulting in the 'Lean Startup' movement.
Dave McClure: has fantastic work on metrics for online businesses and understanding your sales funnels, a lot of which applies well to the app store. AARRR!
Sean Ellis: Lots more great advice on startups and marketing.
Al Ries and Jack Trout: their book 'Positioning - The Battle for your Mind' explains the challenges in communicating with your customer, and sets the background for just why your app name is so powerful if you get it right.
Perry Marshal: great material on understanding online advertising with Google (and by proxy Admob etc).
Glenn Livingston: teaches online marketing, emotional marketing, and understanding customers (which is at the heart of whole customer development approach).
Neil Young: At iPhone and game conferences, Neil stands up and lays out ngmoco's strategy to us. (And I started on a ZX Spectrum too!)
Dave Wooldridge: The Business of iPhone App Development a great practical marketing book for iPhone devs. (Which I was the tech reviewer for.)
Are you going to 360 iDev San Jose in April? Its by far the best iPhone developers conference I know of. It will be packed with iPhone insider knowledge and will be totally fun. At $599 for 4 days with 40 sessions and a killer $99 hotel package its amazing value...Read More
Lately I’ve been experimenting with promoting out app 'Friend Focus (for Facebook)' by ‘turning out the vote’ - ie getting our existing users to help us promote Focus. Once I’ve found a formula that works well we’ll implement the scheme in app and figure out a way to reward users for helping us, but for now I’ve been using house ads. House ads are our own ads placed in our app using the ad network we’re integrated with. Admob in this case. This is a great way to try out ad copy and experiment with different promotions because its all done with no code updates to our app, all I have to make is a simple HTML landing page for each ad. A recent campaign we’ve been running is ‘Tweet your support for Focus’, which asks people to tweet saying that Focus is great:
Naturally the tweet has to be pre-filled, which lets me use a bit.ly link so I can track the effectiveness of the campaign. A ‘tweet me’ link is pretty easy on the web, but this is on people’s iphone. Twitter users with lots of followers (ie the people we want to tweet) aren’t using the twitter website on their iPhone, they’re using a twitter app, of which there are many to choose from! So how do we turn a click on my ad into a pre-filled tweet right inside someone’s pre-logged in twitter app of choice? The solution is to use custom URL schemes. Several iPhone twitter apps have custom url schemes that allow you to launch them and pre-fill a tweet using their custom url. This works just as well from the landing page of an admob, in code in a native app, in a web page in mobile safari, or a link in an email.
Tweet Focus Support
How to debug memory crashes in your iPhone app using Instruments and NSZombie. If your app is crashing with 'BAD ACCESS' its because your retains and releases are screwed up and you are calling a method on an object you already deleted. This is the easiest technique to figure the problem out.Read More
Focus for Facebook is a new free iPhone app that streamlines facebook while you're on-the-go. It features an app spam filter to automatically filter out posts from games and quizes, and it shows your facebook in a compact view so you can quickly scan through new post & comments to see what you want to read, and then 'mark all as read' when you're done.Read More
If an exception is thrown when debugging an iPhone app, without your own exception handling code, that exception won't stop the debugger until the call stack has totally unwound. On that journey through the call stack it gets caught and disguarded in the event loop. That's a bummer because then the debugger can't show you where original exception was raised. This problem is easy to fix by adding a symbolic breakpoint for the runtime's objc_exception_throw function, which is called as soon as the exception occurs. Here's how: 1) Run the app in the debugger. There's an exception we can see in the debugger console:
2) Open the debugger from XCode menu Run->Debugger. The stack we can see where the debugger paused is the useless stack where the event loop code caught the exception and then bombed out with its own exception.
3) From XCode menu Run->Manage Breakpoints -> Add symbolic breakpoint we add 'objc_exception_throw'
4) Now when we debug run again, the debugger stops as soon as the oringinal exception was thrown, we can see exactly where, and we can poke around an inspect variables etc.
This article is a screen cast video of my tutorial for beginner iPhone programmers, it's about the basics of memory management in Objective-C. Memory management is a tough nut for the beginner to crack, particularly in Objective-C and Cocoa for iPhone. Check out my iPhone memory management reading list for more voices on memory management. The tutorial covers: Objective-C object retain counts; using retain, release, and autorelease; explains the autorelease pool in detail and how it works with the event loop; rule of thumb for if an object is in the autorelase pool.
Part 1: retain counts
Part 2: auto-release pool and the event loop
Part 3: auto-release pool and the event loop with retain
Part 4: auto-release pool wrap up
Part 5: properties, dealloc, bugs, auto-release rule of thumb
Thanks for watching!
It's a topic that can be explained several different ways, so keep reading and experimenting till it clicks for you.
... Books Learn Objective-C on the Mac Cocoa Programming for Mac Programming in Objective-C Online Practical Memory Management from Apple Memory Management Guide from Apple Dr Dobbs Mac Developer Tips Memo.tv mauvilasoftware.com Stepwise.com Tristan O'Tierney Mac Developer Network Video O'Reilly and here Cocoa Dev Central Cocoa Dev HyperJeff's list of resources WikiBooks Devplace Woojijuice Peter DikantRead More
Hit Tennis has been out for six months now, and here I share sales figures for those six months. Recently sales have been in decline, but I managed to boost sales over the last month with a variety of marketing tactics: price drop to 99c, release date trick, translation into French, hitting the top 100 paid games...Read More
Custom UIs on the iPhone are made from UIView containing subviews, I ran across a problem where the subviews were being draw with an annoying blur. Here's what was happening and how to fix it...Read More
AppViz charts all your app store sales reports for you, and for a huge time saving it logs in to iTunes Connect for you and downloads them automatically. An added bonus (assuming you can stomach reading them) is that AppViz will download all your app reviews too! AppViz charts new downloads, upgrade downloads, all downloads, and sales revenue. Graphs can be plotted by different date ranges and for different countries, and it converts everything to your own currency. AppViz doesn't currently support multiple iTunes Connect accounts, but there are work-arounds and the feature will be added soon. I'd like to see it handle the financial reports a bit differently to make it easier to reconcile with payments from Apple. Highly recommended.
AppSales Mobile is similar to AppViz, but its for your iPhone! AppSales source code is in Google Code right now, download with SVN and pop it on your phone with a debug build. Great distribution model for us developers! It's a fantastically designed app, squeezing lots of charts onto the phone without anything ever look squeezed. Charts and reports show daily or weekly sales revenue with drill down by product or country. AppSales does have one big drawback, it is oriented around revenue from paid apps. It will show download number for free apps mixed in with the overall report data, but it doesn't include downloads in the line graphs, they are revenue only. (Back in the day I used to use AppSales for the mac, but it's no longer being distributed or updated.)
My App Sales is another sales stats checker for your iPhone, but unlike AppSales it reports and charts both free and paid apps. Reports are broken down by day and week, with your account totals and app by app too, showing new downloads, update downloads, refunds, and sales revenue for paid apps. From the reports screen you can drill down to see that data country by country. The app will chart your data by sales revenue or downloads by day or week. My App Sales is the work of Oliver Drobnik, and he's still maintaining and actively marketing the app.
MajicRank and AppRanking scan iTunes servers and figure out apps ranking in iTunes stores around the world. As well as top 100 free and top 100 paid, the app stores have top 100 free and paid for each app category and game sub category, all of which can be browsed on the app store available on the iPhone and Touch themselves. I was very surprised to learn that Hit Tennis is in the top 100 paid sports games even in many countries including the USA, and its even in the top 100 paid games in a few countries around the world. This is really encouraging, and moves up the next release of Hit Tennis in my priorities. MajicRank is the first of the sales stats tools to record ranking data over time and graph it. Graphing ranking data alongside sales data and your calendar of marketing actions is very powerful for understanding how to tune your marketing plans to make the most from your apps. If you're not sure about what all the different ranking lists are, read: app store top 100 rankings explained.
Mobclix shows app rankings on their site, with graphs. They are charting top 100 popularity free and paid combined, for the USA app store (so their numbers won't match MajicRank's numbers). Go Imangi!
AppStore Clerk is a simple utility that parses daily and weekly download reports and shows you the data in an easy to read table, showing new downloads and updates.
Heartbeat is a fully featured subscription website that features everything in all the tools above mixed with crash reporting, analytics, and a whole lot more. When I sell my millionth app I'll try it :-).
AppStatz is another online solution to check out, though it's still in private beta. (thanks @shanev). AppStatz - let me in your beta :-)
Drop me a line and tell me about the tools you use.
PhoneFinger and SimFinger are handy tools for making demos of iPhone apps using the simulator with screen capture software...Read More