Android App Development Training
This 5-day class will give you a 360° developer's view of Android. You will learn how to build your own Android Apps using Google's SDK as well as master tricks of the trade. Topics covered include:
  • API
  • SDK
  • Activities
  • Intents
  • Lifecycle Management
  • Manifest File
  • Background Services
  • Native Applications
  • Remote Admin
  • REST
  • Gradle
  • Internals
This class is given either by Mark Murphy, author of CommonsWare's Android Development, or, Karim J. Yaghmour, author of O'Reilly's Embedded Android and Building Embedded Linux Systems.
Montreal, Canada:
  • July 11-15
-- Contact us for an on-site session quote
  • Motorola
  • Intel
  • Panasonic
  • Sony
  • IBM
  • BAE Systems
  • Cisco
  • ST Micro
  • Conexant

You will learn how to:

  • Design, implement and ship a broad range of Android Apps
  • Develop and debug applications using the JDK, ADB, the Android Emulator and the Android Studio environment
  • Use Android's SDK for creating, building and shipping Android packages (.apk)
  • Master the use of core components such as Activities, Services, Content Providers and Broadcast Receivers
  • Generate the required Manifest files for your applications, including Intent filters and Permissions
  • Build user interfaces using Views, Menus and Notifications
  • Handle the multiple form-factors and geometries available on Android devices
  • Store and retrieve data both from the local filesystem and SQLite database
  • Communicate with REST-based services
  • Intro to Android and App Development
  • Intro to Gradle, the Manifest, Resources, and Assets
  • Android Internals and the Process Model
  • Activities, Widgets, and Containers
  • Adapters and AdapterView
  • WebView
  • Using JARs and Libraries
  • The Action Bar
  • Multiple Activities and the Activity Lifecycle
  • Fragments and ViewPager
  • Resource Sets and Configuration Changes
  • Threads
  • Permissions
  • Files and Preferences
  • Databases
  • Internet Access
  • Accessing and Consuming Content
  • Overview of ContentProviders
  • Intents, Filters, and Broadcasts
  • Service Concepts
  • Remote Services and the Binding Pattern
  • Testing Basics
  • More on Gradle

This class is intended for developers who want to:

  • Develop Apps for the Android Market
  • Deliver Mobile Versions of Web/Enterprise Applications
  • Port Applications to Android

Requirements, the short version:

  • Java, a healthy dose of it. Make sure you can easily work your way through a Java codebase and are relatively comfortable developing your own Java applications. Usually this means 2+ years of experience.

Requirements, the full story:

  • Google has anchored Android's development environment around Java. You must therefore at the very least have a functional understanding of Java. As others have said, that doesn't mean that you need to be an expert Java developer. Google has in fact gone to great lengths to make Android development easy to approach. Nevertheless, you should be comfortable enough with Java to follow explanations and code exercises without requiring assistance with the language's basics.
  • Even if you do know Java, note that:
    • While Android is based on Java, Google has created an entirely new framework for developing Android applications. Hence, while your existing knowledge of Java class libraries (java.*) is a good asset, you will need to immerse yourself in Android's framework (android.*) to fully benefit from Android's capabilities. This is one of the goals of this class.
    • Android is a very deep software stack and the lower layers are mostly C and C++ based. If you intend to push the limits of what can be done with Android, by using the Native Development Kit, for example, you will need to look beyond Java to achieve your goals.
  • Q: What if I don't know Java?
    A: We strongly encourage you to familiarize yourself with the language before registering for this class. If you are a C# developer, for example, you should be able to pick up Java relatively easily; a lot of both languages' concepts overlap. If you are familiar with another object-oriented language such as C++, for example, you shouldn't be too far off either. No matter your background, you can pick up one of the slew of titles on learning Java. You should try to get yourself into a position where you can painlessly follow others' Java projects and can easily code on your own. Have a look on your favorite online bookstore for Java titles. We've seen good reviews of O'Reilly's Head First Java for example.

