Syllabus fr Mbile Applicatins Descriptin: Tday's applicatins are increasingly mbile. Cmputers are n lnger cnfined t desks and laps but instead live in ur pckets and hands. This curse teaches students hw t build mbile apps fr Andrid, ios, and Windws 8, the trinity that is tday's mbile perating platfrms. Students learn t write bth web apps and native apps fr Andrid using Eclipse and the Andrid SDK, t write native apps fr iphnes, ipd Tuches, and ipads using Xcde and the ios SDK, and t write web apps fr bth platfrms. The curse als tuches n Windws 8 applicatin prgramming, s as t prvide students with a stepping stne fr applicatin develpment in the mbile perating system f their chice. Additinal tpics cvered include applicatin deplyment and availability n the crrespnding app stres and markets, applicatin security, efficient pwer management, and mbile device security. Prerequisites: - Students are expected t have knwledge f HTML, Javascript and CSS. The curse des nt aim t cver these tpics, thugh des discuss in detail the details and feature-sets f HTML5, and CSS3, as they pertain t mbile brwsers. The first part f the curse will deal with these subjects. - Students are expected t be cmfrtable reading Java and/r C-cde: Java is the native prgramming language f Andrid, and therefre prir Java knwledge will save a lt f time, and smthen the learning curve f prgramming Andrid Apps. The curse will nt teach Java but will fcus n thse framewrks and classes which are new and unique t Andrid. ios s native prgramming language is Objective-C. The curse will nt teach yu Objective-C but will fcus n the app prgramming mdel. The leap frm C t bjective-c isn t that large, s if yu re cmfrtable with C, cnsider this curse. Windws 8 s native prgramming language is C/C++. - Students need t familiarize themselves with the develpment envirnments f Eclipse (free dwnlad), XCde and Visual Studi 2012. befre the curse starts. Links t tutrials will be presented, but the IDEs themselves will nt be discussed during the curse.
Expectatins: - Assignment 0 (nt graded) will be prvided (with slutins), t help yu gauge whether r nt yu meet the technical prerequisites - Be prepared fr a *lt* f hard wrk: Be prepared t cde, ften, and much. The aim f this curse is t get yu t a pint where yu can bast yur wn App prtfli. But Apps aren t ging t write themselves. - There is a lt f self-study required: Resurces n mbile prgramming are plentiful, and as we aim t cver all three mbile OSes time is limited. Each presentatin will have required pre-reading and pst-reading. Just like in law schl. Make sure t, at the very least, skim the references. Our lecture time is, alas, limited t nly tw hurs at a time, and the gal is t maximize that time. - Hmewrk assignments and prjects will be given in advance, arund the time the curse starts. This will enable yu anther way f assessing whether r nt the curse is right fr yu. I m a prpnent f self-study and if yu want t d yur hmewrk assignments ahead f when they re discussed in class pwer t yu. That said, I m less favrable when it cmes t extensins. Dn t leave things t the last minute! Often surprisingly simple tasks can take mre than yu thught they wuld (q.v. Parkinsn s law). - assignments are theretical, t test yur cmprehensin f the architecture. prjects invlve cding. - Yu shuld write cde that wrks, thugh generally we are lax n style. Meaning, we wn t hund yu n variable names and readability. Readable cde helps, hwever, in thse cases where yur cde desn t wrk as well as yu hped, and we need t pinpint the prblem s as t grade It as fairly as pssible. In general, ur interest in yur cde is inversely squared prprtinal t the perfrmance f yur App (in ther wrds, write slid apps which wrk, and we ll take it fr granted the cde quality is gd!) - Aside frm the final prject, wrk is sl. This will be yur chance t shine Cllabratin (and plagiarism) will be frwned upn. Yu re all HExt students, and I m sure yu re well acquainted with the principles f academic hnesty by nw. Crllary: Yu shuld write ORIGINAL cde. Reusing pen surce/internet-brne cde is acceptable, if and nly if yu pint ut exactly which cmpnent it is that yu have used in whatever way. In thse re-use cases, yu shuld limit it fr specific subtasks fr which yu d nt want t re-invent the wheel (e.g. cmpressin, SSL, etc). Dn t try t re-use an entire app.
- ios and Andrid Apps will be expected t perfrm well in the crrespnding simulatrs. Fr Andrid, tests will als be cnducted n an Andrid phne and tablet cnfigured fr lcal app deplyment ( USB Develpment ). - Fr the final prject, peple are encuraged t wrk in teams. But that means that: The bigger the size f a team, the mre that is expected f it A team stands tgether r falls tgether. Barring unusual circumstances, the grade will be shared by all team members Every team member will have t prvably demnstrate his r her rle (s as nt have ne herculean member assume the respnsibilities f the rest). - The curse will use a frum either isites r Piazza. Students are expected t participate and share ideas (all within academic hnesty limits) - The instructr and supprt staff will als be available via Skype. This is especially beneficial fr distance students. Cntact: - Jnathan Levin, Instructr (JL@HisOwn.cm) Skype: cscie76
Baseline Syllabus: (actual tpics can and will vary) Lecture I: Intrductin t mbile devices and Administratrivia (Assignment 0 due) - Mbile devices vs. desktp devices - ARM and intel architectures - Pwer Management - Screen reslutin - Tuch interfaces - Applicatin deplyment - App Stre, Ggle Play, Windws Stre - Develpment envirnments XCde Eclipse VS2012 PhneGAP, etc - Native vs. web applicatins Lecture II: HTML5/JS/CSS3 - Quick recap f technlgies - Mbile-specific enhancements Brwser-detectin Tuch interfaces Gelcatin Screen rientatin - Mbile brwser interpretatins (Chrme/Safari/Geck/IE) - Sample case studies Lecture III: Mbile OS Architectures (assignment 1 due) - Cmparing and Cntrasting architectures f all three Andrid, ios and Windws - Underlying OS (Darwin vs. Linux vs. Win 8) - Kernel structure and native level prgramming - Runtime (Objective-C vs. Dalvik vs. WinRT) - Appraches t pwer management - Security
Lecture IV-VI: Andrid/iOS/Win 8 Survival and basic apps (3 lectures) Building a simple Hell Wrld App in all three applicatins. Tpics include: App-structure, built-in Cntrls, file access, basic graphics Prject 1 due by lecture 4. Assignment 2 due by lecture 6. Lecture VII-X: Andrid/iOS/Win8 actually useful apps (4 lectures) Tpics include: DB access, netwrk access, cntacts/phts/etc. Prject 2 due by lecture 9. Lecture XI: Underneath the framewrks (Prject 3 due) Native level prgramming n Andrid Lw-level prgramming n (jailbrken) ios Windws lw level APIs Lecture XII: Advanced Tpics: Pwer Management (assignment 3 due) Wake lcks and assertins Lw-level OS supprt Writing pwer-smart applicatins Lecture XIII: Augmented Reality via GPS and ther sensrs GPS Accelermeter Camera Lecure XIV: Mbile device security, in depth Mbile malware Device prtectins ios Jailbreaking, Andrid rting and Windws defenestratin Lecure XV: TBD (assignment 4 due) (Final Prject due)
Grading*: 30% Assignments 30% Mini-Prjects 30% Final Prject 10% Participatin/Impressin/TBD * - may vary, but this shuld give yu a rugh idea Suggested bks: << TBD Sn >>