I got the bitcoin right away ("on its way" to me). And it was
confirmed as I was typing this post.
Update with full reviewCompliments: Very clean, minimalist, simple interface. Very, very fast: so much better than a BitcoinJ-based client (no offense to the creators of BitcoinJ as their efforts are incredible, but this uses mobile phone resources much more effectively). I really like the QR code-based wallet export, too.
Negatives: Forces a .0005BTC fee for sending a transaction rather than intelligently deciding whether it's possible to send the requested amount without a fee. No address book. No way to connect to a different BCCAPI server in the app (if you want to run your own, I can see people using BitcoinJS and/or Electrum servers with a BCCAPI front-end in the future).
Differences that aren't necessarily negatives: No transaction history, just a balance. Single bitcoin address only.
All in all, it's very clean and beautiful and probably doesn't need anything more considering the primary use case (paying with/receiving bitcoins in person). I really, really like it. It acts like an actual cash wallet, not a bank account. You know your balance and you pay to the address given to you by the recipient/shop in person.
Thanks for the feedback.
Regarding the fee: This is a limitation of the server implementation and not the App as such, or in other words my fault. You are right that you can deduce the minimal fee, which is some cases is zero, by among others looking at the age of your inputs. Etotheipi started a thread on this here:
https://bitcointalksearch.org/topic/transaction-fee-clarifications-51081For now I have chosen a conservative approach where the fee is 0.0005 * (1+int(transactionSizeinBytes/1000)). I will be looking into optimizing this going forward.
The paramount thing to note here is that it is critical that the fee calculation is not too low, as you may risk the transaction is not propagated through the network or accepted by a miner. In scenarios where you manage your own block chain and end up with a transaction that got stuck you can basically delete the block chain, keep your wallet keys and load it anew, and finally make a new transaction with a larger fee. With the BCCAPI I cannot do this as I don't have a separate block chain per wallet, and don't want to spend the processing power to scan it anew whenever some poor guy sent out a transaction with a zero fee. In the end I would like this to be simple and safe to use.
No address book: This feature is an App feature and independent of the BCCAPI. It may be a good thing to add to the App going forward, but I guess that it depends on the use-case. If we want it to look like your ordinary wallet, then you do not have an address book or a transaction log for that matter. Whenever you pay you grab the money and pass it on to whoever you are trading with. However, the reason why I don't have an address book and transaction log for my ordinary wallet is that the first doesn't make sense and the latter is very cumbersome to manage. With a Bitcoin wallet this is both feasible and practically manageable. As for the transaction list the BCCAPI already has this functionality. It just needs to go into the App. I'll pass this onto the developer at Miracle and see what he thinks.
In the end the goal with the App is to be simple and easy for anyone to absorb, so maybe transaction logs and address books is something that could go into a Pro version?