Mark Murphy

Mark Murphy is the founder of CommonsWare and the author of The Busy Coder’s Guide to Android Development. He is active in supporting the Android developer community, from answering questions on StackOverflow to publishing sample code and reusable components as open source.

A three-time entrepreneur, his experience ranges from consulting on open source and collaborative development for the Fortune 500 to application development on just about anything smaller than a mainframe. He has been a software developer for nearly three decades, from the TRS-80 to the latest crop of mobile devices. A polished speaker, Mr. Murphy has delivered conference presentations and training sessions on a wide array of topics internationally.

Karim Yaghmour

Karim J. Yaghmour is part serial entrepreneur part unrepentant geek. His experience combines a unique mix of mobile, embedded and kernel background with enterprise and web2.0/consumer-oriented Rich Internet Application development. Karim is the author of O'Reilly's Embedded Android and Building Embedded Linux Systems, which sold tens of thousands of copies worldwide and has been translated into several different languages.

Karim has provided training to companies such as: Motorola, Panasonic, NSA, BAE Systems, Conexant, Symbol, Scientific-Atlanta, and Karl Suss Gmbh. Some of Karim's recent mandates include leading development teams delivering products based on a variety of different platforms (.NET/Windows, BlackBerry, Linux, Drupal, Lotus Notes), technologies (Ajax, SQLite, PostgreSQL, CSS/HTML, jQuery/jQueryUI, ActiveDirectory/LDAP, MAPI, WebBrowser object) and programming languages (C#, Java, PHP, JavaScript, Perl, Python, Ruby on Rails, C++).

Having been an early believer in the power of open source, Karim pioneered the world of Linux tracing by introducing the Linux Trace Toolkit (LTT) in the late '90s. He continued maintaining LTT through 2005 and was joined in this effort by developers from several companies, including IBM, HP, and Intel. LTT users included: Google, IBM, HP, Oracle, Alcatel, Nortel, Ericsson, Qualcomm, NASA, Boeing, Airbus, Sony, Samsung, NEC, Fujitsu, SGI, RedHat, Thales, Oerlikon, Bull, Motorola, ARM, ST Micro, Infineon, WindRiver, MontaVista, Scientific-Atlanta, Wipro and Autodesk. Other contributions include relayfs and Adeos.

Karim has presented and published as part of a number of peer-reviewed scientific conferences, magazines and online publications, including Usenix, the Linux Kernel Summit, the Embedded Linux Conference, the Android Builders Summit, AnDevCon, the Embedded Systems Conference, AndroidOpen, the Ottawa Linux Symposium, LinuxJournal, the O'Reilly Network and the Real-Time Linux Workshop. Some of Karim's projects can be found in our Community section. Karim holds Masters and Bachelors degrees in Computer Engineering from the École Polytechnique de Montréal.

Pricing: 2,395$/student. Contact us for an on-site session quote.
Attendance: 12 students max.
Although we do sometimes accept to train larger groups in on-site settings, we believe that a 12 student cap ensures an optimal instructor/attendee ratio in the context of a public session.
Location: No public sessions are presently scheduled
  • Students must bring their own laptops. Please have a look at Google's list of requirements for setting up a proper Android development environment.
  • During the hands-on sessions, we use Google's Android Emulator. You can, nevertheless, test and develop most applications on any Android device.
Schedule: Classes run from 9 to 5, with breaks in the morning, at lunch and in the afternoon.
Payment: Opersys accepts all major credit cards, wire transfers and corporate checks drawn on US banks in US funds.
Policies: Students must register and pay all tuition fees prior to class start. Registrations cannot be canceled, though we will do our best to accommodate your situation. Class cancellations are very uncommon (and have never happened as of this writing), but, were they to occur, you would be notified as soon as possible and your tuition fees would be refunded in full.

This class can be given on-site and can be customized to your organization's needs. In addition to English, this class can also be taught in French. For more information regarding this class' logistics or to schedule an on-site session, please contact us.