I am building an android app, and i have implemented what i believe to be a very good user interface/flow.
To upload a photo to our website there are 3 steps.
- You select the photo.
You enter a caption, and can click on the Twitter/Facebook buttons. Clicking these buttons goes through the various auth flows to allow us to post. Once this is completed the button is highlighted.
The photo is uploaded, and then if selected is posted to Facebook/Twitter. We have progress spinners etc to make this process visually clear.
Like this everything looks and works extremely well. The problem is customisation.
The status we post is essentially 'User x uploaded a photo to our app'. We then append any caption they might have added.
With Twitter we do the same except we cut the caption to fit under the 140 character limit.
My question is as to whether we should allow users to customise this text?
To do this requires modifying the UI to add some sort of 'Edit text' button - this I believe will degrade the experience and make things somewhat more complex.
The next consideration is the interfaces. Twitter and Facebook provide 'post' activities through their respective SDKs so we could implement it such that when the user clicks the Facebook button it goes to the Facebook app status posting screen and sets a default message.
Again I feel this degrades the experience because they have to click on Facebook, and post there.. then then have to click on Twitter and post there whereas what I have at the moment is all done inside the app and is very simple, consistent, and easy.
The other approach would then be to implement my own interfaces for changing the text but this is a little more effort.. making sure you can only enter 140 characters etc. There is also still the issue of an extra button to edit the text.. and extra thing to complicate things, and confuse users.
So.. what should I do? Should users be able to customise the statuses and tweets that they post from the app? and if so, what is the cleanest and clearest way to implement a user interface for it?