like us follow us download the catalog download the prospectus
DIAMOND
Tapjoy
PLATINUM
Apkudo
Barnes and Noble
Black Duck  Software
BlackBerry
HTC
Intel Software
Qualcomm
GOLD
Adobe
Airpush
Apsalar
Clickatell
Epson
LeadBolt
Pioneer Zypr
Sony Mobile Communications
StartApp
Symantec
Vserv.mobi
Xamarin
YP  <sup>SM</sup> Developer Program
SILVER
AppLovin
Safari Books Online
OTHER EXHIBITING COMPANIES
Accurev
Apress
Arxan Technologies
Atmel Corporation
Crittercism
DeviceAnywhere by Keynote Systems
Exadel
Gorilla Logic
Immersion
Inneractive
JunoWallet
Klocwork
Logic Studio
MHL
Microchip
Opera Software
Placed
Qoppa Software
RIIS
Seven Networks
TestDroid
MOBILE CONFERENCE APP SPONSOR
Falafel Software
EXCLUSIVE T-SHIRT SPONSOR
Pioneer Zypr
BAG INSERT SPONSOR
GREE
NeuroSpeech Inc.
LIGHTNING TALKS SPONSOR
BlueStacks
DRINK TICKET SPONSOR
GitHub
ANDROID DESSERT BASH
Square




CCR Registered
CCR Registered


Filter classes by :
Day                         Time Slot
Speaker  Level  Topic Area  Clear Filters
Tuesday, May 15
10:00 AM - 11:15 AM

Backward Compatibility: Strategies and Tacticsstarburst image Has code image

There are millions upon millions of Android devices in use today, ranging from Android 1.5 all the way to Android 4.0 (and beyond?). While the majority of Android devices use only a couple of versions, you still will have to consider making your applications backward-compatible if you want to support older devices while using newer capabilities where available. This session will examine various approaches for handling this conundrum, and which approaches work best for different situations.

Level: Intermediate
Topic Area: Developer Essentials
Building and Distributing Social Apps with Facebook Platform and Open Graphstarburst image Has code image

Whether you're developing against native, hybrid, or Web-based Android stacks, Facebook Platform and Open Graph provide powerful ways to put social interaction at the heart of your apps. And, for developers and businesses, they bring strong discovery, growth and engagement opportunities through Facebook's social distribution channels.

This class will introduce you to Facebook Platform, Single Sign-On, and how you can put social design to work today. We'll explore the theory and practice of Open Graph, and live-code both native and mobile Web apps that demonstrate the principles at work.

Level: Intermediate
Topic Area: Developer Essentials
Building HTML5 Apps for Phone or Tabletstarburst image Has code image

HTML5 is truly a cross-platform development platform with its new functionality that can be used to build applications that run when a user is or isn't online. Doing so, however, requires a change in your design thought process. In this session, we'll discuss not only the new technologies, but review patterns that will let you write one application to run on devices of different form factors, with or without an active Internet connection.

Level: Intermediate
Topic Area: Developer Essentials
Incorporating Touch Design to Differentiate Your App and Increase UXstarburst image Has code image

In this ocean of applications, how do you differentiate yours? Cool graphics and sound are now commonplace and no longer leave the same impression on users. People experience their environment through their five senses, of which only three are represented in mobile devices; sight, sound and touch. Touch is the most overlooked of the mobile user experience senses and yet the most personal and emotive.

With touch-screens becoming the default UI in mobile devices, touch design is one of the most important aspects of the user experience. Come to this class to learn how to implement touch design in your apps to enhance the UX while helping to get your app noticed for increased revenue possibilities with handset manufacturers and carriers.

This session will highlight methods to maximize the user experience through touch design best practices, from simple UI to more complex use-case scenarios of gaming, navigation, social networking and more. You will learn how to implement haptics effects into their own applications, and explain core design principles to follow when implementing touch effects.

The session will cover the technical aspects of implementing haptics using Immersion’s free design tools, and will walk developers through the integration and coding processes. A PowerPoint presentation and hands-on hardware demonstration of good touch design will be provided during class.

Level: Intermediate
Topic Area: Developer Essentials
Protecting Your Android Source Code Has code image

Due to the design of the Java Virtual Machine (or JVM), it is relatively trivial to reverse-engineer Java code from Java jar and class files. While this hasn't been an issue in the past since most Java files are hidden on the server, it is an issue on Android phones where the client-side Android APK files are easily obtained and just as easy to decompile back into source.

Come to this session to learn the how and why this is possible by unraveling the APK into DEX files and the tools that are currently available to decompile your APKs back into Java or JavaScript source code with the right click of a mouse. The session will also show some of the security issues that this raises, such as inadvertently allowing people to gain access to credit card information or back-end systems when someone has complete access to your source.

We'll also look at open-source and commercial obfuscation tools and other techniques you should be using, such as C++ coding, watermarking and more to stop people gaining access to your Android code. While you don't need any knowledge of decompilation or obfuscation techniques before the session, you will be armed by the end with enough information to safeguard your intellectual property from what is a very significant and little understood issue.

Level: Advanced
Topic Area: Developer Essentials
Responsive Mobile Design in Practicestarburst image Has code image image

The main goal of responsive mobile design is to adapt the presentation of your content to the current device context, taking advantage of the available screen estate and optimizing the overall user experience. After a brief introduction to the principles of responsive mobile design, this class will talk about the technical tools available to you, show the best practices, and walk through real-life resource and code samples.

Distilling the target designs into a collection of reusable layout blocks reduces the development effort required to support multiple device configurations, and enables quicker implementation and simpler maintenance of different screens in your application. This class focuses on the underlying principles of identifying, encapsulating and reusing major building blocks of real-life designs, and finds pragmatic solutions to common challenges of developing for a variety of form factors.

The goal of this class is to present a core collection of techniques that enable the creation of high-fidelity implementations of even the most challenging wireframes that scale to different screen sizes, ratios and resolutions.

Level: Advanced
Topic Area: Developer Essentials
11:30 AM - 12:45 PM

Android Forensics and Malicious Usersstarburst image Has code image

Android has become the fastest growing mobile device platform in history. Currently, over 50 percent of smartphones in the U.S. are powered by Android, and it is expanding into other consumer devices such as tablets, TVs, cars, and more.
 
This session provides a hands-on review on how to forensically analyze an Android device and collect data that otherwise is hidden from the average snooping user. The session also covers how to develop a Forensic Data collection application, leveraging the Android Content Provider component. Additionally, it covers ways to protect against these types of access in Android devices and apps.
 
Note: This is an advanced talk and requires basic knowledge of Android tools, development environment and programming for Android.

The class will cover:
  • Forensics data-collection objectives
  • Preparing Android target devices for forensics procedures 
  • Dealing with Passcode, networks, user ids, other passwords, etc.
  • To root or not to root?
  • Android file systems, FAT32/vfat, YAFFS2
  • Understanding/reverse-engineering YAFFS2
  • SD card and eMMC analysis
  • Physical collection: Acquiring a physical image of the target device
  • Protecting against snooping and malicious access
