I'm a Java programmer. All of my experience is on desktop applications, using Swing for the GUI. I spend a lot of time studying OOP, I have decent understanding of OO concepts and I design and program by the OO approach.
I'm thinking of starting to learn Android development soon, and I'm wondering how different it is from desktop development. Obviously the GUI libraries will be different (not Swing), but other than that, I want to know if there are significant differences.
I will divide this question to two parts:
Apart from the GUI libraries, am I still going to use the standard
Java libarary I'm used to? Aka same data structues, same utility
classes, etc.? If not, what are the main differences between the libraries I'm used to and the libraries I'll be using?
How different is Android development in regard to OO design? Are all
of the familiar principles, design patterns, techniques and best
pratices just as valid and used? Or is OOP and OOD in Android development
significantly different than OO in desktop development?
To summarize: apart from GUI design, how different is Java Android development than Java desktop development?