These are programming questions, not chess questions.
How hard would this be to program?
Well, it depends how far you want to go with this. The basic app seems easy enough, but the online part could turn out to be very difficult. A (good) engine would be practically impossible to create by yourself.
As of right now, I am planning on using the Stockfish open source chess engine and then adding to it. Is this a good engine to use?
You tell me: http://www.computerchess.org.uk/ccrl/4040/. Stockfish is designed for normal chess. All of its position evaluation variables have been tuned to perfection. Adding new pieces completely changes the dynamics of the game, it's not like you can just tell it how the new pieces move and expect it to perform at the same 3000 level.
I just started learning C++ and then I will go to objective-C once i understand it well.
Don't go running a marathon before you can walk. I suggest trying to first code the basic app, with two players sharing the same device.
I want to program a chess app with twelve new pieces in objective-C. The way it works is when you press play, you can select how many of the pieces you want to play with. As of right now its up to 6. The opponent uses the exact same number of new pieces obviously. Before you start you take turns swapping your new pieces with pawns. You have the option to decide if you want your opponent to be able to use the same piece as you. So theoretically, it adds up to 12 new different pieces in one game. How hard would this be to program?
As of right now, I am planning on using the Stockfish open source chess engine and then adding to it. Is this a good engine to use?
This is a completely different question, but I also want the app to be able to play others online. I'm not sure how to go about doing this...do I need to buy or create a server?
I just started learning C++ and then I will go to objective-C once i understand it well. Time is not an issue, I don't have a job and i have well over a year to figure this all out.