Sorry if this is the wrong subforum, I'm not quite sure which this belongs in. Suppose I want to make a service that allows users to spend a crypto from their phones on a service that I provide. The service uses user data sent from their phone (pictures, text, etc).
Can you please be more specific on how this service works? I didn't understand you correctly. I might be able to make my answer better if you can give more details.
This crypto does not have a lightwallet, implementing one is impossible,
Why is it "impossible"?
and the full wallet is too heavy for an android device to reasonably handle.
Right.
Is my only option to implement a server-side wallet service?
I don't know why implementing an SPV client is impossible. If that is true, then online wallet is your best choice if you know what you are doing. Else, I suggest you to create a block explorer and allow API requests. Then, you can create a simple app which uses this API. You can do that in four steps:
• Fetch unspent.
• Create raw transaction.
• Sign raw transaction.
• Push signed raw transaction.
If so, what are the best practices for handling client funds? I'm thinking that I'd need to implement a server-side database with a record of funds owned by each account, and then distribute/use funds from the server wallet accordingly?
Any advice appreciated.
A ledger is important if you are creating an online wallet. You should backup this ledger and all private keys or wallet.dat either twice every 24 hours or when users create x addresses.
I highly recommend you not to keep everything in the hot wallet unless your security is good enough. I would also suggest to enable off-chain transactions but remember, this will make your part more complex.