Pros
You will work with very smart people. Advance peek into some of the new technologies the world is raving about. Possible to stick to 9-5 working hours most of the time - productivity is achieved more through discipline than raw time.
Cons
Candidates beware - most Java development jobs at Apple are actually SRE jobs with 24/7 pager rotation, multiple conference calls on Thanksgiving and Christmas and management taking it for granted that you have to promptly answer phone calls every time of day or night. Now, production monitoring jobs obviously have their place and are necessary in every company. Generally speaking, those should be non-exempt positions that pay overtime and give time off for extra hours. In Apple, it is more like software engineers are expected to work an uncompensated second job with no recognition or benefits. But most importantly, a company must be as honest and upfront about the nature of each job as a candidate is expected to be about his/her skills. Instead both myself and candidates who were considered after me were actively misled about need to be on-call or spend months manually installing software rather than writing code. This is really a classless act for the worlds richest software company that takes pride in its image and could easily afford to hire extra people to do production support on sane terms. I should also add that Apple has the most dysfunctional internal transfer process I have seen in my life. I don't blame you if you still want to work on iOS after reading this review, but beware that you will NOT be able to take some other position and then transfer to iOS after building up internal creds. If you work for Apple, but have skills and desire to work on actual Apple products rather than backend, you must quit Apple first.