A collection of official Android documentation that I wrote while employed at Google, with editorial tweaks from the amazing tech writers I worked with! Includes build and project structure overviews and details on dependency resolution and maintenance. Read on for the links! Good stuff!
I've been teaching an Android class for Johns Hopkins University since 2012. It's gone through many iterations over time, from development environments to languages to UI frameworks. Most days I wish I just taught math. Math doesn't change like this every year. Read on for the current and legacy content links.
A Java Users Group talk from July 2013 I presented on new features in JCode Generation with xText and xTend. We'll use xText to create a custom language by specifying a grammar, read the content into a model, and generate code using xTend!
A Java Users Group talk I presented on enumerations in Java. I cover: The old "type-safe enumeration pattern" Using enums for values Adding data and methods to enums Using enums for the Gang-of-Four State Pattern Using enums to emulate function pointers in Java EnumSet and EnumMap
I presented a talk on Java Annotations to the Columbia, Maryland Java Users Group on 1/19/2010. This is a very deep dive into Annotation Concepts Creating annotation processors Using annotations at compile time and runtime Generating code from annotations
There should never exist any language feature such that adding a new type to a referenced package can break your existing code. Import-on-demand (aka "start imports") is one such feature... And it's evil...
I'm really tired of hearing folks incorrectly state "primitives are passed by value, objects are passed by reference". So I'm gonna rant, and you're gonna listen...
Property editors are a way to make your bean more user-friendly. Bean builder tools can determine quite a lot about your bean just by looking at it and its corresponding BeanInfo class, but they usually have only very simple methods of editing the properties in the bean.
Accessors are a key ingredient to proper encapsulation. The can restrict access to only read/write data, inform other objects of changes to data, and perform validation on new values being set. Consistent accessor usage makes class modification easy and transparent.