Okay so in short there are a few different ways to achieve what you're trying to do here, all and each offering their own pros and cons. So first off, you could go 100% hardware end driven and build yourself a camera that simply outputs what it sees to a webserver local to the device. Pop a WebView in your app, connect and you're golden.
Dowsides:
- Your camera is now a public device rather than an iOS locked device (if that's what you're looking for)
- You will have to most likely be connected to a network unless the camera has it's own DHCP server as well; which complicates things slightly further.
The next option you could go for comprises of creating a camera that will only connect to the desired device via a handshake of sorts, and yes for this method you will need Apples external accessory framework. In the way of hardware support, you're probably not going to do it with an Arduino, Raspberry Pi is feasible, but then you'll have to accommodate all that Apple standard nightmare rubbish!
In my opinion, I would go with the webserver approach and call so java etc to ensure the device you're connecting to, is of the correct type / formfactor. If you have a raspberry pi and picamera you can use this Git, my personal experience with it was good & i stripped down some of the code to make it work with a quadcopter project. It's here: https://github.com/ccrisan/motionPie