Hands-on exercises will include:
  •  Logical collection: Using Android tools to collect data from the device
  • adb pull and other techniques
  • Android apps anatomy: Reverse-engineering Android apps
  • Understanding content providers: How to build a forensics data-collection tool


Level: Advanced
Topic Area: Developer Essentials
Automating Functional Testing for Android Applications Has code image

Automated functional testing is crucial to the development of all Android applications. A core suite of automated functional tests provides a solid foundation for rapidly iterating product releases by ensuring that the introduction of each new feature does not inadvertently break pre-existing functionality.

In this class, we will explore how to use FoneMonkey, a free and open-source tool that automates functional testing of Android applications, to record, edit, playback and verify application functionality on Android emulators and devices. You will also have the opportunity to see how FoneMonkey scripts can be extended with Java or JavaScript to create domain-specific testing libraries that handle arbitrarily complex application usage scenarios. The class will conclude with a look at how FoneMonkey test suites can be run using Eclipse and JUnit, and how FoneMonkey can be run from continuous integration tools.

Level: Overview
Topic Area: Developer Essentials
Bringing Android Apps to the BIG Screen Has code image image

Google TV expands the reach of the Android platform to the biggest screen in the house. In this session, you will learn how to develop, test and deploy Android applications for  Google TV.

The instructor, a Developer Advocate for Google TV, will share the core points of user research, best practices, and tips on how you can  optimize existing applications for the TV screen, as well as how to design and  implement new applications for the living room to complement your existing mobile apps. The session will also highlight Android APIs and UI guidelines, which are especially relevant when creating applications for TV devices.

Level: Intermediate
Topic Area: Android Tablets and Beyond
Managing Multiple Android App Markets with Conflicting Requirementsstarburst image Has code image

Wider distribution can mean more profit from each app, but releasing Android apps to multiple app markets can bring headaches, too. As many app stores impose conflicting requirements, it can quickly become a compliance as well as a maintenance nightmare.  

With Android app stores continuously appearing (and disappearing), how can app developers and publishers minimize the headache and costs, but still profit from distribution through as many Android app stores as possible?  

This presentation:
  • Explains costs and benefits involved with deploying Android apps to multiple app stores
  • Describes important differences between the major Android app stores
  • Proposes a strategy to simplify continual deployment to multiple app stores
  • Builds the solution without proprietary services or tools, meaning there is no cost to developers building apps using the Android SDK and Android Development Tools (ADT).
This presentation is primarily aimed at developers and publishers that have or will build apps in Java with the Android SDK.  There will be only limited coverage of proprietary app platforms. It is not necessary to have an app released yet.  

Attend this session and you will leave with:
  • An idea of why and if they should pursue deployments to different Android app stores
  • A solid understanding of where the requirements for Android app stores differ
  • An idea of what can be done to reduce effort and complications with compliance

Level: Intermediate
Topic Area: Android Business
Writing Agile APKs: Target Every Device and Platformstarburst image Has code image

Learn how libraries like ActionBarSherlock, ViewPagerIndicator, NineOldAndroids and other creatively named libraries alleviate the burden of dealing with platform differences yourself. Google’s support library creates a phenomenal starting point for providing post-Honeycomb style content management. What is missing, however, is a bit of visual sugar to allow for leveraging things like animation and the action bar paradigm without having to juggle native class availability across various API levels.

With minimal effort, we can instead call on third-party libraries to step up and handle these implementations, which will allow you, the developer, more time to focus on making the content of your app the best it can be! This session will include a live coding example, demos, use cases, and a showcase of existing implementations of the libraries covered.

Level: Intermediate
Topic Area: Developer Essentials
1:45 PM - 2:15 PM

Enterprise Android: Help Is on the Way Has code image

Mobile application development is exploding in enterprises. Enterprise organizations are making customer-facing apps available on mobile platforms, providing their employees with the mobile access they need to be productive. They are also developing industry-specific apps. In order to develop these apps, the majority of companies are using in-house resources.
 
The most popular mobile platforms used in enterprises are Android, iOS, BackBerry OS, and Windows Mobile. Thousands of open source software projects are targeting these platforms at all levels of the stack and across multiple functional categories. In order to meet aggressive time-to-market goals, to ensure quality and to boost productivity, developers need an efficient way to find OSS projects, compare alternatives, and be informed about the implication and obligations that result from using FOSS.
 
Attendees of this session will learn about some of the newest OSS projects for the mobile enterprise, tools and processes for finding and comparing mobile OSS projects, the implications and obligations of using OSS, and best practices for managing it all.

This class is sponsored by Black Duck Software.

Level: Intermediate
Topic Area: Developer Essentials
NOOK Apps – The Developer Opportunity and Technical Guidelines Has code image

Join NOOK Developer for a session on NOOK Apps. We will deep dive into all the technical aspects to help you distribute your apps on NOOK tablets and cover the entire development process -- from app creation to app submission.  Learn how to quickly monetize your business in a storefront where, in the US, top-selling apps gross more than $100,000 in the first 30 days of sale.  
 
This class is sponsored by Barnes & Noble.

Level: Intermediate
Topic Area: Developer Essentials
Running Android Applications on BlackBerry Has code image

BlackBerry PlayBook 2.0 and the upcoming BlackBerry 10 have built-in support for running Android applications. With millions of global BlackBerry subscribers and over 2 billion downloads in BlackBerry App World, this represents a huge monetization opportunity for every Android developer.
 
In this session, you will learn how easy it is to migrate your existing Android applications to BlackBerry and to publish them in App World to reach a global audience. You will also learn how to use your familiar android development tools to develop, debug and deploy Android applications on the new BlackBerry platform. Open your window to a new world of BlackBerry opportunities!
 
This class is sponsored by BlackBerry.

Level: Intermediate
Topic Area: Developer Essentials
The Advantages of Using the Snapdragon MDP for App Development

Join Qualcomm to learn about the Snapdragon Developer program and the latest development platforms, and how you can take advantage of them to innovate and accelerate time to market for your next-gen Android applications and device drivers. Developers will gain valuable insight on the new Snapdragon S4 Mobile Development Platform (MDP) with Android 4.0, and the latest tools to help create optimized and differentiated apps that run on the powerful Snapdragon processor.

This class is sponsored by Qualcomm.

Level: Overview
Topic Area: Developer Essentials
Who Needs Thumbs? Android Instrumentation and Reverse Engineering Has code image

What does take to become a true Android Hacker? Ever wondered how to inject code into APKs straight off the market? How to introspect on the app to determine exactly what it is doing, including what it's displaying on the screen? This class will teach attendees all of the necessary skills to start hacking away at their favorite Android Apps as the instructors (and Apkudo hackers) reverse engineer Scramble With Friends and build a top scoring robot.

The class will teach developers the fundamentals of APK reverse engineering, including Dalvik executable disassembly/reassembly, code injection, and view hacking using tools such as Smali/Baksmali and Romain's awesome ViewServer. In addition, attendees will be given a crash course in Android Instrumentation and the resources available for developers to start exercising their Apps. By the end of the class, attendees will have gained some seriously valuable skills in reverse engineering and Android Instrumentation.

