Nobody here seems to like IOS....
Well, iOS is a closed system. The software to develop iOS applications is free. It costs $100 a year for the ability to upload an application to a real device. That application will then only work for 180 days, after which it will delete itself and any data that the application created.
To get an application onto the iOS device, and have it stay there, the application needs to be submitted to the Apple store. Said application must meet all of Apple's changing guidelines, and must run on all Apple devices.
This submit for approval to available for download process can take a year or more.
Then, there is the issue of actually getting data from the phone to external devices, or getting data from external devices to the phone. That requires proprietary cables.
If the communication is to be via bluetooth, there are a limited number of bluetooth devices that speak Apple's language.
It would be far simpler to develop a web based application, served by the Arduino, that any iOS device could display in a browser. Of course, this means that the Arduino needs to wear an Ethernet shield or a WiFi shield, and be in range of a router connected to an existing network.
The requirements that you have defined aren't all that clear.
The arduino is to learn IR codes on command (from the iOS app)
What is emitting the IR codes? Why does the phone need to tell the Arduino to learn the codes?
and be able to emit them on command (from the app).
One at a time? All at once? Or, will there be different commands from the app to cause it to emit different IR signals?