Assignment 1: Matchismo



Similar documents
Assignment 2: Matchismo 2

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

Assignment I Walkthrough

Developing Applications for ios

Developing Applications for ios

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

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

Workshare imanage Integration File Sharing & DMS Mobility. Getting Started Guide

iphone Objective-C Exercises

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

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

How to use Dropbox. What is Dropbox. Please read the University of Melbourne Guidelines on Dropbox and University Information prior to use.

Install and End User Reference Guide for Direct Access to Citrix Applications

Digital Workflow How to make & use digital signatures

Create an ios App using Adobe Flash Side by Side Training, And without using a Mac

Introduction to Programming with Xojo

ios Team Administration Guide (Legacy)

Site Administrator User Guide. show, tell, share

Developer Criteria Checklist From How to Choose a Book App Developer Karen Robertson

Your First App Store Submission

App Distribution Guide

Scheduling WebEx Meetings

FREE VERSION. Created by: Jason Nesbitt Mobile App Development Guide

Learning ios Programming

KING ONLINE APPLICATIONS USING THE APPLE IPAD

Android Programming Family Fun Day using AppInventor

Screen Sharing on The Mac. By Jacob Penderworth,13 Sep 2012

ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011

View Controller Programming Guide for ios

Web App Development Session 1 - Getting Started. Presented by Charles Armour and Ryan Knee for Coder Dojo Pensacola

Samsung Xchange for Mac User Guide. Winter 2013 v2.3

Fruit Machine. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code

Podcasting with Audacity

Preparing your MAC Computer to access QuickBooks Hosted with the Citrix Receiver or Online Plugin

SAMPLE SECTIONS. The next page is the table of contents for the full book. Followed by a few excerpts.

Star Micronics Cloud Services ios SDK User's Manual

Software Development Environment. Installation Guide

ios App Development for Everyone

All About Android WHAT IS ANDROID?

Icons: 1024x1024, 512x512, 180x180, 120x120, 114x114, 80x80, 60x60, 58x58, 57x57, 40x40, 29x29

Managing Your Class. Managing Users

Google Drive lets you store and share all your stuff, including documents, videos, images and other files that are important to

III. The most important things you need to know about iphone app/game development

A parents guide to being Share Aware. Helping you to keep your child safe online

Mobile Application Development

You can learn more about Stick around by visiting stickaround.info and by finding Stick Around on social media.

ios App for Mobile Website! Documentation!

Application Development for Mobile and Ubiquitous Computing

COLLIN COLLEGE COURSE SYLLABUS

Marketing Best Practices - Top 10 tips

Hello Swift! ios app programming for kids and other beginners Version 1

Setting Up Your Android Development Environment. For Mac OS X (10.6.8) v1.0. By GoNorthWest. 3 April 2012

Citrix Desktop for Home Computers Apple ios Instructions

Installation Guide for Kurzweil 3000 Web License (Visual Walkthrough) Macintosh Version 14

How to Get Images From Your Camera on to Your Computer

How To Backup and Copy Data Between ios Devices

Introduction to Google SketchUp (Mac Version)

ios App Development for Everyone

Contents First Time Setup... 2 Setting up the Legal Vault Client (KiteDrive)... 3 Setting up the KiteDrive Outlook Plugin Using the Legal Vault

Introducing Xcode Source Control

Getting Started Guide - Desktop

How to use your ipad or iphone as a second monitor

Praktikum Entwicklung von Mediensystemen mit

How to publish your PowerPoint presentation online

ios App Development for Everyone

Reading Kindle titles on your PC or Mac

by Jonathan Kohl and Paul Rogers 40 BETTER SOFTWARE APRIL

It is recommended that you use a clean installation of Lion client before upgrading to Lion Server.

Outlook Data File navigate to the PST file that you want to open, select it and choose OK. The file will now appear as a folder in Outlook.

Best Practices in Mobile Web Design

Word 2010 to Office 365 for business

Remote Access End User Reference Guide for SHC Portal Access

SweetPea3R-200 User Guide Version 1.1

Lecture 4 Cross-Platform Development. <lecturer, date>

Google Drive: Access and organize your files

the gamedesigninitiative at cornell university Lecture 1 Course Overview

Would You Like To Earn $1000 s With The Click Of A Button?

Start Developing ios Apps Today

How to configure Mac OS X Server

ONLINE ACCOUNTABILITY FOR EVERY DEVICE. Quick Reference Guide V1.0

Click the "Connect" button. You should now see the following screen:

Getting Started with Dynamic Web Sites

Installing Logos SSL Certificates on Mobile Devices

ADOBE DRIVE CC USER GUIDE

Learning Activity Management System TEACHER S GUIDE. October 2006 LAMS V2.0 for The First International LAMS Conference 2006

Using the HOCK flash cards in Anki on Windows, Mac, mobile and web

MOBILE APPS. QA Testing for mobile applications

TIPS FOR USING OS X 10.8 MOUNTAIN LION

Installation Instructions

Getting Started: Creating a Simple App

ReadyNAS OS 6.2. Reviewer s Guide

TakeMySelfie ios App Documentation

Mobile App Install Ads

MDM User Guide June 2012

ios Development: Getting Started Min Tsai March 1, 2011 terntek.com v1.0

