nyuguest
for iOS simulator.
oitsupport@nyu.edu
Study
objective.html
and try the links in that file to Apple’s online documentation.
Create bookmarks in your browser for
NS
(NextStep),
UI
(User Interface),
and
CG
(Core Graphics; look under
CGGeometry
for the data type
CGFloat
and the
structures
CGPoint
,
CGSize
,
and
CGRect
).
Finish reading
objective.html
and read ahead to
Class
and
Hello
so you won’t be seeing them for the first time
when we do them in class on February 13.
Put the application
Xcode
on your Intel Mac if you don’t already have it.
The current version of Xcode (5.0.2, released on November, 11, 2013)
requires at least
version 10.8 (Mountain Lion) of OS X.
Our classroom at
7 East 12th Street room 229 currently has Mac OS X 10.8.5
with Xcode 4.5.1 runing iOS 6.0.
Use Xcode to create a project on your Macintosh Desktop like
this one,
but name it
Feb13
(uppercase letter
F
,
two lowercase lowercase, and the digits one, three)
instead of
Project
.
Insert some statements that create variables and call the function
NSLog
like the examples in
objective.html
and
Project.
Insert the new statements immediately before the
return
statement in the
main
function in the
main.m
file in the
Supporting Files
folder of your project.
Create a
GitHub
account
and email me its name, your NYU NetID, and your real name.
(Your NetID is several lowercase letters followed by several digits;
mine is
meretzkm
.
Your NetID is not an uppercase N followed by lots of digits.)
My email address is
mark.meretzky@nyu.edu
)Feb13
.
Then
upload
your
Feb13
project to your
Feb3
repository.
Here is my
Feb14
repository
I created on February 7, 2013.
Click in the
Feb14
folder and then on the
main.m
file.
Your instructor would be happy to invite you to join the team for this class, thus saving you $99, if you give him your name, email address, NYU NetID, the name of your GitHub account, and the 40-hex-character identifier of your iPhone, iPad, or iPod Touch. Instructions for finding this identifier are in Register your device. I’m going to use the NYU NetID as the name of the “provisioning profile” that I create for you. The provisioning profile is one of the files you need to copy your apps onto your iPhone. Apple will send you an invitation to join and will send you an Apple ID. After you have joined the team, go here to see who else has joined the team (click on People), and go here to see your device and App ID (on the left, click on Devices and App IDs). See download.html. This offer is good from 9:30 p.m. EST on Thursday, February 6 until 9:30 p.m. EST on Saturday, February 8, 2014.
Here’s a link to my Andoid course. You can hear it all in one day at Agile Las Vegas on Monday, June 2, 2014, or at QCon NY on Tuesday, June 10, 2014.
Study
objective.html.
Try the links in
objective.html
to Apple’s online documentation.
Create bookmarks in your browser for
NS
(NextStep),
UI
(User Interface),
and
CG
(Core Graphics; look under
CGGeometry
for the data type
CGFloat
and the
structures
CGPoint
,
CGSize
,
and
CGRect
).
Finish reading
objective.html
and read ahead to
Class
and
Hello
so you won’t be seeing them for the first time
when we do them in class on October 3.
Put the application
Xcode
on your Intel Mac if you don’t already have it.
The current version of Xcode (5.0, released on September, 18, 2013)
requires at least
version 10.8 (Mountain Lion) of OS X.
Our classroom at
7 East 12th Street room 229 currently has Mac OS X 10.8.5
with Xcode 4.5.1 runing iOS 6.0.
Use Xcode to create a project on your Macintosh Desktop like
this one,
but name it
Oct3
(uppercase letter
O
,
the other two letters lowercase, and the number three)
instead of
Project
.
Insert some statements that create variables and call the function
NSLog
like the examples in
objective.html
and
Project.
Insert the new statements immediately before the
return
statement in the
main
function in the
main.m
file in the
Supporting Files
folder of your project.
Create a
GitHub
account
and email me its name, your NYU NetID, and your real name.
(Your NetID is several lowercase letters followed by several digits;
mine is
meretzkm
.)
My email address is
mark.meretzky@nyu.edu
)Oct3
.
Then
upload
your
Oct3
project to your
Oct3
repository.
Here is my
Feb14
repository
I created on February 7, 2013.
Click in the
Feb14
folder and then on the
main.m
file.
Your instructor would be happy to invite you to join the team for this class, thus saving you $99, if you give him your name, email address, NYU NetID, the name of your GitHub account, and the 40-hex-character identifier of your iPhone, iPad, or iPod Touch. Instructions for finding this identifier are in Register your device. I’m going to use the NYU NetID as the name of the “provisioning profile” that I create for you. The provisioning profile is one of the files you need to copy your apps onto your iPhone. Apple will send you an invitation to join and will send you an Apple ID. After you have joined the team, go here to see who else has joined the team (click on People), and go here to see your device and App ID (on the left, click on Devices and App IDs). See download.html. This offer is good from 9:30 p.m. EDT on Thursday, September 26 until 9:30 p.m. EDT on Saturday, September 28, 2013.
I’m teaching iOS and Android at QCon on November 14–15, 2013, so we have no class on Thursday, November 14. We will add a class on Thursday, December 19.
init
method of the subclass always
begins
by calling the
init
method of the superclass.”
Run the apps in
Class
and
Hello
and do the exercises,
but don’t hand them in.
Can you get the current price of IBM?
Create a project named
Oct10
that prints something interesting on the screen,
and upload it to a GitHub repository
named
Oct10
.
Then look at the repositories of the
other students
in the class.
Bring your NYU NetID (not the number that starts with an uppercase N).
Read ahead to
Internationalize
and
Japan.
Create a project named
Oct17
and upload it to a GitHub repository named
Oct17
.
The
Oct17
project should display text and graphics
(circles, rectangles, triangles, etc.),
with a
shadow.
Internationalize
it for at least one language other than English
(note: Klingon does not have a two-letter
ISO 639-1
code),
and give it at least one
icon
and at least one
launch image.
(It’s okay if your icon is one of the stupid yellow icons I made,
and it’s okay if your launch image is similarly unartistic.)
Then look at the repositories of the
other students
in the class.
The course will end as originally scheduled on Thursday, December 12th.
CGContextSaveGState
and
CGContextRestoreGState
and let me know if they don’t work.
Write and upload a
touch-sensitive
app named
Oct24
,
maybe with
animation.
And why not an icon?
Then click on the tip of each nose in the
class photo.
(See also the list under the photo.)
We’ll have a presentation about winding numbers on October 24th. Here’s the flyer for the group at Stern.
The student with the app in the app store will talk to us on November 21. His app is a tree map of Central Park, and they’re having a nature walk to promote it on Saturday, October 26, 2013 at 2:00 p.m., starting at the top of the Great Hill, Central Park West at 106th Street.
On October 24th, we tried to run this project in class. We got the message “/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1.” Here’s how I fixed it. In the Supporting Files folder in the Xcode Porject Navigator, I noticed that the PathTest-Prefix.pch file was listed in red. That means the file is missing from the project. When I copied the -Prefix.pch file from another project into this one, naming it PathTest-Prefix.pch, the filename changed from red to black. When I ran the project, I saw the app’s Line/Fill/Clear buttons.
The coolest man who ever lived was
Derek Flint.
For example,
he was the first person to have a
ringtone.
Write and upload an app named
Oct31
for Mr. Flint to carry in his pocket,
with
background music
or
brief sound effects,
buttons,
and a
swinging (or peeling) door.
buttonWithType:
rather than with the usual
alloc
and
init
like every other
view?
When you launch the
Notification Center
example on an iPhone or iPad,
does it display the string “Unknown” when it first appears?
Read ahead to view controllers to see what we’ll be doing next Thursday.
Write and upload an app named
Nov7
with lots of controls:
buttons
and
segmented controls,
sliders
and
date pickers.
Audio and video a plus;
you could even
record
audio.
Would anyone volunteer to investigate how to record video?
When adding a media file to your app (graphics, sound, video), follow the instructions in this project for adding the file to your project. Make sure you check the checkbox for “copy items into destiation group’s folder”. After you upload your project to GitHub, move it and all of its files to a different folder on your Mac. Then download the project from GitHub and see if you can run the downloaded copy.
.h
and
.m
file.
I
really
think you should do
exercise #4 of
Navigate
(the “Go East” button)
and
exercise #2 of
Modal
(the “Done” button),
but don’t hand them in.
Please help me with three unsolved questions:
textFieldShouldReturn:
returns
YES
or
NO
?
edgesForExtendedLayout
to prevent the view from growing to a height of 568 pairs of pixels and
overlapping with the status bar?
Write and upload an app named
Nov21
with a
navigation controller
on top of a row of view controllers.
No class on November 14th.
Nov21-master.zip
has a
navigation
controller
on top of a row of
view
controllers
that display views with different images.
Write and upload an app named
Dec5
that does 60-times-per-second animation with a
CADisplayLink
in a view controller.
See
Pong
and
Pearls.
Dec12
with a
UITableViewController
and a
UITableView
.
See the
Table
View Programming Guide.
Win a $500 raffle (there are four of them)
by filling out the course evaluation at
http://scps.nyu.edu/evaluate
if you have not already done so.
Xcode
on your Intel Mac if you don’t already have it.
Older versions of Xcode (for people with older versions of OS X)
are available
here
under Downloads → Developer Tools.
Create bookmarks in your browser for
NS
(NextStep)
and
UI
(User Interface).
Admire our
class photo;
next week we’ll make it touch-sensitive.
My email is
mark.meretzky@nyu.edu
objective.html
reviews the Objective-C language.
date
creates a class, and
property
changes the instance variables of a class into properties.
rules.html
summarizes the rules for the objects in an app.
Memorize the following incantation.
“The
init
method of the subclass always
begins
by calling the
init
method of the superclass.
The
dealloc
method of the subclass always
ends
by calling the
dealloc
method of the superclass.”
Read download.html. Your instructor would be happy to invite you to join the team if you give him your name and email address. He will also register your device (iPhone, iPad, iPod Touch) if you give him its 40-hex-character identifier (see iTunes in ¶ 6), and will create an App ID for you. After you have joined the team, go here to see who else has joined the team (click on People), and go here to see your device and App ID (on the left, click on Devices and App IDs).
Read
zip.html.
Get your
loginname
(same as your NYU NetID)
and
secret password,
if you don’t already have them,
for our Fedora Linux server
oit2.scps.nyu.edu
.
If you couldn’t get a secret password from
start.nyu.edu,
contact the
accounts office.
One way to conact them is by calling (212) 998-3333 option 1.
Make it clear to the accounts office that you are trying to get a password
for
oit2.scps.nyu.edu
,
not for Blackboard.
(They think everyone is a Blackboard user.)
The following examples constitute a précis of iPhone Part I X52.9236.
HelloWorld
Japan
: graphicsTouch
:
touch the screenAnimate
:
animationButton
:
the target/action patternPLViewController
.
In the previous example, the
application
delegate
created the
view.
In this example, the
application
delegate
creates a
view
controller,
and the
view
controller
creates the
view.
Nib
:
create objects using the Interface Builder
by dragging them off a pallet.Start playing with the examples in Still-life 2D graphics. Please email me an example of the web service you want to do.
sqlite3_mprintf
in the
getZipCodes
method of the
Model
had to say
%.15g
to avoid rounding off.
Map
in the
in-class examples.
Read the
syllabus and grading policy.
See how much homework X52.9236 had
last semester.
Put
Xcode
on your Intel Mac if you don’t already have it.
Older versions of Xcode (for people with older versions of OS X)
are available
here
under Downloads → Developer Tools.
Create bookmarks in your browser for
NS
(NextStep)
and
UI
(User Interface).
Admire last semester’s
class photo;
next week we’ll have our own.
objective.html
reviews the Objective-C language.
rules.html
summarizes the rules for the objects in an app.
Memorize the following incantation.
“The
init
method of the subclass always
begins
by calling the
init
method of the superclass.
The
dealloc
method of the subclass always
ends
by calling the
dealloc
method of the superclass.”
Read download.html. Your instructor would be happy to invite you to join the team if you give him your name and email address. He will also register your device (iPhone, iPad, iPod Touch) if you give him its 40-hex-character identifier, and will create an App ID for you. After you have joined the team, go here to see who else has joined the team (click on People), and go here to see your device and App ID (on the left, click on Devices and App IDs).
Read
zip.html.
Get your
loginname
(same as your NYU NetID)
and
secret password,
if you don’t already have them,
for our Fedora Linux server
oit2.scps.nyu.edu
.
If you couldn’t get a secret password from
start.nyu.edu,
contact the
accounts office.
One way to conact them is by calling (212) 998-3333 option 1.
Make it clear to the accounts office that you are trying to get a password
for
oit2.scps.nyu.edu
,
not for Blackboard.
(They think everyone is a Blackboard user.)
The following examples constitute a précis of iPhone Part I X52.9236.
HelloWorld
Japan
: graphicsTouch
:
touch the screenAnimate
:
animationButton
:
the target/action patternPLViewController
.
In the previous example, the
application
delegate
created the
view.
In this example, the
application
delegate
creates a
view
controller,
and the
view
controller
creates the
view.
Nib
:
create objects using the Interface Builder
by dragging them off a pallet.
Do the exercises in
Map
.
Extra credit: instead of giving the
MKAnnotationView
an image such as
nyu.png
,
could you give the
MKAnnotationView
a
drawRect:
method that is called whenever the
MKAnnotationView
needs to be drawn?
Could the
drawRect:
draw a different picture depending on the location of the annotation?
Another extra credit: can the overlay view be more elaborate than
a solid colored region?
How about a solid colored region with a border in another color?
Hint: class
MKPolyginView
is derived from class
MKOverlayPathView
.
(We did paths
here.)
Check it out: Android gives you the area and pressure of a finger touch. iPhone gives you only the location of the touch.
Attitude
in the map section of the
in-class examples.
Could someone please tell me if
Attitude
actually works on an iPhone 4?
Does the black line point in the same direction?
Does the black line appear at all?
Here is one of the
Map.zip
files we fixed in class.
We also did
Objective-C and C++.
iPhone Animation meetup during the same time slot as next Wednesday’s class. Maybe I can convince some of my Thursday night iPhone Part I students to go.
Research question.
How can the shellscript at the bottom of
this page
run
sftp
non-interactively with the
-b
option on a Mac,
eliminating the need for
expect
?
Exactly how would we use
ssh-keygen
(or whatever)
to allow
sftp
to connect to
oit2.scps.nyu.edu
?
Research question. Could we run the shellscript from the Xcode Organizer, even though the shellscript require one command line argument (giving the name of the folder that holds the project)?
Try to get the
Triangle
program to run on your Mac,
even though it isn’t an iPhone app.
Choose a template for your new project: OpenGL ES Application
.zip
file and email it to me.
Do this after 12:45 p.m. on Saturday, November 6th,
when I get out of my Android class.
Thanks.
Can you do two different animations with the same object at the same time? Does it work for explicit animations like the opacity and transform animations here? Does it work for implicit animations like the ones here?
Can you find the official specs for the iPhone icon jiggle? How many hertz (cycles per second), how many degrees of rotation, does the center of the icon move, and if so, along what path does it move?
For this remote database thing,
can you point me in the right direction?
Should I be looking at class
NSURL
in
this
document?
HTML 5 conference on Tuesday, November 9th.
NSURLConnection
object.
UIViewAnimationOptionTransitionCurlUp
).Is there any reason why tga format is the best format for texture files? How can we use a different format (png, jpg, etc.) instead? Find a beautiful image file of the Earth (or another planet) that we can print on a sphere. Anything we can use here?
Is there an industry-standard layer we can put on top of OpenGL ES to group primitive objects into higher-order objects and move them together?