IPhone Development JaxCodeCamp 2009. Who am I David Fekke.NET Developer, ColdFusion Work at LPS Presenter JaxDug, JaxJug, JSUG & JaxFusion Mac User 1986.

Slides:



Advertisements
Similar presentations
Lecture 2 - Introduction Objective C is used primarily for application development on Apple's Mac OS X and iPhone. On the Apple it is used together with.
Advertisements

Compiler Design PROJECT PRESENTATION : COMPILER FOR OBJECTIVE C Harshal Waghmare Jeet Kumar Nandan Kumar Vishal Agrawal.
Tax Refund Calculator iPhone app By:Tuna Erdurmaz Date: 12 th of February 2010 Supervisor: Paul Barry.
Anatomy of an iPhone Application Content taken from book: “iPhone SDK Development” by Bill Dudney and Chris Adamson.
Junny Wijaya Technology Development Unit IT DIRECTORATE.
View Controllers (second part) Content taken from book: “iPhone SDK Development” by Bill Dudney and Chris Adamson.
IPhone Development Crash Course By Dylan Harris
ITouch/iPhone SDK A study using Cognitive Dimensions.
IPhone 101. Outline Objective-C Random bits of the API Using the simulator Debugging with Xcode.
IStarted- And You Can Too! A Beginner’s Guide to iOS Programming.
Exploring the iPhone SDK Toyin Adedokun & Daniel Laughlin.
© Punflay By Sri Satish Mavuri “Touching the World on the Other Side of the Glass”
BY MUKTADIUR RAHMAN DATE: JUNE 10, 2010 Introduction to iPhone SDK.
Intro to Objective-C Syntax: What’s most confusing about Objective-C? Most class names start with NS: NSString, NSObject Parameter lists are not comma.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 2: Operating-System Structures.
Friday, August 29, 2014 CSCI 351 – Mobile Applications Development.
3-Jul-15 Chapter 2 iPhone App Store and App Business Issues.
Objective-C Quinton Palet. Introduction  Objective-C was developed to bring large scale software development the power of the object-oriented approach.
Objective-C for C# and Java Developers JaxCodeCamp 2012.
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
Mac OS COMP 240. Mac OS OS X previously Mac OS X, is a series of Unix- based graphical interface operating systems developed, marketed, and sold by Apple.
ASP.NET MVC 3 and Some 4 JaxCodeCamp August 2011.
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
IOS WorkShoP Xcode 4 iOS 5 : “A Primer”. Objective-C iOS applications are written in Objective-C language using the Cocoa Touch library Objective-C is.
Vs. Ease of Developing 3 rd Party Applications. Points of Interest Closed Source vs. Open Source – Does It Matter? Objective-C vs. Java – Implementation.
Object Oriented Programming
1 1 iOS - iPhone/iPad Application Development Workshop Part 1.
Members: Twinkle Agarwal Anjana Bhirde David Hodgson Raviprakash Madaiah.
Objective C Basics. It’s C with Some Extras!  Cross Platform language  Mac  Linux/UNIX  Windows  Layer above C (Superset)  Adds Object-Oriented.
OS X Development Tom Schroeder. Table of Contents Who cares? HistoryObjective-CCocoaEnvironmentDesign.
Objective-C First Part adapted from a presentation by Kevin Layer.
1 Designing with a UIToolBar iPhone/iPad, iOS Development Tutorial.
Objective-C OOP Spring OOP Conceptually the same as C++, Java, and all other object oriented languages The syntax, however… …is, well, different.
Folio3 IPhone Training Session 1 Presenter: Imam Raza.
Mobile Device Programming
1 Introduction to Objective-C Programming (Level: Beginner) Lecture 1.
Using Xcode A Beginner’s Tutorial Erin Green. This tutorial will walk you through Xcode, a software development tool for Apple’s iOS applications – We.
View Controllers Content taken from book: “iPhone SDK Development” by Bill Dudney and Chris Adamson.
Monday, August 31, 2015 CSCI 351 – Mobile Applications Development.
Objective-C Memory management Memory management is semi-automatic: The programmer must allocate memory for objects either a) explicitly (alloc) or b) indirectly.
Last Lecture objective C memory management rules Wrote our first iPhone app a quiz app xib and nib files and interface editor MVC pattern IBOutlet IBAction.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
Course Summary Xcode & iPhone Simulator
Objective-C Drew Cheng CS420. Overview True superset of ANSI C Object-Oriented methods from SmallTalk There is no formal written standard for the language.
Monday, August 31, 2012 CSCI 333 – Systems Programming.
April 2, 2002 Craig E. Ward, 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.
Mobile Apps Programming Chin-Sung Lin Eleanor Roosevelt High School.
Introduction to Objective-C Spring Goals An introduction to Objective-C As implemented by the Apple LLVM Compiler 4.0 (a.k.a. Clang) Only the basics…
The iOS Platform and SDK. iOS iPhoneiPad Mini iPad.
Lec 5 Obj-C part 2 CS 3800 Introduction to IOS programming Lecture 5 Summer 2011.
IOS Programming Medialogy, Semester 7, 2010 Aalborg University, Aalborg David Meredith
Objective-C: Intro Michelle Alexander COMS E6998 2/4/2013.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
IPhone Training in Ahmedabad 1 TOPS Technologies -
Discovering Mac OS X Avinash Meetoo 13 January 2007 Linux User Group of Mauritius
Beginning iOs development. Convergent Media Group: QUICK FACTS American owned and managed, est Operations in USA, Russia, Ukraine, Croatia and UAE.
Computer System Structures
Course Summary Xcode & iPhone Simulator
iStarted- And You Can Too!
CSCI 351 – Mobile Applications Development
Introduction to Apple mobile technologies- I393
CSCI 351 – Mobile Applications Development
EEC-492/693/793 iPhone Application Development
Affordable iPhone Mobile Apps Development Services Company
Technology Development Unit
EEC-492/693/793 iPhone Application Development
EEC-492/693/793 iPhone Application Development
iOS App Development Training
EEC-492/693/793 iPhone Application Development
EEC-492/693/793 iPhone Application Development
Presentation transcript:

iPhone Development JaxCodeCamp 2009

Who am I David Fekke.NET Developer, ColdFusion Work at LPS Presenter JaxDug, JaxJug, JSUG & JaxFusion Mac User 1986

Alan Kay Smalltalk is object-oriented, but it should have been message oriented.

Alan Kay When I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.

Bjarne Stroustrup C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg.

The Apple Way

Assumptions Somewhat familiar with OO concepts Used a language like Java, C# or C++ Open minded Actually used an iPhone or iPod Touch

Requirements You need a Intel Mac with OX 10.5 Some knowledge of OO concepts Xcode tools (FREE) iPhone (SDK)

Developer Programs iPhone Individual ($99) iPhone Enterprise ($399) iPhone Student

App Store Submit Apps with Individual program Apple keeps 30%, you keep 70% Refunds: you pay 100%

iPhone Platform ARM Processor 128/256 MB RAM BSD UNIX Mach Microkernel COCOA APIs

COCOA COCOA is a OO Framework Based on NextStep Mostly written in Objective-C iPhone uses COCOA Touch

COCOA Framework NS (NextStep) CF (Core Foundation) CA (Core Animation) CI (Core Image) Core Data OpenGL

COCOA Conventions Most classes begin with NS, I.E. NSObject, NSString, NSArray or NSNumber Designed around MVC pattern Heavy use of delegation iPhone specific components based on UIKit

COCOA Touch APIs Accelerometer Location API Multi-Touch Camera/Video Input Map Interface OpenGL ES

Objective-C Somewhere in-between C++ and Java Invented in 1980’s for Next Computing Based on C with SmallTalk like extentions Used in COCOA, OpenStep and GNUStep Class based OO language

-(BOOL)validateNumRangeWithStartNumber:(int)startNumber EndNum:(int) endNumber { if (startNumber >= endNumber) { UIAlertView *alertView = [[UIAlertView alloc] value Too Small" delegate:nil otherButtonTitles:nil]; [alertView show]; [alertView release]; return YES; } else { return NO; }

Obj-C vs C# Obj-CC# [[object method] method];obj.method().method(); Memory PoolsGarbage Collection +/-static/instance nilnull (void)methodWithArg:(int)value {} void method(int value) {} YES NO true interface

Objective-C Structure Obj-C Class composed of two files: header and implementation, or.h and.m header uses and implementation

LottoRandomAppDelegate : NSObject { UIWindow *window; (nonatomic, retain) IBOutlet UIWindow

#import window; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch [window makeKeyAndVisible]; } - (void)dealloc { [window release]; [super dealloc];

Selectors SEL type defines a method signature -(void)setAction:(SEL)aSelector SEL mySelector; mySelector [myButton setAction:mySelector];

Memory Management C used methods like malloc and free Obj-C uses object retain pool Garbage Collection on the Mac, but not on the iPhone Inherit management methods from NSObject

Memory Management Cont. NSString *myName = [[NSString alloc] init]; // retain count of 1 [myName retain]; // retain count of 2 [myName release]; // retain count reduced to 1 [myName autorelease]; // object released by pool magically

MVC Model-View-Controller COCOA has Controller classes UIViewController Class Views are in the XIB (NIB) files

Controllers iPhone Apps commonly have multiple views Push and Pop the Controllers for each View Navigation Controller used to load different views UINavigationController

SDK Tools Xcode 3.0 IDE Interface Builder (Views) Instruments (Profiler tool) iPhone Simulator

Xcode 3 GCC compiler 4.2 Support for Obj-C, C++, Java, Python and Ruby (iPhone only uses Obj-C & C++) Code editor with code completion Support for SVN and CVS

Interface Builder Tool for laying out interfaces Separate Tool from Xcode Bind Actions and Outlets in Controllers

Demo

Internet Resources y/documentation/Cocoa/Conceptual/Obj ectiveC/ y/documentation/Cocoa/Conceptual/Obj ectiveC/ gi-bin/index.php gi-bin/index.php

Book Resources COCOA Programming For Mac OS X by Aaron Hillegass iPhone Developer’s Cookbook by Erica Sadun APress Books

Snow Leopard Mac OS X 10.6 released yesterday Optimized for 64bit Xcode 3.2 Static Analysis Code warning and hinting OpenCL Library Grand Central Dispatch

Mono Touch Develop iPhone Apps with C# Mono IDE Ahead of time compilation Works with IB

Contact twitter.com/davidfekke

Questions?