This class is sponsored by Apkudo.

Level: Advanced
Topic Area: Developer Essentials
2:30 PM - 3:45 PM

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

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.

Level: Overview
Topic Area: Developer Essentials
App Integration: Strategies and Tacticsstarburst image Has code image

Android has a rich palette of techniques for allowing applications to integrate with one another, from simple, hyperlink-style handoffs to full IDL-based IPC. Not all of these are necessarily appropriate for all apps, and choosing ones that make sense is an art as much as a science. This session reviews the possibilities, shows you how they are implemented, and helps you decide what your app should consume and expose.

Level: Intermediate
Topic Area: Developer Essentials
Choosing the “Right” Open Source Project to Accelerate Your Android Development

The pace of mobile app development continues to accelerate at warp speed. With more than 80 percent of mobile applications leveraging open source software, using a multi-source development approach is no longer an option, but an imperative for moving quickly enough to compete in this fast-paced market.

At first look, finding and choosing the right open source project can seem as easy as using one of the popular code search engines to find just the right code. However, choosing the right project means evaluating what’s behind the code, helping avoid major headaches in the future.

In this session, we will discuss techniques to search and identify available open source projects, and more importantly, how to evaluate and choose answering key questions like:
  • How well maintained is the project? How many developers are contributing? How often? How much?
  • How big is a project? Smaller libraries can sometimes be more trouble than it’s worth to integrate than they are to just write yourself.
  • How does one compare competing projects? By looking at the amount of activity in competing projects, one can sometimes see that a smaller project has a much stronger curve and trajectory than established or larger projects.
  • What languages are projects written in? Using open source software today usually means getting your hands dirty to some extent. When choosing a library/application to integrate, it's critical to ensure you'll be able to at least understand some basics behind it before moving forward. For example, you may not know Python well so you might tend to choose alternatives in other languages.
  • What's the licensing status of a project? When you integrate OSS into your app, you assume some legal liabilities associated with that software. Even if the software claims to have a MIT or BSD license, some codebases contain snippets of other licenses, which can be a red flag.
This session will require you to have a basic understanding about open source software and multi-source software development.

Level: Overview
Topic Area: Developer Essentials
Leveraging Android's Linux Heritagestarburst image Has code image

Although Android is built on top of Linux, it uses almost none of the components traditionally found in a standard Linux distribution or an embedded Linux system. Can "classic" Linux apps be made to run with or under or on Android? Can such apps be made to "talk" to Android components and vice-versa? Beyond getting the basic BusyBox, glibc and glibc-compiled apps running under Android, this talk will go over some tips and tricks for making classic Linux apps coexist and interact with the Android stack on the same Linux kernel.

This presentation is for embedded developers wishing to understand how they can leverage "legacy" Linux and "embedded Linux" applications and software components in an Android environment. It assumes familiarity with Linux and "embedded Linux." To benefit fully from this presentation, you should also be familiar with the basics of Android's internals or have attended the “Embedded Android” workshop.

Level: Intermediate
Topic Area: Embedded Android
Remixing Androidstarburst image Has code image

One of the long-term advantages of Android over any other mobile platform is that it is open source. What that means for you is that you can rehash it into a new product, a new ROM. That new operating system may not even look like the Android that was intended for mobile phones.

The problem with Android customization is that at this point it is mostly black magic - almost no documentation exists and your only way of figuring things out is reading the source code, many gigabytes of it.

In this talk, we’ll explore how to go about customizing Android and what some of the philosophy behind the organization of the code and the build system is. You will learn at a high level how to go about customizing Android by adding custom apps, libraries, daemons, binaries, and other code and resources that go into the operating system. You will also learn about the start-up process for a typical Android device and a bit about its security model as it relates to Linux.

Level: Advanced
Topic Area: Developer Essentials
4:00 PM - 5:15 PM

Advanced Design Implementation Has code image

With the latest release of Android 4.0 (Ice Cream Sandwich), the OS is really starting to look amazing. However, not every app can get by with just the default application skin. Getting a designer to create a beautiful theme for your application is a great start, but what do you do with all these assets afterward?

And what about the new Android Design guidelines everyone is talking about? Implementing those designs properly can be quite a headache. This session will cover advanced topics in Android styling, including styles/themes, component skinning, and how to implement styles with Android 4.0 and the new design documents in mind.

Level: Advanced
Topic Area: Developer Essentials
Android Services Black Magicstarburst image Has code image

The most interesting part of the Android stack are the Android System Services. The more than 50 services expose low level functionality, such as power management, Wifi, camera, sensors, GPS, display, audio, media, and so on, as well as the hardware all the way up to the application layer. While each one is different, they all have certain similarities, namely the way they rely on Binder (Android’s IPC mechanism), use JNI to cross Java-C boundary, and use shared libraries to abstract the Linux drivers.

In this talk, we’ll explore the common system services in Android and discuss their architecture. You will get to see the diagrams of the inner workings of some of the previously undocumented parts of the Android stack. By the end of the talk, you should have a better understanding of the underpinnings of the backbone of Android OS.

Level: Advanced
Topic Area: Developer Essentials
Avoid Code Duplication and Increase Code Reuse on Androidstarburst image Has code image

Repetitive code can be a serious detriment to the maintainability of your Android application. Not only does it increase the difficulty of fixing or modifying existing code, but it also hinders advancement of your application with the rapid release of new versions of the Android OS.

Coders new to the Android platform may already know how to reduce duplication in Java, but all the tricks you can use to reuse resources are not immediately evident. Without a good understanding of Android's resources, you can end up spending more time maintaining releases and fixing bugs than doing the fun stuff: adding new features and improving your design.

This class will introduce a number of tips and tricks to avoid code duplication and increase code reuse on any Android application. The class is focused on usable, practical solutions for handling resources between the myriad versions of Android and its many handheld devices. The advice will range from simple concepts (like 9-patches, simple resource references and styles) to advanced setups (like fine-grained resource qualifier usage, drawable XML and library attributes). By the end of this class, you'll be able to spend less time repeating yourself and more time writing new code.

Level: Advanced
Topic Area: Developer Essentials
Designing Responsively Using CSS3starburst image Has code image

This session will start with a discussion of what is meant by building a responsive Web design that uses a single markup source to format itself effectively between smartphones, tablets, and desktop computers.

We will walk through live code examples to construct a Web page from scratch using HTML5, CSS3, and media queries to create a Web page layout that flows seamlessly between the different device and Web browser widths and device screen sizes. We'll wrap up by looking at the pros and cons of such approaches and how to strategize integrating responsive design into your team's workflow.

Level: Intermediate
Topic Area: Developer Essentials
Developing and Optimizing for Atom Processor-Based Platforms Has code image

In this session, you will learn about developing Android applications for Intel Atom processor-based tablets and smartphones. This session will address porting native libraries using x86 NDK, tips and tricks for identifying and removing performance bottlenecks, and identifying optimization opportunities to make your apps run best on Intel Atom-based tablets and smartphones. 

