CSCI E-65: Mobile Application Development Using Swift and ios



Similar documents
Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

ios Application Development &

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

MA-WA1920: Enterprise iphone and ipad Programming

Mobile Application Development ITP 342 (3 Units)

How To Develop An App For Ios (Windows)

2. About iphone ios 5 Development Essentials. 5. Joining the Apple ios Developer Program

Developing Applications for ios

Arduino Training - Basics of Micro-controllers Programming Basics

COLLIN COLLEGE COURSE SYLLABUS

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

Mobile Application Development ITP 342 (3 Units)

Teaching App Development with Swift Course Materials Overview

ios Team Administration Guide (Legacy)

Mobile App Design and Development

City of Dublin Education & Training Board. Programme Module for. Mobile Technologies. leading to. Level 6 FETAC. Mobile Technologies 6N0734

Android Application Development Distance Learning Program Brochure

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

How To Use Ios 5

Mobile App Framework For any Website

Learning ios Programming

Developing for the App Store. (Legacy)

View Controller Programming Guide for ios

STUDENT HANDBOOK Trent Online

Using the Push Notifications Extension Part 1: Certificates and Setup

Client Requirement. Master Data Management App. Case Study -

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

Mobile Application Technologies ITP 140 (2 Units)

The story so far: Teaching Mobile App Development at PG level at Londonmet

MEAP Edition Manning Early Access Program Hello! ios Development version 14

SmallBiz Dynamic Theme User Guide

geniusport mobility training experts

Mobile Application Development

Objective C and iphone App

iphone ios 6 Development Essentials

INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011

IT 415 Information Visualization Spring Semester

How To Use The Lutron Home Control+ App On An Ipad Or Ipod

Deploying Management and Security Agents to Mobile Devices. Deploying Mgmt and Security Agents

Praktikum Entwicklung von Mediensystemen mit

Your First App Store Submission

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Cloud Services MDM. ios User Guide

Take full advantage of IBM s IDEs for end- to- end mobile development

How To Use Titanium Studio

CSCI E 98: Managed Environments for the Execution of Programs

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

ios SDK possibilities & limitations

Symantec Mobile Management Suite

Application Programming on the Mac COSC346

Blackboard Pilot Report July 12, 2013

QuickStart Guide for Mobile Device Management

SENSE/NET 6.0. Open Source ECMS for the.net platform. 1

Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module A Simple ios Application

KonyOne Server Prerequisites _ MS SQL Server

ios App Development for Everyone

Strategic Use of Information Technology (CIS ) Summer /

CS 4330: Mobile Application Development Spring 2015

Oracle FLEXCUBE Direct Banking

E-commerce: Competing the Advantages of a Mobile Enterprise

INFORMATION TECHNOLOGY EDUCATION PROGRAMMING AND ANALYSIS COURSE SYLLABUS. Instructor: Debbie Reid. Course Credits: Office Location:

Creating Mobile Apps Development and Deployment

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

itunes U Course Guidelines

Module Title: Software Development A: Mobile Application Development

Introducing Xcode Source Control

City Tech Instructional Technology & Media Services. Blackboard Tutorial for Students

Android v ios Mobile Operating Systems

Information Systems and Supply Chain Management Bryan School of Business and Economics University of North Carolina at Greensboro

QuickStart Guide for Mobile Device Management. Version 8.6

Access Tropical Cloud Desktop from Any Device

the gamedesigninitiative at cornell university Lecture 1 Course Overview

QuickStart Guide for Managing Mobile Devices. Version 9.2

GUI and Web Programming

Start Developing ios Apps Today

SWISSVBS LEARNING CLOUD (SLC)

Tivoli Endpoint Manager BigFix Dashboard

SYLLABUS FOR CS340: INTRODUCTION TO DATABASES

Structured Content: the Key to Agile. Web Experience Management. Introduction

Colligo Briefcase Enterprise. Administrator s Guide

App Distribution Guide

Armedia. Drupal and PhoneGap Building Mobile Apps

Mobile Phones Operating Systems

Using the Apple Configurator and MaaS3360

Mobile Game and App Development the Easy Way

ORACLE ADF MOBILE DATA SHEET

Building native mobile apps for Digital Factory

Transcription:

