I usually work on an hourly basis because I feel it allows the project to change and grow as time goes on without having to renegotiating the project all the time. Almost always, projects grow in scope (at the clients request) from their initial conception. This is natural and very hard to account for fairly before the project even starts. That's said, I am open to fixed price projects if a client requires it.
Whether "fixed cost" or hourly, my costs are calculated based on a $75-$95/hr rate. If you already have a manager and just need me to work on coding assignments I charge $75. If you need me to also design/architect the "system", $85/hr, and if you need me to also manage other team members my rate is $95/hr.
My Android coding rate is $50/hr due to the fact that I only have about 2 years of experience with that stack.
For hourly work, I invoice weekly through FreshBooks which includes notes on each days activities. If the project is fixed cost, I can provide weekly status reports on the current progress and upcoming milestones.
For the past 15 years I have been exclusively working with clients remotely. I have my own office in Rockland, ME and have no problem staying on task and motivated. I'm happy communicating with clients however they are most comfortable including phone calls, email, Skype, etc. I like to also use tools like Assembla to track tasks, status and priorities so everyone on the project can see how things are going. Google docs is also great for remote collaboration and documentation.