In addition, attendees will learn how to develop multi-platform apps with techniques that has been applied to a real life application. Attendees will also learn about valuable technical resources available to developers through the Android Developer Community at www.intel.com/software/android. Attendees should have a basic understanding of Android app development.

Level: Intermediate
Topic Area: Developer Essentials
Performance Java for Android: Tips and Tricks for the Troublesstarburst image Has code image

Android is a fantastic platform for mobile app development in Java, but it is not a panacea for developers and organizations who wish to release performance-oriented apps across the wider ecosystem. There are several factors that make wide ecosystem deployment challenging, from Google's initial rush to market and hard-locking the SDK to firmware OS versions and the traditional engineering approach of expanding the SDK additively via idiomatic OOP. When combined, these factors result at times in lower quality control such that there are major bugs and regressions that are ever present in the ecosystem as devices are orphaned and no longer receive OS updates.

While a component-oriented approach will be touched upon, this session is about the code workarounds and tips necessary to release quality applications to as many devices as possible. You will take away the free open-source code discussed and use it to make better apps for fame and profit. Topics include:

Java API:
  • Annotations: Why are annotations so slow before ICS?
  • Java Collections: Iterate this; now quicker with less garbage
  •  Java NIO API: Slow puts from the past and regressions/workarounds
2D Graphics:
  •  Fast ListViews
  • Porter-Duff edge cases
  • Tips and tricks
OpenGL ES:
  • Getting closer to the metal/when to go all in
Seminal topics:
  • What really is fragmentation?
  • When to go native, and is there a way to do so without hand rolling bindings?

Level: Intermediate
Topic Area: Developer Essentials
Wednesday, May 16
8:30 AM - 9:45 AM

Advanced Downloads and Uploadsstarburst image Has code image

The HTTP protocol is more ubiquitous than Kevin Bacon, but do you really understand how it works? This session dissects the HTTP protocol for practical gain for resuming downloads, downloading specific parts of files, dividing downloads over multiple servers, uploading files, parsing cookies, and more, all from your Android application.

Bandwidth is precious and connectivity is spotty on mobile devices. By implementing resumable downloads, you can be sure you download the entire file without the need to redownload part of it after the connection is dropped. Save your users’ bandwidth and make your application more responsive!

What if you only need a part of a huge file? Like one file out of the middle of a multi-gigabyte ZIP file? Learn how to extract just part of a file via the HTTP protocol and leave the rest on the server. Maybe a file is available from multiple file mirrors and you want to download it the quickest way possible. Your 4G LTE bandwidth may actually be faster than the throttle on the download server. By dividing your download across multiple servers and balancing it to favor the faster servers, you’ll be done downloading before you know it.

After attending this session, you will not only understand how the HTTP protocol makes all of this and more possible, but you will have code ready to use in your applications. Attendees must have Java or Android development experience.

Level: Advanced
Topic Area: Developer Essentials
Introduction to Augmented Realitystarburst image Has code image

Come to this talk to learn some of the basics of Augmented Reality, including the advantages and disadvantages of the two major kinds: Geographic and Marker-based. We’ll talk about and show code examples of libraries that cater to both kinds. Time permitting, we’ll get into the third and less talked about kind of Augmented Reality, Ambient Audio.

People with intermediate experience with Android and a desire to build something new should come to this talk. At the end, you should have a firm understanding about the nature of each type of AR, and its advantages and disadvantages. Last, you'll see some samples in action and will walk away with the experience in how to build your own Augmented Reality application on the Android platform.

Level: Intermediate
Topic Area: Developer Essentials
PhoneGap: Cross the Gap from HTML5 to Mobile Has code image

Come to this class to gain an understanding of how PhoneGap can create powerful Android apps with JavaScript, HTML, and CSS in just a few clicks. Demonstrations of the development, debugging, and deployment cycles for creating scalable mobile apps with Web technologies will be shown.



PhoneGap converts Web apps to native mobile apps for every major platform, including Android. It extends the power of an HTML5 app by providing JavaScript APIs for device capabilities like GPS, accelerometer, compass, and contacts. 

Every year, dozens of new technologies emerge in the HTML5 and mobile Web arena.

The class will cover the criteria to evaluate how the different solutions complement, overlap, and contrast with each other, and will introduce jQuery Mobile and show how it works with PhoneGap to design and create touch-optimized, flexible, responsive mobile user interfaces.

 We’ll use Ripple, a powerful device API simulator, to run PhoneGap apps in a desktop browser. We’ll then see how another mobile web tool, Weinre, runs in a browser to remotely debug a PhoneGap app running on device.



The session will also describe how PhoneGap plugins enable Java/JavaScript hybrid development, thereby providing JavaScript access to Android native capabilities. We’ll see how to bundle a web app as a native app for deployment in Android marketplaces.



Throughout the talk, we will cover a series of hands-on implementation examples. We will also create and deploy PhoneGap Android apps with either the Cloud IDE at http://www.applaudcloud.com or with the Eclipse plug-in from http://www.mobiledevelopersolutions.com/home/start. If you choose Eclipse, please install the AppLaud plug-in before the session.


Level: Advanced
Topic Area: Developer Essentials
Reusable Custom Componentsstarburst image Has code image

Have you ever extended a View class? If not, this session is for you.
We will start from a simple example of enhancing the TextView class, and finish with a complete custom view with its own size measurement, drawing function and custom attributes. We will also discuss the best practices for custom views. What is the different between a custom view and a fragment? How about a compound control? When to use which?
By the end of the session, you will know not only how to create reusable custom components, but when to use them.

Users should have successfully developed an end-to-end app beyond "Hello World" and tutorials prior to taking this session.

Level: Advanced
Topic Area: Developer Essentials
SCM for Android Developers Using Git Has code image image

Whether you work alone or in a team, some sort of source control management is essential for things such as keeping a history of your code, dealing with integrating code, managing releases, and making your development workflow through different features painless.

If you’re coming from something like CVS or SVN, the open-source Git version control system will turn what you know about SCM on its head. Come learn about why Git is different, and what that difference means to you as an Android developer.

Level: Intermediate
Topic Area: Developer Essentials
Talk to Your Toaster: Developing Android Accessoriesstarburst image Has code image

In the last year, the opportunity for Android applications to connect with other devices has exploded. Honeycomb and Ice Cream Sandwich have brought technologies such as USB, wi-fi Direct and Bluetooth into the SDK as viable modes through which an application can communicate with the outside world.

In this session, we will look in-depth at the APIs available in Android to connect with external hardware and the basics developers need to get up and running with each. We will explore the USB framework, including host mode and the Open Accessory protocol. You will also learn about communicating via RFCOMM and device profiles over Bluetooth.

Although this session is not directly hands-on, sample code for both the Android and firmware side will be provided. Experience and familiarity with embedded development platforms such as Arduino is helpful, as we will be exploring some accessory firmware. An understanding of the basics of USB and/or Bluetooth technology is also a plus.

Level: Intermediate
Topic Area: Embedded Android
11:30 AM - 12:45 PM

Advanced Graphical Applications Using NDK and OpenGLstarburst image Has code image

