How can I know the transaction size in advance? It cant be too big then.
Your client knows the transaction size in advance because that is the data that you submit to the network. For a normal type transaction, there is an overhead of 10 bytes, plus 179 bytes for each input to the transaction, plus 34 bytes for each output. It's possible to make a transaction with only 1 output, but at least 2 outputs is more common, I think. If you want change, you need at least 1 output to one of your own addresses.
The bitcoin protocol always spends a previous TXO completely. So if you don't send the remainder to one of your own addresses, it will be taken by the miner as a fee. This is also how you set the amount of fee you want to pay.
I've read that the fastest transaction speed is 2bits/byte and the average transaction is 226 bytes.
People use an unnecessary profusion of units. a "bit" is just a µBTC.
I'va also read that 0.00000001 BTC is charged per byte. Does this mean that 0.00000226 BTC will be my charge per transaction, or around 1 cent for the top speed transaction?
I think currently you may need to use
higher fees. 0.0004 BTC is more like it.