Skip to content

CS 443 Mobile Application Development

This course introduces the principles of developing interactive mobile applications and services that may be resident on a phone or the web. There will generally be interaction between the client app and the service online. Students will be exposed to a variety of different popular, contemporary or emerging platforms and operating systems, and be sufficiently informed about the different options and capabilities available on these platforms. Students will also be exposed to the features (both hardware and software) and sensors available on mobile devices and will be encouraged to explore their use in building applications and services. This course requires good programming skills in at least one language, as well as web development ability. Principal topics include mobile friendly web app development, SMS application development and native app development. Client side app development on platforms will include at the minimum J2ME*, Android and Windows Mobile. Development using contemporary cross platform tools (including CodeNameOne, Cordova/Phonegap) will also be explored. Software Engineering and design (look and feel) will be emphasized. Insight into entrepreneurship (building a business around a mobile application) will be provided. Attention will be paid to exploring new, emerging technologies. The course is very project oriented, as students must receive many hours of hands-on practice and experimentation.

To equip students with the skills to design mobile phone applications – for dumb phones and smart phones and everything in between. To give students hands on experience on a range of contemporary mobile app development platforms, techniques, tools and methodologies. To empower students to design and develop and deploy their own web services that are mobile friendly. To encourage students to become mobile app entrepreneurs. To identify needs and opportunities in the developing world and to develop businesses and services out of these.

ASHESI LEARNING GOALS ADDRESSED IN THIS COURSE:

  1. Innovation and Action Oriented a. Students will be encouraged to identify challenges in society around which they can build services and businesses. They will typically have a short amount of time from concept through development to deployment. This will prepare them for the real world, to be action oriented.
  2. Communications a. There will be presentation of work done to the class and hopefully to the Ashesi community and the world at large when students make their work available for all to critique, both in live presentations, as well as when posted on the WWW.
  3. Leadership and Teamwork a. Students will work in teams sometimes, with one product as the output. Leadership will be shown by student as they guide and help along their colleagues to grasp certain concepts.
  4. Curious and Skilled a. Students will be excited enough about the potential for what technology can accomplish and will be expected to push the boundaries by incorporating features that are not taught in class in the projects that they will do. Such work will be recognized for extra credit.
  5. Technology a. Students will become adept at using contemporary tools to develop online business solutions, and should be able to either start their own business or work in this area.

INTRODUCTION ( Mobile Apps: Opportunities & Course Overview, Software Engineering in the mobile context. Agile development) SMS Applications ( Web based services: aggregators eg SMS GH, Modem/phone based services: Frontline SMS, introduction to AT commands, Offline services) BROWSER-BASED APPLICATION DEVELOPMENT ( Mobile web development, Intro to W3C Standards and best practices, xHTML, access keys, User agent sniffing, Device Recognition, dotMobi, use of device atlas, Device detection vs mobile first responsive design. CSS media queries, Mobile Web Design Tools and Certifications Dynamic Content RSS and Advertising, Mobile friendly web technologies eg AJAX, image adaptation etc., HTML5 features for mobile., jQueryMobile (forms, lists, themes, panels, javascript, storage, geolocation, canvas, application cache, manifest, view ports, touch & swipe guestures, orientation etc)) NATIVE APPLICATIONS ( App Inventor (basic forms, file I/O, lists, HTTP etc), Android: activities, events, http, lists, spinners, fragments, SQLite, GPS, media, graphics, canvas, game development, camera, sensors, file IO, new: services, J2ME (similar coverage as for android), Windows 8 (same range of topics as for android)) CROSS PLATFORM DEVELOPMENT ( Phonegap/Cordova —> use of JQuery Mobile, CodeNameONe) ENTREPRENEURSHIP ( Marketing & Advertising, Business models, Business Plans Nuts and Bolts of Writing an Executive summary, Legal Issues, Design & presentation issues (eg consistent themes)) * one of new topics: ( Angular JS, Ionic framework, Sencha touch, Titanium appcelerator, Swift for iOS, Python for Android)

*Each meeting of the class has a practical/lab component. *Each platform has a mini project (typically requiring Forms with variety of widgets, Lists, HTTP, saving locally on device, QR/barcode scanning, GPS, graphics- drawing (eg charts) on a canvas, and sometimes game routines.) App Inventor: data collection app, with HTTP submission and barcode reading WEB: xHTML with device detection, with CSS media queries PhoneGap: HTTP data collection, with QR code reader, offline storage SMS: Frontline to send and receive data based on DB query SMS: SMSGh – SMS on registration, One time passwords Android: Temperature converter, two forms with intents, start activity for result, submit data by HTTP Android: Viewing Canteen menu, and Ordering food Code Name One: Survey app, fetch into list via HTTP Window Mobile Lab: Survey app, fetch into list **Midsem project and Final project includes desktop web, mobile web, SMS, at least one native platform, at least one cross platform used complementarily in one open ended or fixed project.