Page 1 of 5 OFFICIAL 25 Jan 2016 CSCI E-65: Mobile Application Development Using Swift and ios Harvard University Extension School: Spring 2016 Instructor: Daniel Bromberg bromberg@fas.harvard.edu TF: R. Van Simmons rvsrvs@mac.com TF: Mark Sobkowicz mark@evtika.net Location: Science Center Room 309 Lectures: Mondays 5:30-7:30PM Sections: Each TF leads a 60 to 75-minute section; each student assigned to one TF and must attend that section. Students will be notified of section schedules by start of class. Sections will likely run from 7:45-9:00 on the same night of class. LATEST VERSION OF THIS DOCUMENT: http://git.classyswift.com/e65/admin/syllabus-spring-2016.pdf OBJECTIVE: To lay a foundation in the concepts, libraries, and development tools necessary to create and deploy a realistic App (mobile software application) on latest-generation iphones and ipads. We will focus on the fundamentals: the one-year-old Swift programming language; the Xcode IDE; the ios development cycle; the essential Foundation and Cocoa Touch libraries; Apple best practices, especially the Model-View-Controller paradigm; responsive event handling, such as thread-aware task dispatching; the storage and recall of user data to remote & local databases; and deploying apps via itunes Connect. While the ios API is vast, we intend to show enough core material and patterns such that students graduate able to apply their knowledge to uncharted territory and rapidly absorb advanced material on their own. PRE-QUALIFICATIONS: Students must take a pre-qualifying self-assessment test before enrolling: http://git.classyswift.com/e65/self-test (available 12/01/15). The test should take less than an hour. Answers will be available in a sub-directory. It is important before enrolling and investing considerable time & expense in the course that you feel confident in your answers. Please e-mail me individually if you are unsure about any particular answer or the overall difficulty level. READINGS: Readings will come from a combination of: The Apple Developer Library; Chapters from new e-books; and online tutorials. Students must understand that due to the young age of the technology, written documentation is relatively scarce and academic-grade texts do not yet exist. It is essential to be comfortable assembling know-how through a variety of sources, which will vary considerably in style, abstraction level, and intellectual depth. The following introductory material is highly recommended as preparation for the first class and will be due for the 2 nd class: https://developer.apple.com/swift/ One-page promotional background

Page 2 of 5 https://developer.apple.com/videos/wwdc/2014/#402 Official intro video at WWDC 2014 https://developer.apple.com/videos/play/wwdc2015-106/ What s new in Swift 2.0 https://developer.apple.com/library/ios/documentation/swift/conceptual/swift_programming_lan guage/guidedtour.html Technical introduction to Swift EQUIPMENT: Students must bring their own portable Mac running OSX 10.11, with at least 4GB of RAM, as well as an iphone 5 or later running ios 9.x. For those interested in specializing their work for the ipad, owning one is highly recommended as well. For commercial development and deployment to the App store, students are advised to purchase the $99/year Apple Developer membership. TOOLS: Class assignments (which include readings) and lecture teaching materials (mostly example code, some diagrams) will be hosted at a private Git / web server: http://git.classyswift.com/e65/assignments and http://git.classyswift.com/e65/lecture-notes. Each student will also have an individual repository, with a username and password, into which they will submit all assigned work. The naming conventions will be spelled out so that all submissions have the same directory structure. Online discussion: We will have a moderated discussion forum in Google Groups, with one thread per assignment. This is an essential tool to disseminate information efficiently in a fast-paced environment. All questions about the course material should be directed to this forum for maximum visibility to staff and students. Students are strongly encouraged to use the forum on a daily basis to make their homework time efficient. Show leadership by asking questions. If you have a basic question, so does at least a third of the class. As far as the staff is concerned, a central premise of learning programming is doing some research, trying a few solutions, getting stuck, and asking an informed question no matter how basic you think it is. Participation credit is generously awarded for such efforts. Other contact: E-mail, calls, and texts to the staff should only be used if you feel you need privacy, and in that order. IDE: Xcode 7.2: https://developer.apple.com/xcode/ide/ Online REPL (Read-Eval-Print-Loop): http://swiftstub.com This is a pure Swift simulator that is, nothing ios specific in a simulated terminal. It is good for entering experimental snippets to help learn the core language, such as closures and looping syntax. This is not an official Apple site; however it is quite nice.

