2012 Marty Hall
Android Programming: Overview
Originals of Slides and Source Code for Examples: [Link]
Customized Java EE Training: [Link]
Java, JSF 2, PrimeFaces, Servlets, JSP, Ajax, jQuery, Spring, Hibernate, RESTful Web Services, Hadoop, Android.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
2012 Marty Hall
For live Android training, please see courses at [Link]
Taught by the author of Core Servlets and JSP, More Servlets and JSP, and this Android tutorial. Available at public venues, or customized versions can be held on-site at your organization.
Courses developed and taught by Marty Hall Courses developed and taught by [Link] experts (edited by Marty)
JSF 2, PrimeFaces, servlets/JSP, Ajax, jQuery, Android development, Java 6 or 7 programming, custom mix of topics Ajax courses can concentrate on 1EE library (jQuery, Prototype/Scriptaculous, Ext-JS, Dojo, etc.) or survey several Customized Java Training: [Link]
Java, JSF 2, PrimeFaces, Servlets, JSP, Ajax, jQuery, Spring, Hibernate, RESTful Web Services, Hadoop, Android. Spring, Hibernate/JPA, EJB3, GWT, Hadoop, SOAP-based and RESTful Web Services
Contact hall@[Link] for details Developed and taught by well-known author and developer. At public venues or onsite at your location.
Topics in This Section
Motivation
Web Apps vs. Mobile Apps iPhone Apps vs. Android Apps
Books and references
2012 Marty Hall
Web Apps vs. Android Apps
Customized Java EE Training: [Link]
Java, JSF 2, PrimeFaces, Servlets, JSP, Ajax, jQuery, Spring, Hibernate, RESTful Web Services, Hadoop, Android.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Advantages of Web Apps
Universal access
Browsers are everywhere Any device on the network can access content
PCs, Macs, Linux, Android, iPhone, Blackberry, etc.
Automatic updates
Content comes from server, so is never out of date
Well-established tools and methodologies
In multiple languages
Java, PHP, .NET, Ruby/Rails, CGI, etc.
6
Disadvantages of Web Apps
Few and weak GUI controls
Textfield, text area, button, checkbox, radio, list box, combo box. Thats it! No direct drawing (except for HTML5 Canvas)
Cannot interact with local resources
Cannot read files, call programs, or access devices on the users machine
Inefficient communication
HTTP is weak protocol
Hard to write
Requires knowledge of many technologies
Java, HTML, HTTP, CSS, JavaScript, jQuery, XML
Designed for large displays with mouse
7
So harder to use on small phone displays with touch screen
Advantages of Mobile Apps
Many GUI controls
Textfield, text area, button, checkbox, radio, list box, combo box, clock, calendar, date picker, dialog box, image gallery, etc.
Comparable to options in desktop programming
Supports direct drawing
So animated games ala Angry Birds possible
Can interact with local resources
Can read files (e.g., contacts list), have local database, access GPS, initiate phone calls, get input from microphone, create voice output, read screen orientation, etc.
Advantages of Mobile Apps (Continued)
Efficient communication
Can use any networking protocols you want
Easier (?) to write
Requires knowledge of one language only
Java for Android Objective C for iPhone
Designed for small displays with touch screen
So, many apps and GUI controls are optimized for this environment
9
Disadvantages of Mobile Apps
No universal access
Apps must be installed one at a time on each phone An Android app cannot run on iPhone, Blackberry, PC, Mac, or Linux box
Difficult to manage updates
User must intervene to get latest versions
Newer (esp. Android)
So, fewer established tools and methodologies
On the other hand, Android programming is similar to desktop Java programming, and there are plenty of established approaches there
10
2012 Marty Hall
Android Apps vs. iPhone Apps
Customized Java EE Training: [Link]
Java, JSF 2, PrimeFaces, Servlets, JSP, Ajax, jQuery, Spring, Hibernate, RESTful Web Services, Hadoop, Android.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Installing Apps
General apps
iPhone has larger selection Android trying to catch up
In-house-developed corporate apps
iPhone apps can only be installed via the App Store
iPhone requires you to submit app to the Apple App Store and get approval, even for apps from your own company
Unless you jailbreak your phone
Android apps can be installed through
Google App Store Amazon App Store USB connection from PC Email Corporate Web site
12
Languages for Apps
iPhone
Objective-C
Similar to, but not exactly the same as, C++ Virtually no corporate presence for Objective-C, other than for mobile apps
Android
Java
The single most widely used language inside corporations
C/C++
Can call native apps (with some difficulty) via an approach similar to JNI for desktop Java
The real reason Android runs Java
From Randall Munroe and [Link] 13
Operating Systems for Developing Apps
iPhone
Macs
Android
Anything with Java and Eclipse
Macs PCs Linux Solaris
From [Link]
Issue
Not so much which is cooler and which you personally prefer, but rather which is already installed in corporate environments.
14
Programming Jobs: Android vs. iPhone
Caveat: [Link] shows rough trends only
15
Job postings with both words anywhere in posting Biased by the job sites it samples
Google Search Trends: Android vs. iPhone Programming
Caveat: search volume shows rough trends only
16
For example, one of Android or iPhone might have clearer documentation, and require less searching
Advertising Revenue: Android (53%) vs. iPhone (27%)
17
Caveats: advertising does not equate to market volume, biased by who Millennial Media works with
Market Presence
Caveat: based on survey, not sales data
18
Raw data at [Link]
Other Issues
Market presence based on sales data
Blackberry & iPhone used to dominate smart phone market 2nd quarter 2010 smart phone sales (source: Nielsen)
Blackberry: 33% Android: 27%
Caveats: these are sum of all Android devices. And, many Android phones given away for free with carrier subscriptions. Also, these numbers partially contradict graph on previous slide.
iPhone: 23%
Phone features, quality of apps, and coolness factors
Matter of opinion, but iPhone very strong here
19
From Randall Munroe and [Link]
Bottom Line: iPhone vs. Android
Which to use personally
iPhone has large market share, bigger app store, cooler interface (?), and more loyal users Android more open and growing more rapidly Bottom line: no clear winner, personal preferences prevail, but iPhone has edge
Which to use for in-house corporate apps
iPhone apps very hard to install, Android simple iPhone uses Objective C, Android uses Java Bottom line: Android is clear winner
20
2012 Marty Hall
Wrap-Up
Customized Java EE Training: [Link]
Java, JSF 2, PrimeFaces, Servlets, JSP, Ajax, jQuery, Spring, Hibernate, RESTful Web Services, Hadoop, Android.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
References
Books (in rough order of preference)
Professional Android 4 Application Development (Meier) Busy Coders Guide to Android Development (Murphy)
Online only: [Link]
Android Cookbook (Darwin) Pro Android 3 (Komateni et al) Android Developers Cookbook (Steele & To) Android in Action, 2nd Edition (Ableson, Sen, & King) Android Application Development for Dummies (Felker)
Online references
[Link]
By far the most important single reference.
Android forum on StackOverflow
[Link]
Android widget gallery
[Link]
22
Summary
Web apps vs. Android apps
Web apps can run on Android, iPhone, Blackberry and regular computers. But, they have weaker GUIs, cannot use local resources (files, databases, GPS, camera), and are often ill-suited to small screens Android apps can local resources, are optimized for small screens, have richer GUIs, but cannot be accessed on other phone types or on regular computers
iPhone vs. Android
For personal use, situation is unclear, but edge to iPhone For building corporate apps, Android is clear winner
23
2012 Marty Hall
Questions?
JSF 2, PrimeFaces, Java 7, Ajax, jQuery, Hadoop, RESTful Web Services, Android, Spring, Hibernate, Servlets, JSP, GWT, and other Java EE training.
Customized Java EE Training: [Link]
Java, JSF 2, PrimeFaces, Servlets, JSP, Ajax, jQuery, Spring, Hibernate, RESTful Web Services, Hadoop, Android.
Developed and taught by well-known author and developer. At public venues or onsite at your location.