ICOM6042 - Designing apps for smart mobile phones
Instructor Dr. Tat Wing Chim ( twchim@cs.hku.hk )
Teaching assistant Mr. Tony Kwan
Syllabus Smart phones have dominated the technology market in recent years, led by the major brands of iPhones, Android, Symbian and Windows phones. These increasingly powerful phones are supported by a whole range of applications (abbreviated to “Apps”) developed and uploaded for commercial or free distribution by professional as well as aspiring programmers that a whole new worldwide market has sprung up. More and more of these apps have been specially designed and developed for corporations that they are now beginning to play an important role in e-business operations.

This module introduces the design principles of these apps, their development, testing, and marketing as well as the technology platforms and programming languages for use on small screens. Hands-on practice is provided for students to gain confidence and some expertise, so that they can be on their way to exploit this new emerging career opportunity.
Objectives This module aims at introducing the design issues of smart phone apps. For examples, the smart phone screen is usually much smaller than the computer monitor. We have to pay special attention to this aspect in order to develop attractive and successful apps. Different smart phone apps development environments and programming techniques (such as Java for Android phones and Objective-C for iPhones) will be introduced to facilitate students to develop their own apps.
Learning outcomes

On successful completion of this module, students should be able to:

  • understand basic mathematics and the use of proper data structures for smart phone apps development
  • analyze and design attractive smart phone apps based on different user requirements
  • implement smart phone apps using proper Integrated Development Environments (IDEs)
  • work comfortably on platforms such as iOS and Android
Prior knowledge expected Students should have basic programming experience and know at least one programming language, e.g. Java, C++.
Topics covered

Part 1: Smart mobile phone apps design basics (3 sessions)

Session 1: Introduction to mobile apps

  • Brief history
  • Overview of Integrated Development Environments (IDEs)
  • Importance of mobile apps
  • Discussion of sample mobile apps and their features

Session 2: Hardware consideration

  • Screen resolution issues and introduction to bitmap
  • Audio effect of mobile devices
  • Performance optimization techniques for mobile apps execution
  • Cellular network and generation
  • Bandwidth and mobile apps downloading
  • Mobile apps networking

Session 3: Mobile game design

  • What is a game?
  • Basic elements of a game
  • Skills for game designer
  • Criteria to judge a game
  • Moving background effect
  • Collision detection
  • Shooting effect
  • Particle model for explosion effect
  • Discussion using some games

Part 2: Smart mobile phone apps development (6 sessions)

Sessions 4, 5, 6: Java programming for Android apps

  • Overview of Java
  • Overview of XML
  • Overview of Android SDK
  • Android Layout
  • Android ImageView
  • Programming the touch screen
  • Audio effect
  • Random function
  • Vibration function
  • Timer function
  • Switching between pages using Intent
  • Communicating with server
  • [Optional Lab] Basic Java programming
  • [Lab 1 , 2] Programming an application on Android platform

Sessions 7, 8: Xcode programming for iPhone apps

  • Overview of Objective-C and Xcode
  • Syntax of Objective-C
  • UIBuilder
  • UIImage & UIImageView
  • Programming the touch screen
  • Background music and sound effect
  • Tab control
  • Navigation control
  • Communicating with server
  • [Lab 3, 4] Programming an application on iPhone platform

Part 3: Advanced topics (2 sessions)

Sessions 9: Smart phone apps business

  • Putting apps onto real devices
  • Publishing apps on Google Play
  • Publishing apps on Apple Store
  • Documenting smart phone apps
  • Adding advertisements into smart phone apps
  • Cross-platform tools for smart phone apps development

Session 10: Importance of security to mobile apps business

  • Possible attacks to smart mobile phones
  • Possible solutions in the research community
  • Security of Android system
  • Cornerstones of Android security and privilege escalation attack
  • Security of iOS
  • iOS application certification and jailbreaking

# Topics are subject to modifications

Teaching format
  • Lectures with class discussions
  • Workshops (to guide and help students to complete simple programming tasks)
Assessment
  • Lab exercises: 40%
  • Group project: 60%
Course materials

There is no prescribed textbook for this module.

Enrolment No add or drop after 1 April 2015 (23:59)
Class quota Class size will be maintained at 50.
 
- Back -