AnDevCon II schedule

Sunday 6th November 2011

  • Android for .NET/C# Developers Using MonoDroid

    by Wallace B. McClure

    Calling all .NET developers! This workshop will introduce you to writing native applications geared for the Android Platform based on .NET/C#/Mono. We’ll examine the overall architecture of MonoDroid, discuss how it integrates with Visual Studio, debug with MonoDroid, and look at a couple of example apps written with MonoDroid.

    This session is for the .NET developer that wants to move to Android. While the session will be introductory for the Android platform, it will be advanced for those on the .NET Platform.

    Native Android development is predominantly with the Java Language based on the Dalvik Java virtual machine using the Eclipse IDE. But if you or your company have already made a significant investment in .NET, the time to learn Java and Android is significant. Fortunately, there’s another way! You’ll be able to take your existing knowledge of .NET/C# and Visual Studio and immediately apply this to writing apps for Android using the Novell MonoDroid plugin.

    At 9:00am to 5:00pm, Sunday 6th November

  • Easy Mobile: Making Your Application Easier to Use

    by Jason Mark

    This hands-on workshop will consist of critiques and walkthroughs of your applications with an eye to making them easier to use. We will do some user testing and bounce ideas off each other. We will hack up screens and look for ways to better meet your goals. Our goal is to make sure that everyone leaves this workshop with at least 1-3 usability improvements made to their application, and a list of 2-3 other things that can be done.

    At 9:00am to 12:30pm, Sunday 6th November

    Coverage slide deck

  • Embedded Android Workshop

    by Karim Yaghmour

    While Android has been created for mobile devices -- phones first and now tablets -- it can, nonetheless, be used as the basis of any touch-screen system, whether it be mobile or not. Essentially, Android is a custom-built embedded Linux distribution with a very elaborate and rich set of user-space abstractions, APIs, services and virtual machine.

    This one-day workshop is aimed at embedded developers wanting to build touch-based embedded systems using Android. It will cover Android from the ground up, enabling developers to get a firm hold on the components that make up Android and how they need to be adapted to an embedded system.

    Specifically, we will start by introducing Android's overall architecture and then proceed to peel Android's layer one-by-one. First, we will cover the Android Open Source Project (AOSP), the open-source project under which Android's source code is released. We will then dig into the native Android userspace, Android's power tools, and cover how hardware support is implemented in Android. Given that Android is built on top of Linux, we will also go over some embedded Linux tricks and see how the kernel is modified to support the Android user-space. In addition, we will look at the System Server, the Android Framework and core Android applications, and how to customize them.

    At 9:00am to 5:00pm, Sunday 6th November

  • Hands-On Android Tablet Programming

    by Donn Felker

    Come to this hands-on-lab to be introduced to Android tablet development. We'll build out a simple android application, which showcases features of the new Android Tablet APIs. First, we will cover a short synopsis of what is new in Android Tablet development and then we will dive right in, creating an application which allows users to utilize the action bar, fragments, emulator and more. You will build an app that works on small screen devices, as well as large screen devices. We'll briefly touch on the new Android widgets, RoboGuice integration and internationalization.

    At 9:00am to 5:00pm, Sunday 6th November

  • TyphonRT - A Quake 3 Class Engine for OpenGL/ES Running on J2SE and Android

    by Michael Leahy and Robert Green

    TyphonRT is a middleware SDK that spans J2SE and Android. This workshop will teach you how to create a simple 2D game and then a Quake 3 class 3D engine called Auriga3D using TyphonRT. In addition, many pertinent game development topics will be explained with the goal of your building and understanding of non-trivial BSP-based engine by example.

    At 9:00am to 5:00pm, Sunday 6th November

  • Visage Android Hands-on Lab

    by Stephen Chin

    Visage is a domain-specific language for writing UIs that deploys to native code on Android devices. It excels at rapid application design, reducing the amount of boilerplate you have to write to create great looking UIs.

    In this lab, you will have an opportunity to write Visage applications that deploy to and run on Android mobile devices. To participate in this session you will need a laptop running Windows, Mac OS X, or Linux. We will distribute a VirtualBox install and image via thumb drives, letting you get up and running very quickly with no reliance on the conference network.

    At 9:00am to 12:30pm, Sunday 6th November

  • Pretty Mobile: Making Your Application Look Sexy

    by Jason Mark

    If you ever find yourself making graphical decisions on your application, this session is for you. This hands-on workshop will consist of critiques and walkthroughs of your applications with an eye to making them look amazing. We will open up Photoshop and hack up screens and try new things.

    We will look at best practice applications and give some tips on how to get there. Our goal is to make sure that everyone leaves this workshop with a list of design improvements that you can make to your own applications — and a list of other things to be done as well. We can't make you a designer in one workshop, but we can help you with that next step up.

    At 1:30pm to 5:00pm, Sunday 6th November

    Coverage slide deck

  • Testing Android Apps – Going from Zero to Hero

    by Manfred Moser

    Go from your first unit test to a continuous integration server build! This two-part class will introduce you to reasons for automating the testing of your applications and then go on to show you how it can be done. You will learn about unit tests of plain Java classes running on the JVM.

    After learning the difference of code running on the JVM and the Dalvik VM and the associated Android stack, you will see how to write integration (or instrumentation) tests with the features supplied by the Android SDK. After that you will see how Robotium builds on top of that and how Robolectric takes a completely different approach by running on JVM with mocked classes instead. Comparing and combining the approaches, we will finally get it all running on the continuous integration server Hudson.

    At 1:30pm to 5:00pm, Sunday 6th November

  • Android Mobility: The View from Motorola

    by Ruth Hennigar

    At 5:15pm to 6:15pm, Sunday 6th November

