I'm sure every designer has its weapon of choice but what is it in your case? If you're working with an app developer what are the deliverables? How do you manage revisions?<p>I know, there are a lot of questions but I would really appreciate your feedback!
Used to recommend just paper, but these days my favorite is <a href="http://popapp.in" rel="nofollow">http://popapp.in</a> - basically you sketch app screens on paper, snap photo of each page and then stitch them together. it's not going to help with process but is a great way to nail down an idea
Well you could use the usual Photoshop, illustrator .... But also check PaintCode it's a mac only app that helps create vector based UI (in objective-c) for iOs only.<p>Love to have something similar for Android (no sencha) 'cause the UI for android can be a serious pain.<p>Basically PaintCode can import svg and photoshop layers and convert them into objective c code. Which can be easily reused, and reconfigured for any new resolution that may come out.<p>It's not perfect but it's pretty neat <a href="http://www.paintcodeapp.com/" rel="nofollow">http://www.paintcodeapp.com/</a>
I have become a quite a fan of <a href="http://www.bohemiancoding.com/sketch/" rel="nofollow">http://www.bohemiancoding.com/sketch/</a>. It's more or less a cleaner and updated version of Fireworks which Adobe has left to rot.
Inkscape for vector files and Gimp for all other stuff. I create all my own graphics and it looks very acceptable. For repetitive work I use scripts, command line programs via MacPorts, or put together my own from Automater.
I use photoshop. I don't manage revisions effectively for PSDs. It hasn't been a concern for me in the past but if there was an easy way I'd probably use it.