Smart Smartphone Case

Hi all, this will be the first project I'm attempting. Any and all help will be greatly appreciated.

I'd like to create an external casing for a smartphone that communicates with it using a wired connection. The case would have external buttons that in turn feed data to the phone to process.

For example if i were to have a pushbotton on the case, and when I press it I would like for it to open a specific app or function. What type of hardware is most suited for this? Would the arduino software be able to communicate with the android phone?

Secondly, are there any tips or tricks to hacking parts pulled from old electronics? I have a few parts scavenged that are self contained, but I don't know how to use them.

For example I have a LCD screen taken from an old digital camera. The screen unit is in good condition, but the bit at the end only connects to its original circuit board. Is there a way around this?

Thank you very much for your time.

Android or iOS?

For Android, the only wired connections you could use are micro-USB and the headphone jack.

USB would either require that your Arduino be a USB host (which is possible, but rather complicated), or that the smartphone support USB-On-The-Go (USB-OTG)

For the headphone jack, there is Android software out there that will allow a sort of audio modem communication with your Arduino. But, the headphone jack won't provide power, so your Arduino would require it's own battery (or use the USB port for power only).

For iOS, you may be able to do something fancy with that Lightning connector, but I don't know anything about that.

What type of hardware is most suited for this?

Well I'm assuming you don't want a big bulky case, so an ATmega32u4 (for USB-OTG) or MLF/TQFP ATmega328 (no USB) on a custom PCB would be my first choice.

Would the arduino software be able to communicate with the android phone?

Yes, though you will probably need to write your own Android app to act as a driver interface for the Arduino.

Secondly, are there any tips or tricks to hacking parts pulled from old electronic

You need to find a part number on the component you wish to harvest, then Google it along with Arduino as your search term to see if anyone has written code or a library for it. If they haven't, but you can find a datasheet, then you can write your own library. If you can't find a datasheet, it will be very difficult (nearly impossible) to reverse-engineer the protocols required.