Monday 7th November 2011

  • Breakfast: Mobile Advertising That Pays

    by Brian Long and John Hotovy

    How 19-year-old Android Developer John Hotovy increased revenue by 8X and Kept His App Free with Signup Ads by Pontiflex AppLeads

    While enjoying your breakfast, you’ll hear an app monetization success story from a top rated Android app developer. Learn how John Hotovy, maker of the popular app, TuneMe, used mobile signup ads to provide a respectful user experience and make $50+ CPMs. With the extra revenue, he was able to keep his app free and increase the number of downloads in the Android Market.

    At 7:30am to 8:30am, Monday 7th November

  • Welcome Notes

    by Alan Zeichick

    Introduction delivered by Conference Chairman, Alan Zeichick

    At 8:30am to 8:45am, Monday 7th November

  • Keynote: Developing Consumer Apps in a Really, Really Big Company

    by Andrew Peret and David Baldie

    At 8:45am to 9:45am, Monday 7th November

  • Android Fundamentals: What I Wish I Knew When I Started!

    by Chris Haseman

    This introductory class is for relative beginners – that is, experienced programmers who have little or no experience with Android. Before you attend this session, you will be expected to have already installed the SDK, done a Hello-world tutorial, and have a basic knowledge of the building blocks of both Java and those that comprise Android: Activities, Intents, Services, Content Providers, Broadcast Receivers, Views and the Manifest.

    In this case, we’ll present simple application development best practices as well as design patterns to avoid. Here are a few we’ll cover:

    • Activities are not applications. This is important for several reasons, but it’s an oft-made beginner mistake.
    • The UI thread and when you should stay away from it.
    • How to deal with many screen resolutions (Hint: NEVER use an AbsoluteLayout).
    • Critical differences between Android and other mobile platforms.

    New to Android? This class will make you feel right at home.

    At 10:00am to 11:15am, Monday 7th November

  • Creating an Easy-To-Use Modular Framework

    by Lee S. Barney

    The Model-View-Control pattern as implemented by Google is great as far as it goes. However, it does tend to lead to implementation code being scattered across many areas of your application.

    This class helps you design and implement a modular, reusable framework that can speed up your application development dramatically. Initial data indicates you could reduce your time to market by a factor of 10 or more by reusing the framework you will create in this class.

    You will create a command-response, highly modular framework that you can reuse in every Android or other Java applications you ever create. Your framework will be fast. It will be small. It will be easy to use.

    At 10:00am to 11:15am, Monday 7th November

  • Integrating Android Applications into your Database Infrastructure

    by Jim McKeeth

    This class covers integrating Android apps into enterprise database architecture, both existing architecture, and creating new architecture from the ground up. We will discuss issues like centralized business logic, LDAP authentication, distributed data storage, load balancing, working offline and data integrity.

    Practical examples will be given, as well as general principles and practices. This goes beyond just pulling small amounts of data over a web service by looking at creating data-rich Android applications that work with data on remote servers, and some of the concerns with such architecture.

    By taking this class, you’ll be equipped with the information and knowledge to create data-rich Android applications that work with database servers in your data center and provide offline synchronization.

    At 10:00am to 11:15am, Monday 7th November

  • Taking Advantage of Apache Maven for Your Android Builds

    by Manfred Moser

    This class will give a you an introduction to the Apache Maven build system and then go on to show how you can take advantage of it for building your Android applications.

    You will learn how to build a simple application or convert an existing application. You will learn how to reuse existing pure Java libraries as well as Android library projects. Furthermore, you will see how unit and instrumentation testing is simplified with Maven and how it can help you with the release of your application with steps like signing, zipaligning and optionally obfuscating and automating it all as well.

    This class will have live demos, but is not intended to be followed by the attendee as a live coding exercise.

    At 10:00am to 11:15am, Monday 7th November

  • Web App Development with PhoneGap for Android

    by Paul Beusterien

    Come to this class to learn the power of JavaScript/HTML/CSS development for mobile platforms, leveraging Web-to-native bridgine technologies like PhoneGap and Appcelerator Titanium; UI frameworks like jQuery Mobile and Sencha Touch; and IDE technologies like Eclipse. You will be fully enabled to create basic mobile Web apps with just a few clicks!

    Together, we will explore the similarities and differences among Web apps, native apps and pure Web pages. You will see how to access device capabilities, like GPS, accelerometer, contacts and other sensors from a Web app. Also, you will learn how to bundle a Web app as a native app so that it can be deployed in the standard marketplaces.

    There are several technologies emerging around HTML5 and mobile Web app creation. We will cover how the different solutions complement, overlap, and contrast with each other. We’ll close with a demo using AppLaud Eclipse plugin to create the creating a mobile web app with PhoneGap and jQuery Mobile.

    You can follow along the demo if you follow the installation described at http://www.mobiledevelopersoluti...

    At 10:00am to 11:15am, Monday 7th November

  • What Are Wearables For? Android Meets Arduino

    by Rachel Lyra Hospodar

    This session provides an overview of existing trends and possibilities in embedded and wearable circuitry.

    We’ll cover existing hardware and software, including Arduino, an open-source prototyping platform, the Amarino toolkit library for Arduino, wireless radio capabilities (using Bluetooth, Zigbee and serial interface), the Sparkfun IOIO board, and other Android-specific hardware, off-the-shelf sensors and other components, smart fabrics, conductive thread, and other inherently functional materials.

    In this session, you’ll also see some examples of existing products, like filtration scarf, music tapestries, other music manipulation devices, microphone/earphones scarfs or hats, JeeNode sensor networks, pants interfaces, Kobakant conductive threads, and much more!

    What are the applications of wearables? Many! They include: warehouse/inventory tracking; music/lighting control for the stage, gaming, creative/generative (DJ to watercolor to lighting design), biometrics tracking for medical and sports. Also, event generation for any application (like an alarm clock), object tracking, centralization and specialized sensor networks (such as pollution sensing, efficiency-data gathering, and smarthomes) are included.

    At 10:00am to 11:15am, Monday 7th November

  • What’s New in Android Tablet Development with Honeycomb, Part One

    by Donn Felker

    Come to this session to learn the latest about the Android 3 release, Honeycomb. This release of Android is targeted at tablet development, but is compatible with previous versions of Android. The new features of Honeycomb will be discussed with some code samples that will outline the new features and how to use them. You'll learn about the new action bar, fragments, new homescreen widgets, the system bar, and how the new tablet emulator works.

    Prerequisites: A decent understanding of the Android platform, especially how activities and intents operate in the Android ecosystem, and have experience with XML layouts and Java.

    At 10:00am to 11:15am, Monday 7th November

  • Android Variants, Hacks, Tricks and Resources

    by Karim Yaghmour

    While Google makes periodic code drops to the Android Open Source Project (AOSP), the bulk of the work done on Android occurs behind closed doors. There are, therefore, only a limited numbers of parties who can meaningfully influence Android's future at any point in time. This, though, hasn't stopped third parties and enthusiastic developers from customizing and extending Android in a variety of different ways.

    This talk provides an overview of third-party projects, resources, tools, etc. that embedded developers may want to look at if they intend to build Android-based embedded systems. Amongst other things, this talk will go over the Cyanogenmod project, one of the more prominent Android derivatives.

    At 11:30am to 12:45pm, Monday 7th November

  • Creating ePub Books for Android

    by Jason Mark

    Thinking of writing or creating an eBook? Come to this class to learn what ePub is (hint: It's a limited subset of XHTML), and how Android handhelds and tablets are different from the Kindle. We'll talk about limitations to the format and what types of material lend themselves to ePub. We'll also leave a chunk of time to discuss specific challenges (technical or conceptual) with your eBooks, so bring your questions. Participants will leave this session with a good understanding of what tools are available for creating ePubs, when not to use ePub, and how to submit your ePub book for sale via various channels.

    At 11:30am to 12:45pm, Monday 7th November

    Coverage slide deck

  • Pragmatic Android Layouts

    by Kirill Grouchnikov

    Understanding and mastering the Android layout system is a key factor in helping the user to navigate your application and presenting the relevant information in a clear and consistent way. While some developers seem to be able to effortlessly translate complex wireframes into a collection of flexible, reusable and maintainable layout definitions, others find it much more difficult.

    Foregoing the beginner-level approach that painstakingly takes you through all possible attribute combinations of linear and relative layouts, this class focuses on the underlying principles of identifying the major building blocks of real-life designs and finding pragmatic solutions.

    From extending core layout managers and tweaking a few alignments to writing brand-new layouts that address the specific design requirements, the goal of this session is to present a core collection of techniques that enable creating high-fidelity implementations of even the most challenging wireframes that scale to different screen sizes, ratios and resolutions.

    At 11:30am to 12:45pm, Monday 7th November

    Coverage slide deck

  • Secure Data and Data Synchronization

    by Lee S. Barney

    Android applications can easily store data using the SQLite database engine. This data can then be heavily used without delays when passing information back-and-forth between the device and a remote database. How then can data be kept in sync if it needs to exist on the device and a remote database? What if you don't need all of the data found in the database to exist on the device?

    This class will show you how to securely store data on your device and use a simple and secure synchronization utility to send that data to any remote database management system. It could be Oracle, MySQL, Sybase, or some other database. It could even be something completely different, such as XML or other textual flat files.

    At 11:30am to 12:45pm, Monday 7th November

  • The User Experience: Best Practices for Great Smartphone Apps

    by Adam Blum

    The guidelines for effective user interfaces for Android applications are quite different from those of the websites you have been building for the last decade. They show that the majority of apps in various application stores (like the Android Market) don't score well and are quickly abandoned by users. Yet others garner great loyalty, gain word-of-mouth popularity and sell by the thousands. In this class, you'll learn best practices of informational smartphone apps, as well as some counterexamples of apps that just don't work.

    With the dominance of native apps, smartphone usage is truly "computing at the edge," with a new set of rules you can use to build a user experience that works. These rules include "context sensitivity," using your knowledge of the user to take users right to the data, minimizing typing, truly leveraging device capabilities intelligently, providing synchronized offline data, and reaching all of your user base by leveraging cross-platform frameworks. (Note that the presenter is the CEO of Rhomobile, maker of one of those cross-platform frameworks: Rhodes.)

    This class will teach you how to write more effective apps following these guidelines that will stand out in the new, crowded world of apps on the Android Market, or that are adopted more broadly when deployed internally in your enterprise.

    At 11:30am to 12:45pm, Monday 7th November

  • Web Services with Android

    by Jim McKeeth

    Throughout the enterprise, SOAP and .NET Windows Communication Foundation-based Web services are very widespread. We’ll use examples that cover both published Web services and internal Web services.

    This class covers the architecture of using a web service from a mobile device, comparison of different encodings and compressions, security, encryption and authentication.

    You’ll also learn about some frameworks for working with SOAP and XML, including the RemObjects SDK. (The speaker is the developer evangelist for RemObjects.) At the end, you’ll be equipped with the information and knowledge to begin integrating and consuming SOAP and WCF Web services from your Android applications.

    At 11:30am to 12:45pm, Monday 7th November

  • What’s New in Android Tablet Development with Honeycomb, Part Two

    by Donn Felker

    Come to this session to learn the latest about the Android 3 release, Honeycomb. This release of Android is targeted at tablet development, but is compatible with previous versions of Android. The new features of Honeycomb will be discussed with some code samples that will outline the new features and how to use them. You'll learn about the new action bar, fragments, new homescreen widgets, the system bar, and how the new tablet emulator works.

    Prerequisites: A decent understanding of the Android platform, especially how activities and intents operate in the Android ecosystem, and have experience with XML layouts and Java.

    At 11:30am to 12:45pm, Monday 7th November

  • Android + App Engine: A Developer's Dream Combination

    by Chris

    This class will cover App Engine Tooling for Android. A complete set of Eclipse-based Java development tools for building Android applications that are backed by App Engine.

    With these tools, you and your development team can focus on building fantastic Android applications using common tools and techniques that span the client and server parts of the application and make it extremely simple to deploy the server side to App Engine. This class walks through building a fantastic cloud-based Android application.

    At 1:45pm to 3:00pm, Monday 7th November

  • Creating Stable Voice-Controlled Mashups in Android

    by David Frerichs

    Programmers looking to create hit applications spend too much time integrating the same Web services that everyone else is integrating (like Facebook, Google, Twitter or Yelp) and not spending enough time crafting a differentiated user experience. If programmers could have a normalized way to quickly integrate data from the most popular Web services, they could focus more on pushing the bounds of UX/UI instead of racing to keep their app current with the latest changes in the various Web services APIs.

    This class will teach you how to take advantage of a new class of APIs that allow integration of services at a category level, pushing complexity away from the client and into the cloud where it can be more easily managed. You will also learn how to create meta-mashups, reducing an O(n^2) service integration problem into an O(n) problem.

    This class will also go over key areas of the nature of natural language voice control. You will learn how to add voice capabilities to your app for true "eyes free" functionality and address issues encountered during audio capture and overall user experience flow.

    At 1:45pm to 3:00pm, Monday 7th November

  • Driving Toward App Success: Why Are You Really Doing This?

    by Michael Simmons

    Learn how to manage, execute, market and sell your app beyond the usual details. Features, design, price, messaging and even the app's name all play a major role in your app's success. In this session, we'll discuss all of the details needed for a successful product launch, along with proven advice to ensure it remains successful. We'll take a close look at the things you should and, of course, the things you shouldn't do.

    We'll also question all of the details, such as marketing, pricing, design, product features and much more.

    A solid plan provides a solid foundation, and with a solid foundation comes the opportunity to give your app a greater chance of success. Your app idea is important, but it's only the beginning; you'll also need a development and launch plan. This session will ask the important questions and help you formulate the answers necessary to provide your product the successful launch it deserves.

    At 1:45pm to 3:00pm, Monday 7th November

  • Refactoring for Mobile with CSS3 and HTML5

    by Joseph R. Lewis ☕

    The rate at which customers, partners and employees are accessing our websites via handheld devices has grown explosively in the past few years. How are these users interacting with your Web content? Are you delivering an enjoyable and useful experience? If not, come to this class and learn what to do about it!

    This class explores recent trends in the mobile Web and use live code examples to demonstrate how you can make Web pages more accessible to mobile devices by taking a CSS-based, minimally intrusive approach to page markup.

    Starting with an off-the-shelf content management system theme, we will modify the layout for an optimized small screen, touch-based experience. You will learn practical strategies and methods for refactoring existing websites for mobile devices, leveraging HTML5 and CSS3 components that work well today.

    At 1:45pm to 3:00pm, Monday 7th November