Consumers are expecting more out of their Android devices every day, especially in the realm of graphics. Most modern Android devices carry very powerful GPUs that can produce beautiful graphical animations, provided developers know how to really utilize it.

Android ships with Java bindings for OpenGL, but many applications can benefit from the addition of native (C++) high-performance components, and this class will demonstrate a general solution for integrating said components into an Android application. The demo will show an interactive 3D animated character built for Android using mostly off-the-shelf software, but the same techniques can be used to provide an array of modern graphical effects that will be sure to give an application the edge in a competitive market, or provide the foundational knowledge for any highly graphical interactive application on Android.


Level: Advanced
Topic Area: Developer Essentials
Android Protipsstarburst image Has code image

Android has made mobile development easy and accessible to thousands of developers, but what makes the best Android developers stand out? This discussion covers the tips and tricks that professional Android developers use to make featured apps.

First, we'll look at some brief case studies that show the dos and don'ts of pro Android apps. Then we'll go over some things you should already know. Finally, we'll dive into the protips that will make the difference in your apps and make Android development easier for you. There will be plenty of screenshots and code samples throughout to demonstrate exactly what it takes to be an Android pro.

Level: Intermediate
Topic Area: Developer Essentials
Android Sensors: Virtual Sensors, Embedded Level Implementation and Future Directions Has code image

More and more sensors are being included in Android devices. Android provides a common API to access sensors, but effective use of sensor data is more complicated. Performance can vary greatly from platform to platform, and there is no standard sensor suite. Methods to optimize performance and provide a more relevant result are presented. Examples will include using the NDK on commercial devices and creating sensor drivers for a custom embedded Android device.

Level: Advanced
Topic Area: Embedded Android
Headless Androidstarburst image Has code image

Android is obviously well known for its use with user-facing devices and systems, but can it also be used in systems that have no user interface? And why in the world would anyone want to do that instead of just using a classic embedded Linux software stack? And if it's used without a UI then how do apps work or get started?

This talk will explore the curious topic of using Android in headless systems and devices. Topics will include required modifications to the AOSP, programming and development paradigms, pros and cons. More importantly, however, this talk is aimed at starting a broader conversation on non-conventional uses of Android.

Level: Intermediate
Topic Area: Embedded Android
Smooth Movesstarburst image Has code image image

Rich graphics and animations can help create a great application experience, or an awful experience if performance is slow. Bad frame rates, hiccups, stutters - these artifacts can turn a happy user into a spiteful one. Come to this session to learn tips, tricks, and techniques for creating good *smooth* experiences, and tools for chasing down and fixing performance issues that can help your application achieve its peak performance potential.

Level: Intermediate
Topic Area: Developer Essentials
Take a REST with OData Client Developmentstarburst image Has code image

OData (a.k.a. Open Data Protocol) is a RESTful Web protocol for querying and updating data on remote systems, freeing it from the silos that exist in legacy applications. This session looks at publishing your data via OData and building clients to work with your data as well as other public OData data sources, all from Android devices.

OData provides full CRUD (Create, Read, Update and Delete) support for data. It doesn’t need to be data in a database, but that is the best paradigm for how it works. It is available under the Microsoft Open Specification Promise (OSP).

This session goes beyond code examples for working with large sets of data via OData. It also covers some of core architectural concepts when dealing with large sets of data and securing your centralized databases while accessing them via mobile applications.

In addition to technical details of how the OData protocol works, specific code examples will be provided using the open-source odata4j toolkit for Java and Android development. Additionally, libraries and tools may also be covered.

You will be equipped with a high level understanding of exposing and managing large databases via a public Web service, as well as the details of how to implement a client to work with and consume data from OData data sources. You must have Android development and Database/SQL experience.

Level: Advanced
Topic Area: Developer Essentials
1:45 PM - 3:00 PM

Adding Speech Recognition to Your Android Applicationsstarburst image Has code image

Do you have Siri envy? Are you sick of those smarmy iOS developers touting the benefits of their platform? Well, you shouldn't be, as most iOS developers will never be able to hook into the private Siri API. Instead, why don't you learn more about the android.speech package and enable Speech Recognition and Text-to-Speech functionality in your Android apps today?

This presentation will give a brief overview of the basics of Speech Recognition. Then we will quickly put together an application using Speech Rec for input and TTS for output that can answer almost any question you ask it.

Level: Intermediate
Topic Area: Developer Essentials
Android Business Essentials image

Are you an aspiring entrepreneur eager to build a sustainable business based on Android Apps? Learn how to maximize your chances of success without inviting too much stress. Learn some specific things you can do to promote your app and how to do them. The focus is on tools and techniques that will work for a small business or individual, even if you are just one person working out of your home office like the presenter. Learn about:
  • A mindset that could be your biggest obstacle to success (and how to change it)
  • Coming up with ideas and target markets
  • Using tools and people power to get more work done
  • Where to find resources at a low business price
  • How to do keyword research to increase profits
  • Maximizing app exposure within the Android Market
  • Specific ways to promote your app outside the market through Web marketing, video marketing and more
  • Communicating with customers through HelpDesk and e-mail newsletters


Level: Advanced
Topic Area: Android Business
Concurrency in Androidstarburst image Has code image

The mobile platform adds new challenges to concurrent programming. The Android OS addresses these challenges with three frameworks: A managed application life cycle, the Looper class and the AsyncTask template. But is it enough?

Mobile appliances change the nature of concurrent demands put on applications and the operating systems that support them. A mobile device user may be, simultaneously, using a Web browser, listening to music, taking direction from a navigation service, and receiving text and phone calls. Furthermore, multi-core processors are becoming common on mobile platforms, and true concurrency will replace synchronous-processor sharing, making it much more like what used to be called "real-time programming."

The Android OS includes the tools at three levels of granularity (in addition to those standard in java.util.concurrent) to address the need for concurrent execution. While these tools are partially successful, each introduces its own new problems. Particularly problematic are the interactions between the managed application life cycle and the AsyncTask.

Attend this lecture to acquire a deeper understanding of Android's three main concurrency tools, how to use them in an application, and some of the specific pitfalls associated with each.

Level: Advanced
Topic Area: Developer Essentials
Do More With Less: Building Android Apps with Scalastarburst image Has code image

Have you noticed that Java is kind of verbose. Java is a little bit wordy. Java makes you type a lot. Java makes you type the same thing a lot. With all these new, hot languages out there, is there any way to gain a little bit of efficiency back?

Scala is a great alternative to Java development, because it's a JVM language. It's easy to write Scala that co-exists with Java code. That makes Scala a great candidate for writing Android apps. This session will show you how Scala differs from Java, where to start, some of the neat things you can do with Scala.

Level: Intermediate
Topic Area: Developer Essentials
Rich Text Editing and Beyondstarburst image Has code image

No doubt you have noticed that Android has some ability to work with formatted "rich" text beyond displaying it in a browser, such as having styled text (a Spannable) appear in a TextView. In this session, we will dive into how you can leverage that beyond simple labels or lists, demonstrating how you can allow users to edit rich text, how you can convert HTML and wiki-style markup languages to and from Android's Spannable objects, and how you can construct your own Spannable objects from other sources.

