There is a project like [Trust Wallet][1] that's working on providing a mobile experience for dApps on Ethereum blockchain. It's available both on iOS and Android.

As a based you have a wallet for handling key securely locally on the phone, since you need to have a private key in order to communicate with a blockchain. 

Trust has a Browser feature which is injecting JavaScript web3 provider to handle sign transaction and messages.

To learn how this being implemented you can check out source code: https://github.com/TrustWallet/trust-wallet-ios


  [1]: https://trustwalletapp.com