There are many forms of Interprocess Communication (IPC) on Android and the goal of this talk is to explore the reasons for each form and the best usages of them. This includes Intents, Broadcasts, Services, ContentProviders, Binders, and RemoteViews. We'll talk about implementing private APIs between multiple apps from the same developer, or public APIs for third party apps to use. We'll also talk about interacting with the system, for things like appwidgets. We'll also talk about some specific usages for IPC in Nova Launcher, including how launchers, and Nova in particular, handles AppWidgets and how Nova handles APIs between it's license key, TeslaUnread and third party apps.