Level: Advanced
Topic Area: Developer Essentials
3:30 PM - 4:00 PM

Case Study – Using C# to Build Native Apps That Share Code Across Android, iOS and Windows Devices Has code image

Native apps have many performance, functionality and usability benefits over HTML5-based apps, but maintaining OS-specific codebases is time consuming and expensive. Using a real–world conference scheduling app built for Mobile World Congress 2012, this case study will outline how to use C# and .NET to design and develop native apps that share code across Android, iOS and Windows. This session will cover how to:
  • Use a fully layered architecture adhering to Object Oriented principles
  • Leverage a unified cross-platform data layer
  • Share the business layer across all platforms
  • Use the native control toolkit on each platform to ensure device-specific user-experiences
  • Run as a native application to avoid performance sacrifices
  • Minimize the amount of code written by using existing frameworks
We will also discuss how leveraging things like the ORM for data access, .NET framework for Web calls, and MonoTouch.Dialog for iOS UI, and other bits, can  significantly reduce the amount of code you need to write.

This class is sponsored by Xamarin.

Level: Intermediate
Topic Area: Developer Essentials
Get Paid for Your Hard Work – App Monetization in 2012

There were 31 billion apps downloaded in 2011 - 96 percent of them were free. Most of us are aware that monetization solutions have moved beyond pay for download to more creative solutions, and the developments in technologies and returns in the past 12 months have been incredible. In this class, we will explore how to integrate the newest monetization solutions into your apps that take advantage of the whole app user cycle, during installation, use, and even when not in use. The class will also look at where the industry is heading and what this means for app developers.

This class is sponsored by LeadBolt.

Level: Overview
Topic Area: Android Business
Give Your App Superpowers in One Click!

Code less, earn more.

Learn how the amazing AppWrapper platform can help you understand app usage, create a better app, monetize your app, and distribute and track downloads – all in one click and without any coding. The AppWrapper enables maximum monetization with minimum effort and gives your app superpowers!

Come to this session to find out how to:
  • Create NEW ad inventory
  • Earn $5 eCPM via premium advertising
  • 90 percent + fill rate with global ‘hybrid’ mediation
  • Solve the app usage mystery
  • Quickly enable Try & Buy
  • Track download sources
  • Enhance LTV of users
  • And more!
All attending get a $100 "Developer Dollar" and a chance take part in our awesome giveaway.

This session is sponsored by Vserv.mobi.

Level: Overview
Topic Area: Android Business
Integrating Free Voice Recognition and Easy Web API Mashups on Android Using Pioneer Zypr Has code image

Zypr is a new voice-powered, unified software platform and API that bridges the disparate worlds of mobile devices, PCs, Web apps, consumer electronics, and automotive telematics. The Zypr API provides a consistent way for you to access voice UI, maps and routing, local search, social networking, music and radio, video and TV, contacts, calendar, and weather from multiple content providers. Zypr is a set of RESTful cloud APIs organized by a content service category with a free license.

Attend this class to see how to quickly and easily integrate Zypr functionality into your programming workflow, and learn about all the features and capabilities of Zypr.

This class is sponsored by Pioneer Electronics.

Level: Intermediate
Topic Area: Developer Essentials
Introduction to PhoneGap Android

This talk will be an introduction to PhoneGap for the Android platform and will demonstrate some PhoneGap APIs. We will cover geolocation, accelerometer and camera functionalities. The talk will also cover how to use PhoneGap Build for Android development and some tips on debugging your application.

This class is sponsored by Adobe.

Level: Overview
Topic Area: Developer Essentials
SmartWatch Development 101: Transforming the Mobile User Experience Through Sony Smart Accessories Has code image

SmartWatch, a new “smart” accessory from Sony, is a micro display worn on your wrist that can be used with Android smartphones to show notifications, render widgets and applications, and more. This session will focus on the full functionality that SmartWatch has to offer.

Developers will learn how to get increased visibility on Google Play by adding SmartWatch functionality to their existing applications. An introduction and demo of the Smart Extension SDK will be given to show how you can easily create your own apps to work with SmartWatch. Last, but not least, the class will cover the SmartWatch sensor API and how to use an external accelerometer in your Android application.

This class is sponsored by Sony Mobile Communications.

Level: Intermediate
Topic Area: Developer Essentials
Thursday, May 17
8:30 AM - 9:45 AM

Android in the Stratosphere: Advanced Development for Near-Space Explorationstarburst image Has code image

Have you ever wondered what the world would look like at 100,000 feet above sea level? Wonder no more. The instructor took a weather balloon, an Android phone and a sense of adventure, and launched Android into near-space.

This class will explain advanced programming techniques used in Android to perform GPS tracking and data recording, as well as automated camera capturing to document and record flight information. Other topics covered in this class will be utilizing the Google Maps API with custom drawing, SQLite database creation and manipulation, and creating services.

Level: Advanced
Topic Area: Developer Essentials
Building a Cloud IDE for Android Using Open Source Has code image

As HTML5 proliferates, the Web is becoming competitive to the desktop as a platform for powerful applications. Many of us are using Web platforms for more and more of our daily life, like banking, communication, news and games. However, developers are still not using the Web as a development platform.

This talk will examine what needs to be done to bring an Android IDE to the Web. Along with the all of the benefits of a standard IDE, the Web platform provides the basis for some key IDE innovations in accessibility, on-boarding, usability and collaboration.

We’ll start by examining a sampling of cloud IDEs. AppLaud Cloud IDE will be used to show how cloud development simplifies and eases the creation, development and deployment of a PhoneGap Android app. We’ll then dive deeper into how the AppLaud Cloud IDE was developed. We’ll see how open source is used to create the Web client with one. We’ll discuss the Web server and the mobile development components of the IDE. We’ll discuss what went into the evaluation and selection of the key components.

For the Web client, we’ll examine ACE for browser editing, jstree for project tree creation, jQuery UI Layout for building an IDE layout, and openid for authentication. We’ll take a look at how PhoneGap binds JavaScript APIs to Android functionality, jQuery Mobile helps create mobile UIs, weinre enables browser to device debugging, and Ripple emulates an Android app in a desktop browser.

For the Web server, we’ll see how node.js is used to provide the guts for the IDE capabilities, including looking in detail at how node.js interacts with the Android SDK for creating, building and releasing Android apps.

Level: Advanced
Topic Area: Developer Essentials
Building an Ad Platform for Androidstarburst image Has code image

Future ad platforms on Android devices will be more interactive to the users utilizing hardware/sensor features of the device and across the network bandwidth infrastructure. Minimizing the release cycles of the platform by applying loose couple architecture in the mobile world is key, and a few tweaks will help control the ad platform remote controlled from the server end, while designing ads for the size of the device, whether phone or tablet.

This session will focus on building ad platforms for Android, including how to make more interactive 3D ads by utilizing the gyroscope and accelerometer features of the Android platform, while designing location aware ads without consuming too much mobile power. How to exploit the device/geo specific targeting on Android phones and tablets and enhancing the timeline of the ad delivery across all network infrastructure (i.e. Edge, 3G/4G, Wi-Fi).

