Java uses packages to organize classes and interfaces. Xcode (Apple’s Objective-C IDE) uses groups to store references to individual files.
A Java package provides unique namespaces for the stuff in it. This helps with controlling scope of names for large projects. A Java class library is a set of packages. You can include two difference libraries that both include a class named “foo” without a conflict.
A XCode Group is tricky because they are only references, not the files themselves. Just as symbolic links in Unix can be very useful, they can also be very confusing. They are powerful because they can simplify path naming. They are also dangerous if you start moving files around. Note: Adding a new file into a folder will not automatically add it to the group in Xcode; you will need to manually added it.