Mobile Device Programming CS3680
CHOOSE YOUR PLATFORM iOS Android Google Apple and the Open Handset Alliance Apple We will talk about both of them in class, but you should choose one to do your projects.
TOOLS iOS Eclipse Xcode Android http://eclipse.org with ADT plug-in Xcode Runs on Linux, OS X and Windows Runs only on OS X ADT (as in ADT plug-in for Eclipse) stands for Android Development Tools The Eclipse IDE was originally developed at IBM Canada. Xcode uses gcc. You have to use a Mac to develop software for iOS. Available from http://eclipse.org Free and open source Available on OS X installation disk and in the App Store
Java PROGRAMMING LANGUAGE Objective-C iOS Android Uses some of the Java SE API Superset of C There are various libraries and development frameworks (Phone Gap, Quickconnect, Titanium) that allow development of apps for both Android and iOS. A couple of years ago Apple said it wouldn’t approve any apps made with third party libraries, which (understandably) upset a lot of iOS developers. A few months later they backed down. The only scripting language that Apple allows is JavaScript (in a web view). Android has something called SL4A (Scripting Layer for Android. Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell are currently supported. Google made their own JVM called Dalvik Messages, properties Reference counting—automatic in iOS 5 Garbage collection
MAKING A GUI Code iOS XML Android iOS XML GUI editor—clunky compared to the one for iOS Xcode storyboards Before Xcode 4 there was a separate tool called Interface Builder that was used to make iOS GUIs. Code Code
DISTRIBUTION App Store Google Play iOS Android Apple must approve every app Can also install apps from other sources Android apps were originally sold in the Android Market. Other iOS options: Ad hoc distribution if you’re a registered ($100/year) Apple Developer Enterprise distribution if you’re a ginormous company Some people complain that Apple’s approval process is arbitrary and slow. Easy to install apps on your device Some complaints… $100 per year One-time fee of $25
WHAT DO YOU THINK? Android iOS (your comments here)
ANYTHING IN COMMON? SQLite Open GL ES web views iOS Android Java Objective-C Eclipse Open GL ES Xcode Both platforms define various life cycle events in applications. Both use the concept of views and subviews. Some hardware features are common to both platforms: cameras, location (GPS), accelerometer. There are various libraries and development frameworks that can create apps for both. Often those make use of web views, JavaScript, and HTML5. web views open distribution controlled distribution