Finally, the session will deliver best practices to keep in mind while designing an SDK, specifically for the Android platform, including caching ads, HTML5 video playback and callback results.

Level: Intermediate
Topic Area: Android Business
Cross-Platform Development for Games and Graphically Intense Applicationsstarburst image Has code image

This session will demonstrate an environment the instructor uses every day for building cross-platform OpenGL-based applications that run flawlessly on Android. This environment has saved us hundreds of hours of time and is suitable for any application that can be displayed solely with OpenGL.

The general technique involves the use of NDK and C++ as a primary language, and any one of several thin middleware libraries can be used to significantly reduce the amount of code required to implement. Limitations are that it is not well-suited to normal apps as the standard Android UI library will not be available, but it is an ideal environment for games and rich interactive applications, and it provides phenomenal results in regard to both quality and development time saved.

Level: Advanced
Topic Area: Developer Essentials
Keep It clean with SOAP Client Developmentstarburst image Has code image

While SOAP and XML-based services may have fallen out of favor next to modern REST- and JSON-based Web services, they are still very prevalent, especially in enterprise environments. Not only do SOAP and .NET Windows Communication Foundation-based Web services make up a large part of legacy Web services, but new ones continue to be implemented. We’ll use examples that cover both published Web services and internal Web services.

Google encourages developers to use REST- and JSON-based Web services and not to work with SOAP- and XML-based Web services because of the bandwidth and parsing overhead. Unfortunately, sometimes we don’t have a choice for how the service was implemented.
This class covers the architecture of using a Web service from a mobile device, the comparison of different encodings and compressions, security, encryption, and authentication. Specific examples are provided using different frameworks that are available to consume SOAP-based Web services.

At the end of the session, you’ll be equipped with the information and knowledge you need to integrate and consume SOAP and WCF Web services from your Android applications. Attendees must have Android development experience.

Level: Advanced
Topic Area: Developer Essentials
Optimizing Android UI: Tips for Creating Fast and Responsive Applicationsstarburst image Has code image

Building a successful Android application requires more than just putting something in the market. If you want to delight your users, you have to create an app that smoothly animates and is responsive to the touch. Details matter. No one likes to use an app that stutters during scrolling and fails to respond to taps.

In this class, you will learn practical techniques you can use to speed up the drawing of your UI. With detailed code examples, you will learn:
  • Strategies for moving long-running operations off the UI thread, including how to effectively use Handlers and Services.
  • Why you should be using Loaders to asynchronously load data into your app.
  • How to create smoothly scrolling lists by reusing views and implementing the ViewHolder pattern.
  • How to use ViewStubs, RelativeLayouts, and GridLayouts to optimize the drawing of your UI.
This class is intended for people already familiar with Java and the Android framework. You should understand the Activity life cycle, how data adapters work, and have a basic understanding of Androids XML layout.

Level: Intermediate
Topic Area: Developer Essentials
11:45 AM - 12:15 PM

After the Download: Analyzing and Targeting Mobile App Customers

If you’re in the apps business, understanding how to effectively monetize users is crucial. But how? The days of measuring a mobile app’s success solely on the number of downloads is over.

This business session will teach how leveraging user-based funnel analysis and cohort-based engagement analysis allows developers to increase conversion rates, create a better user experience, and maximize revenues. You will see how tailoring the user experience with targeted content and offers can further increase per-user revenue.  

You’ll learn:
  • Why the number of downloads is not the most important metric in your app’s success
  • How to use funnel analysis to increase conversion rates 
  • How to use engagement analysis to increase retention 
  • Why targeting users with tailored experiences and content can increase per-user revenue 

This class is sponsored by Apsalar.

Level: Advanced
Topic Area: Android Business
Android Monetization – Should I Quit My Day Job?

A real problem faced by nearly all Android app developers: How can my (great) app generate some $$$ for me?

To help you with this significant challenge, this class will start at the beginning by reviewing monetization options out there -- from in-app banners to trying to sell your app, to the freemium model, offer walls and search-based monetization. We’ll help you better understand each of these alternatives and show you how to match your app with the best monetization model for it. Understanding which type of monetization works best for you can significantly increase your app revenue and deliver truly amazing results.

This class is sponsored by StartApp.

Level: Overview
Topic Area: Android Business
Challenges in Code Signing, Key Security, and Keeping Track Of It All for Android Developers

For Android developers, the open nature of the Android platform allows for great freedom and creativity in the building of applications relative to more restrictive platforms, but it can also leave the door open for developers with malicious intentions. Google has established baseline security practices for developers in its Android SDK, but even these measures can’t catch everything. Just in April, Google Play removed 29 data-stealing applications that mimicked popular games in Japan after they were identified by Symantec.   
 
One way developers can mitigate the risk of Android application mimicry is through code signing. While Android requires all code to be signed, it is not a perfectly secure process. Developers can sign with a certificate they create on their own, but trusted third-party authentication from a Certificate Authority has never been required. Also, that certificate has to be valid for a minimum of 25 years, and upon releasing a newer version of an app, the developer needs to make sure to find the original certificate and resign the code, otherwise the older version of the app will remain on the user’s device instead of being replaced. For corporate developers, even more complicated accountability issues exist. 

Attend this class to learn about these security issues for developers, and best practices for good security hygiene in mobile application development. Additionally, you will see a code signing solution that allows for better key management, auditing and reporting of apps signed, as well as secure storage of apps and keys.

This class is sponsored by Symantec.

Level: Overview
Topic Area: Android Business, Developer Essentials
Social Beyond Boundaries

Personal messaging across operating systems, carriers and geographies is easy to implement and can extend the reach of your application to encompass users of virtually all handsets, regardless of operating system or carrier. You can add this same class of messaging to non-cellular devices as long as you have an Internet connection. Adding P2P SMS to your application can be a fast and efficient way to extend the reach of your social networking platform to those that you might not otherwise be able to include. This can be accomplished through the use of a variety of APIs any of which will offer full, two-way messaging between connected devices.
 
High-level architectural discussions will cover how messages can flow between different messaging channels or provide a layer of anonymity to the mobile user.

This class is sponsored by Clickatell.

Level: Overview
Topic Area: Developer Essentials
Tips, Tools and Technology for Android on Intel Architecture Has code image

Get on the ground floor of creating amazing apps for the mobile technology of tomorrow. When you optimize your app for Android on the Intel Architecture platform, you are opening the door to a new world of opportunities.
 
In this session, you will learn about the Android Gingerbread and ICS x86 emulator image add-ons and how to use them in conjunction with the Intel Hardware Accelerated Execution Manager, allowing the emulator to run at near native speed. In addition, learn how the Intel Graphics Performance Analyzer for Android can help optimize games, media, and other graphics-intensive applications. Finally, get tips on how to create NDK-based Android apps for Intel Atom processor-based devices.
 
This class is sponsored by Intel Software.

Level: Intermediate
Topic Area: Developer Essentials
2:00 PM - 3:15 PM

Android Nuances, Limitations and Workaroundsstarburst image Has code image

