For development for iMac and iPad, you can use Xcode for both. Types of projects will vary.
I would not worry about Java if you are working on Apple platforms. Use Objective-C instead.
For Mac desktops, you usually use the NSFoundation and Cocoa framework. For mobile devices, you will use the NSFoundation and UIKit framework. Note that base data types reuse the same structure (NSFoundation), but the scope for graphical interfaces is different. This means that you can create common code if you use only NSFoundation. But you cannot use the same code to work with graphical interfaces. This makes sense, as the graphical interfaces for the desktop and mobile devices are very different.
source
share