About Kobo Desktop Downloading and installing Kobo Desktop Installing Kobo Desktop for Windows... 5 Installing Kobo Desktop for Mac...

BIS Programming for iphone, ipod Touch, and ipad Devices Fall 2013

Use Mobile Learning to Optimize Individual and Company Performance

Total Baby. Backup, Restore and itunes Backup Extraction

Remote Access Services Apple Macintosh - Installation Guide

Transcription:

Assignment 1: Matchismo Objective This assignment starts off by asking you to recreate the demonstration given in the second lecture. Not to worry, the posted slides for that lecture contain a detailed walkthrough. It is important, however, that you understand what you are doing with each step of that walk-through because the rest of the assignment requires you to add a simple enhancement and your assignment for next week will extend Matchismo even further. Be sure to check out the Hints section below! Materials Before you start this assignment, you will need to download and install Xcode 5 using the App Store on Mac OSX (not the App Store on your ios device, the App Store on your Mac). It is free. The slides for all lectures can be found in the same place you found this document. You will also need these four images (Stanford logo and blank card in both normal and high-resolution). A simple way to download them is to click on each one of the links below (which will bring the corresponding image up in a browser window), then drag the image out of the browser window into the Finder or onto your desktop. stanford.png stanford tree.png blank card rounded corner.png blank card hi-res.png PAGE 1 OF 6

Required Tasks 1. Follow the detailed instructions in the lecture slides (separate document) to build and run Matchismo in the iphone Simulator in Xcode 5. Do not proceed to the next steps unless your card flips back and forth as expected and builds without warnings or errors. 2. Be sure to include all the code for the four classes shown in the first two lectures: Card, Deck, PlayingCard and PlayingCardDeck. You must type this code in (e.g., do not copy and paste it from somewhere). The whole point of this Required Task is to gain experience editing code in Xcode and to get used to Objective-C syntax. 3. Add a private property of type Deck * to the CardGameViewController. 4. Use lazy instantiation to allocate and initialize this property (in the property s getter) so that it starts off with a full deck of PlayingCards. 5. Matchismo so far only displays the A over and over. Fix Matchismo so that each time the card is flipped face up, it displays a different random card drawn from the Deck property you ve created above. In other words, Matchismo should flip through an entire deck of playing cards in random order, showing each card one at a time. 6. Do not break the existing functionality in Matchismo (e.g. the Flips counter should still continue to count flips). PAGE 2 OF 6

Hints These hints are not required tasks. They are completely optional. Following them may make the assignment a little easier or better (no guarantees though!). 1. Even though the type of the property you must add is required to be a Deck (not PlayingCardDeck) you ll obviously have to lazily instantiate it using a PlayingCardDeck. This is perfectly legal in object-oriented programming because a PlayingCardDeck inherits from Deck and thus it is a Deck. If you are confused by this concept in object-oriented programming, this course may be rather difficult for you. 2. It doesn t make much sense for your application to come up showing the A. It s probably better to make it come up showing the back of the card instead. 3. A good solution will have given some thought to what happens if every card in the deck has been shown and the user still keeps flipping. Do something simple and sensible (for example, you should not have to modify the classes in the Model in any way). 4. Economy is valuable in coding: the easiest way to ensure a bug-free line of code is not to write the line of code at all. This assignment requires very, very, very few lines of code so if you find yourself writing more than a handful of lines of code (over and above what was demonstrated in lecture), you are on the wrong track. PAGE 3 OF 6

Things to Learn Here is a partial list of concepts this assignment is intended to let you gain practice with or otherwise demonstrate your knowledge of. 1. Getting Xcode 5 installed. 2. Interacting with Xcode 5's UI (via the walkthrough). 3. Experiencing Objective-C (the Model classes and the Controller class). 4. Getting a first look at some UIKit classes (UIButton and UILabel). 5. Gaining experience with the ios 7 Documentation through Xcode. 6. Understanding how to add images to a project (Images.xcassets). 7. Seeing an example of a Model separate from a UI (Controller and its View). 8. Understanding how to use a @property (a random card s contents and self.deck). 9. Declaring a property (deck). 10. Performing lazy instantiation (the deck). 11. Understanding nil (drawrandomcard returns nil when a deck is empty). 12. Not "overthinking" solutions (demonstrating a simple "out of cards" solution). PAGE 4 OF 6

Evaluation In all of the assignments this quarter, writing quality code that builds without warnings or errors, and then testing the resulting application and iterating until it functions properly is the goal. Here are the most common reasons assignments are marked down: Project does not build. Project does not build without warnings. One or more items in the Required Tasks section was not satisfied. A fundamental concept was not understood. Code is sloppy and hard to read (e.g. indentation is not consistent, etc.). Your solution is difficult (or impossible) for someone reading the code to understand due to lack of comments, poor variable/method names, poor solution structure, poor use of whitespace, etc. Assignment was turned in late (you get 3 late days per quarter, so use them wisely). Often students ask how much commenting of my code do I need to do? The answer is that your code must be easily and completely understandable by anyone reading it. You can assume that the reader knows the ios 7 SDK, but should not assume that they already know the (or a) solution to the problem. PAGE 5 OF 6

Extra Credit This section usually contains a few ideas for some things you could do to get some more experience with the SDK at this point in the game. However, there is no extra credit available this week since we re just getting started. PAGE 6 OF 6