Nearly a month has passed since I dipped my toes into the Java world of Android. I won’t go so far as to say the waters have been stagnant. The water isn’t something I’d drink from heartily without some kind of filtering process performed on it first though.
Some interesting things I’ve encountered.
- For a lot of the operations I need to perform within my Android application, I need to wrap things in try-catch blocks. Sometimes I need to overcome the need to actually nest these blocks within one another. That’s rare, but needing try-catch is required when doing some networking operations and the like. I won’t say this sucks, because it’s very verbose and fairly easy to read when coding these operations up. It does make for lengthy code – and Android Studio does provide a structure view which makes things a little easier. However I end up doing a lot of Find operations to see where those blocks were.
- Listeners are normally in blocks of code and not exposed methods on their own – which is fine – but it makes finding them more difficult for sure. Android for me seems to involve a lot more code to do similar things that I’d do for iOS. A lot more code.
- Threading. It’s something I’ve only ever had to marginally approach when authoring Cocoa Touch applications. That stuff “just works” most of the time. For Android, I’m finding the need to thread almost everything and then get things back into UI scope. A pain in the ass for sure. I need to pass Context to support Classes so they can call back to the Activity that spawned the instance(s). It all feels dirty, and fragile, and pedestrian. I’d think by now if an application needs threading somewhere to prevent the device from skipping frames all over the place, the compiler or runtime could just handle it in a smart fashion.
- Build gradles. At first I hated them as they were these alien files sprinkled throughout my project. I get them now. But I still don’t like them. It makes everything feel much more fragile than it should.
- Android Studio. It’s a decent IDE I suppose. I’m not a big fan of Eclipse and how it works, but I guess it’s been okay for Android development. And it’s still in beta – I am running Beta 0.8.9. It’s been pretty stable. I used to have to restart with previous versions to get things working at times – but I haven’t had to do that with the current Beta. Yet.
- If I need to update my Java (for an SAP client or something else), I feel myself pucker up in my seat. If something goes wrong, it’s such a spaghetti situation that I fear I may not be able to fix it again. So many things in delicate places under the hood. Trying to fix the Millennium Falcon’s warp drive using a toothpick and a manual in another language. I pray everything always remains water-tight.
In general I’ve picked up Android and Java for Android in a respectable manner. Development has gone a little better than I hoped. It’s taken me longer for some things as I would have liked, but I am still discovering things about Java and the Android development style. It reminds me a little of Flex. Does anyone remember Flex?