Page 3 of 5 WORKLOAD: This is an intensive course with ambitious goals of teaching a new programming language, an IDE, several frameworks, a variety of UI and design concepts, and practical debugging and deployment knowledge. Assignments will be issued once per week and due the next week. Students must commit to roughly 15 hours per week of homework, 2 hours per week of in-person class/section, and 30-60 minutes of pre-recorded lectures that cover pre-requisites for actual class. ASSIGNMENTS: Timely completion of reading and assignments is absolutely essential. There will not be much time for the staff to help students catch up on missed work or missed classes. Late work will not be accepted except for medical emergency or religious observance (for the latter, prior notification required). Because some answers may be revealed in subsequent lectures, work that s even a little bit late will not be accepted. Rather we will be very inclined towards partial credit as long as you turn in what you have on time, even if it doesn t work or won t compile. If you are having technical difficulties in submission, let us know immediately at the start of class and a TF will help you. Grading: 15% Class participation (includes section); 50% general assignments; 35% final project. In the event of any conflicting or ambiguous information on exactly what s expected from each assignment, whether logistics or content, please let us know immediately. Van is the final authority for all homework related matters. ATTENDANCE: Due to limited interaction time, only 2-3 hours per week, lecture and section attendance is strongly recommended. ACADEMIC HONESTY & INTEGRITY: You are bound by these policies for the entire course: https://www.extension.harvard.edu/resources-policies/student-conduct/academic-integrity There is no flexibility in these rules because they apply to the entire Harvard Extension School. In addition, defining plagiarism in computer code has unique challenges, partly due to the fact that some simple techniques, especially those mandated by the given API or OS, are virtually identical across all programs, whereas deeper designs and algorithms vary as widely as original poems by different authors. We adopt the written policy of Harvard s flagship Computer Science course: https://cdn.cs50.net/2015/spring/lectures/0/w/syllabus/syllabus.html#academic_honesty In particular, when you learn how to do something from code on the Internet, no matter how well the learning process worked, and no matter how short the example, you must cite the source SINGLE LINE SOURCES INCLUDED. They should appear as a comment (usually a valid URL, or complete book title and page) right above the relevant code. The only exception is if we ve already given the source to the entire class. In particular, any snippets in the Apple Technical documentation need not be cited.

Page 4 of 5 The citation process is not merely busy-work; it helps us learn what students need help with, and to see if they re using good, up-to-date learning tools. There is never a penalty for citing any (or many) sources; in fact it will reflect positively in your participation in the course. Before doing online search for pre-cooked solutions, however, apply some pedagogical sense: for the first assignment especially, many answers are just one or two lines. Think about how best to learn. Learning a language requires writing code from scratch using the fundamentals. It doesn t matter if there are dozens of existing solutions that are just a few search keywords away. Play it safe early on and use official Apple documentation and the help of the staff only. ACCOMODATIONS / DISABILITY SERVICES: In accordance with https://www.extension.harvard.edu/resources-policies/resources/disability-services-accessibility LECTURE SCHEDULE: (Harvard-wide calendar: https://www.extension.harvard.edu/academic-calendar) Lectures will be heavily example-driven. Much of the material will be refined in layers over several classes. Schedule will also be adjusted to prevent average student workload from significantly exceeding aforementioned estimates. Week Date Focus Likely topics 1 1/25 Introduction to Swift and Xcode for ios 2 2/01 App development and Swift essentials 3 2/08 Structuring a larger project Xcode and Swift 4 2/15 NO CLASS: Recorded lecture: The ios API: Cocoa Touch Policies; Student Surveys; Xcode Intro: Demo of a basic ios App & Playgrounds; a look at the Swift language Navigating Xcode to create a real project: StoryBoards, Source files, & wiring them together (References & Outlets); Swift essentials: Arrays, Dictionaries, functions, Optionals, Control Flow Organizational concepts: Coordinating multiple source files; Swift classes & structs; Essential debugging; Basic interactive controls within UIKit UIKit building blocks: Views and View Controllers; important UIKit interactive and display widgets, attribute customization 5 2/22 Layout and Drawing The Xcode Autolayout engine; working with constraints and the Scene hierarchy. Basic custom drawing (2D Quartz library); Touches and Gestures

Page 5 of 5 6 2/29 Model-View-Controller Neatly separating, then tying together the essential pieces of any GUI App: Protocols, delegation, separate model classes, observed properties, and notifications 7 3/07 Pulling pieces into multiscreen app Application Lifecycle; Multiple views of same data, multi-screen apps: Tabbed Views, Hierarchical (Navigation Controller) Views -- 3/14 NO CLASS / No lecture SPRING BREAK Come up with project idea, write brief proposal 8 3/21 Persistence; structured data display Timers; Property Lists (XML); JSON; NSCoder; Core Data; Table & List views 9 3/28 Tables and data retrieval UITableView; JSON parsing and display 10 4/04 Tables with images & navigation Advanced Tables w/navigation controller Images; background (network-bound) data handling 11 4/11 3 rd party integration Tying App to FaceBook and Parse.com for user authentication, social sharing, and data storage 12 4/18 MapKit & GPS Geotagging, Map annotations, using phone s built-in GPS; Review of other topics as needed 13 4/25 Additional Frameworks, Project feedback Physics (UIDynamics); Other topics, depending on student interest. Possibilities include: Review of previous advanced topics; Accelerometer; Affine Transforms; Font formatting 14 5/01 Presentations Presentation marathon.