You don't need Objective-C, but if you want to write any plugins that access the OS features (such as using mapkit), then you'll need it.
There isn't a whole lot of Unity support for OS features since you can pretty easily do it yourself. Touches work natively. There is no "keyboard" support, just text fields that call up the OS keyboard or can use an attached bluetooth keyboard (this is true even for native apps). Other than that you're pretty much on your own.
Projects are pretty portable. You can just wrap interop methods (how you access native code) with #if UNITY_IPHONE and they won't be compiled for android versions.