Typically no.
You can switch a switch via the internet, but you will have to setup port forwarding on your router. You will also require a static IP address or DDNS name. It is not recommended since the traffic is not encrypted and anyone would be able to control the switch.
Firstly the switches must be in DIY mode and secondly they must be connected to your Wi-Fi network.
Please refer to the Sonoff page for more detail: http://developers.sonoff.tech/sonoff-diy-mode-api-protocol.html
The switch could be offline or the IP address of the switch has changed. Please refer to assign a static IP...
You cannot assign a static IP address since the switch does not support it. The workaround for this is to bind the MAC address of the switch to an IP address. This setup can be done on the router and this will ensure that the switch will be issued with the same IP address every time. The outcome is the same as assigning a static IP address to a switch.
Note: If your switches are on version 3.5.0 of the firmware, you do not need to bind the MAC of the switch. You can simply re-scan and all switches with changed IPs will simply be updated.
No at present it is not supported by the app. Future versions might support it
mDNS is not implemented on some Android devices. This makes the switch inoperable if the device does not support a way to receive mDNS. A workaround (with limitations) using static IP addressees and polling, was created to be able to use Android devices not supporting mDNS.
At present no, although in theory the application can be compiled for iOS devices.
There could be several reasons, most likely the switch is out of the Wi-Fi range.
In general it is a good idea to upgrade to the latest stable version of the firmware.