Android is a very ambitious project with a ton of devices to support, and so clearly the project has had to make some sacrifices to gain so much compatibility. From one developer to another, there are some less-than-perfectly documented issues that may make you want to pull your hair out, which you may run into mid-course in development. Fortunately, the instructor has already pulled his hair out and can share with you the limitations and workarounds.

Here's a brief list of things you may not have been planning on having as issues:
  • Input and sound have no guaranteed latency, nor are they usually low-latency on most devices.
  • On many implementations, reception of UDP broadcast must be explicitly enabled.
  • Many of the first multi-touch devices don't support discrete touch points.
  • Your activity life cycle calls may surprise you on some devices.
  • In-App-Billing callbacks are asynchronous.
  • They didn't add that API until very recently!
  • There's usually not a lot of memory available for your graphics.
  • The emulator is very slow.
Each of these issues can be well defined, and many have very usable workarounds. Knowing about them at the onset of a project and planning to use the workarounds can save significant time and frustration.

Level: Advanced
Topic Area: Developer Essentials
Building NFC-Enabled Android Applicationsstarburst image Has code image

Android’s support for Near Field Communications (NFC) offers developers a powerful new metaphor for mobile phone interaction: Physical Touch. NFC supports far more than secure financial transactions. Popular games like "Angry Birds Magic" have already incorporated NFC (you have to touch your phone to another NFC-enabled phone to unlock game levels) to expand the social interaction of mobile gaming, and a new breed of enterprise applications that tout proof of presence for remote workers already exists. Industry research has demonstrated that NFC provides a more efficient and friendlier user experience than QR codes.

This advanced class covers the nuts and bolts of NFC development on the Android platform. You will learn the basics of NFC, including the types of RFID tags that the technology supports, as well as a primer on security concerns and tag storage limitations. Code examples will be provided to demonstrate how programmers can leverage the NFC Data Exchange Format open standard inside their applications for reading/writing data to/from RFID tags. You will also be introduced to the NFC Tag Event open standard for back-office integration.

You are not required to have an NFC-enabled phone, but are strongly encouraged to attend with an NFC-enabled handset, such as the Google Nexus S (3G), HTC Amaze (4G), or Samsung Galaxy Nexus (4G), since the Android emulator does not support NFC emulation.

Level: Advanced
Topic Area: Developer Essentials
Close the Other Gap: Write a PhoneGap Power App!starburst image Has code image

Moving beyond demonstrating individual bells and whistles of PhoneGap, attendees will create a PhoneGap Power App. While PhoneGap closes the gap between HTML5 and native device access, this course closes the other gap. The one between your practice apps - showing one or two features in an isolated setting - and a “real world”  app - one that interacts meaningfully with the physical world, using device capabilities such as a server for content serve/store, and offers secure login to registered users.



Yes, all this is possible using the power of PhoneGap APIs and Plugins, jQuery Mobile, and existing open source modules! Using the AppLaud PhoneGap Project Creation Wizard, plus a few bits of provided code, we will create a power app from scratch. The example app will use the PhoneGap Barcode Scanner Plugin, Child Browser Plugin, Local Storage, Open ID Authentication, Ajax, and the jQuery Google Maps Plugin. A server will be available for testing the resulting app during the class, and the node.js server code will be reviewed and made available.



You are encouraged to use the resulting app to seed their killer app idea. Some knowledge of Android Tools, PhoneGap and HTML/CSS/JavaScript is needed. All source code and access to a test server will be provided. For those who wish to follow along, prior installation of the AppLaud Eclipse Plugin for PhoneGap /Android is required. Users of AppLaud Cloud Web-based IDE and the AppLaud App will be able to follow along as well.

Level: Advanced
Topic Area: Developer Essentials
Mastering the Android Touch Systemstarburst image Has code image

This session provides an in-depth look at the Android touch input system. We will examine the inner workings of how Android handles touch events within a view hierarchy. This will include how Android passes touch events between Views, Activities and the Window, as well as opportunities developers have to interact with and modify this chain.

We will then take a look at the opportunities provided by the system to handle a variety of standard single and multi-touch events and gestures, as well as advanced techniques for creating truly custom touch handling.

You should have a strong basic knowledge of working with Android views. Knowledge of the basic click handlers in the view framework is assumed. Sample code will be available ahead of time for those who would like to follow along with the examples and try them out.

Level: Advanced
Topic Area: Developer Essentials
3:30 PM - 4:45 PM

Android Business Essentials image

Are you an aspiring entrepreneur eager to build a sustainable business based on Android Apps? Learn how to maximize your chances of success without inviting too much stress. Learn some specific things you can do to promote your app and how to do them. The focus is on tools and techniques that will work for a small business or individual, even if you are just one person working out of your home office like the presenter. Learn about:
  • A mindset that could be your biggest obstacle to success (and how to change it)
  • Coming up with ideas and target markets
  • Using tools and people power to get more work done
  • Where to find resources at a low business price
  • How to do keyword research to increase profits
  • Maximizing app exposure within the Android Market
  • Specific ways to promote your app outside the market through Web marketing, video marketing and more
  • Communicating with customers through HelpDesk and e-mail newsletters


Level: Advanced
Topic Area: Android Business
Android Services Black Magicstarburst image Has code image

The most interesting part of the Android stack are the Android System Services. The more than 50 services expose low level functionality, such as power management, Wifi, camera, sensors, GPS, display, audio, media, and so on, as well as the hardware all the way up to the application layer. While each one is different, they all have certain similarities, namely the way they rely on Binder (Android’s IPC mechanism), use JNI to cross Java-C boundary, and use shared libraries to abstract the Linux drivers.

In this talk, we’ll explore the common system services in Android and discuss their architecture. You will get to see the diagrams of the inner workings of some of the previously undocumented parts of the Android stack. By the end of the talk, you should have a better understanding of the underpinnings of the backbone of Android OS.

Level: Advanced
Topic Area: Developer Essentials
Remixing Androidstarburst image Has code image

One of the long-term advantages of Android over any other mobile platform is that it is open source. What that means for you is that you can rehash it into a new product, a new ROM. That new operating system may not even look like the Android that was intended for mobile phones.

The problem with Android customization is that at this point it is mostly black magic - almost no documentation exists and your only way of figuring things out is reading the source code, many gigabytes of it.

In this talk, we’ll explore how to go about customizing Android and what some of the philosophy behind the organization of the code and the build system is. You will learn at a high level how to go about customizing Android by adding custom apps, libraries, daemons, binaries, and other code and resources that go into the operating system. You will also learn about the start-up process for a typical Android device and a bit about its security model as it relates to Linux.

Level: Advanced
Topic Area: Developer Essentials
SCM for Android Developers Using Git Has code image image

Whether you work alone or in a team, some sort of source control management is essential for things such as keeping a history of your code, dealing with integrating code, managing releases, and making your development workflow through different features painless.

If you’re coming from something like CVS or SVN, the open-source Git version control system will turn what you know about SCM on its head. Come learn about why Git is different, and what that difference means to you as an Android developer.

Level: Intermediate
Topic Area: Developer Essentials