i phone app develoment ppt
DESCRIPTION
TRANSCRIPT
![Page 1: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/1.jpg)
iPhone App development -
SKILLSCHOOL.co.in
![Page 2: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/2.jpg)
So what is all the fuss about?
Touchscreen interface, with several patents
Visual voicemail
Full MacOSX instead of subset (half a Gb)
Webbrowsing with most advanced webbrowser to date on handheld device (Safari)
Synchronisation via ITunes => demo
![Page 3: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/3.jpg)
Features
Screen size: 3.5 in (89 mm)Screen resolution: 480×320 pixels at 163 ppi, with 3:2 aspect ratioInput devices: Multi-touch screen interface plus a "Home" button and "Sleep/Wake" located on the top of the iPhone.Built-in rechargeable, non-removable battery2 megapixel cameraLocation finding by detection of cell towers and Wi-Fi networksSamsung S5L8900 (412 MHz ARM 1176 processor, PowerVR MBX 3D graphics co-processor)Memory: 128 MB DRAMStorage: 8 GB or 16 GB flash memoryOperating System: iPhone OSQuad band GSM / GPRS / EDGE: GSM 850 / 900 / 1800 / 1900Wi-Fi (802.11b/g)Bluetooth 2.0 with EDR20Hz to 20kHz frequency response (both internal and headset)
![Page 4: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/4.jpg)
Features new generation
Color: Black (8 GB or 16 GB) or white (16 GB)Size: 4.5 inches (115.5 mm) (h) × 2.4 inches (62.1 mm) (w) × 0.48 inch (12.3 mm) (d)Weight: 133 gHeadphone jack (non-recessed)Battery has up to 10 hours of 2G talk, 5 hours of 3G talk, 5 (3G) or 6 (Wi-Fi) hours of Internet use, 7 hours of video playback, and up to 24 hours of audio playback, lasting over 300 hours on standby.3G for broadband data speeds Assisted GPSDigital SAR Rating: 1.38 W/kg
![Page 5: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/5.jpg)
Popularity
iPhone Stats
October, 2008 10 Million iPhones
App store stats
July, 2008 (launch) : 552 Apps December 5, 2008 : 300M downloads February, 2009 : 20.000 Apps / 500M downloads
![Page 6: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/6.jpg)
Openness
Closed source with open source components.
Given Apple’s history, this is likely to stay this way.
(Benevolent) Vertically Integrated Dictatorship vs.
Open Source, Loosely-Controlled Ecosystem
Open Source NO YES
Write anything you want NO YES
Device Homogeneity YES NO
iPhone Android
![Page 7: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/7.jpg)
Where to start?
http://developer.apple.com/iphone/
Download iPhone SDK, if you are a Registered iPhone Developer or enrolled in the iPhone Developer Program
SDK includes :XcodeIPhone simulatorMonitoring instrumentsInterface builder
• loading an application onto devices is only possible after paying a Apple Developer Connection membership fee of 99 $ (standard) or 299 $ (enterprise)
• => XCode demo : UDecide
![Page 8: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/8.jpg)
Web apps
• http://www.apple.com/webapps/
http://www.shockwise.com/iphone/draw.php
Developers are free to set any price for their applications to be distributed through the App Store, of which they will receive a 70 percent share
• Developers can also opt to release the application for free and will not pay any costs to release or distribute the application beyond the membership fee
![Page 9: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/9.jpg)
Web Apps
Applications are downloaded directly to iPhone or iPod Touch
App Store is also available within iTunes
Applications are subject to approval by Apple, as outlined in the SDK agreement, for basic reliability testing and other analysis
Applications may be rejected if they are of only "limited utility"
Toolbars must be placed at the bottom of the screen, and the vibration function should only be used for alerts
![Page 10: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/10.jpg)
How do we develop Apps for the iPhone?
We can use Xcode / Objective C
We can develop AJAX / Javascript applications that can be accessed through Safari
We can use Java
AlcheMo for iPhoneXmlvmWe can install Java on an unlocked and Jailbroken iPhone
![Page 11: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/11.jpg)
Objective C
1980S : Objective-C language designed by Brad J. Cox:
–Object-oriented extension of C. Inspired by Smalltalk. –Strict superset of C.
1988 : NeXT Software licenses the Objective-C language and develops NEXTSTEP
1992 : FSF adds Objective-C to GNU compiler suite
1994 : NeXT Computer and Sun Microsystems release a standardized OPENSTEP specification
1996 : Apple acquires NeXT Software. Use for OS X. OPENSTEP now called Cocoa.
![Page 12: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/12.jpg)
Objective C
Interface (.h)
#import <Foundation/NSObject.h>
@interface Fraction: NSObject{
intnumerator; intdenominator; }-(void) print; -(void)setNumerator: (int) d; -(void)setDenominator: (int) d; -(int) numerator; -(int) denomin@end
![Page 13: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/13.jpg)
Objective C
Implementation (.m)
#import "Fraction.h“
#import <stdio.h>
@implementation Fraction
-(void) print { printf("%i/%i", numerator, denominator); }
-(void) setNumerator: (int) n
{ numerator = n; }
-(void) setDenominator: (int) d
{ denominator = d; }
-(int) denominator { return denominator; }
-(int) numerator { return numerator; }@end
![Page 14: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/14.jpg)
AJAX & JavaScript
AJAX (Asynchronous JavaScript and XML) : a group of interrelated web development techniques used to create interactive web applications or rich Internet applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. Despite the name, the use of JavaScript and XML is not actually required, nor do the requests need to be asynchronous. The acronym AJAX has thus changed to the term Ajax, which does not represent these specific technologies.
Applets were the precursors of AJAX
With iPhone Safari browser, very rich and native looking Apps are possible
![Page 15: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/15.jpg)
AJAX & JavaScript
AJAX plugin for eclipse or standalone version : http://www.aptana.com/
Morfik also has an IDE : http://www.morfik.com/#Home
ASP.NET AJAX is supported : http://steveorr.net/articles/iPhone.aspx
Native look and feel screen controls : IUI. Based on the work of Joe Hewitt who developed the free Facebook iPhone App.• http://code.google.com/p/iui/• Create Navigational Menus and iPhone interfaces from
standard HTML• Use or knowledge of JavaScript is not required to create basic
iPhone pages• Ability to handle phone orientation changes• Provide a more "iPhone-like" experience to Web apps (on or
off the iPhone)
![Page 16: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/16.jpg)
AJAX & JavaScript
The canvas element is a third party extension that allows for dynamic rendering of scriptable bitmap images. It was initially introduced by Apple or use inside their own Mac OS X Webkit component, powering applications like Dashboard widgets and the Safari browser. Later, it was adopted by Gecko browsers (notably Mozilla and Firefox) and standardized by the WHATWG on new proposed specifications for next generation web technologies. Support is also present in the Opera 9.0 browser. Canvas consists of a drawable region defined in HTML code with height and width attributes. JavaScript code may access the area through a full set of drawing functions similar to other common 2D APIs, thus allowing for dynamically generated graphics. Some anticipated uses of the canvas include building graphs, animations, and image composition.No need for flash anymore!
![Page 17: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/17.jpg)
AJAX & JavaScript
Demo based on http://www.damonkohler.com/2008/12/javascript-painting-with-canvas.html
![Page 18: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/18.jpg)
AJAX & JavaScript
Demo based on http://www.benjoffe.com/code/demos/canvascape/
![Page 19: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/19.jpg)
AlcheMo for iPhone
http://www.innaworks.com/alcheMo-for-iPhone.html
alcheMo for iPhone is capable of converting J2ME applications utilizing an extensive subset of Java ME CLDC 1.1 (http://java.sun.com/products/cldc/) and MIDP 2.0 (including touch screen support) and supports several JSR extension APIs (http://jcp.org/en/jsr/detail?id=198) including the JSR-256 mobile sensor API. Additional APIs support multi-touch and native iPhone look and feel. This automatic translation process is instantaneous, repeatable, and available 24/7 while requiring no iPhone specific experience.
![Page 20: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/20.jpg)
(real) Java on the iPhone
No official support
It is however possible to run Java on the iPhone
We have to pull some tricks, jailbreaking, installing...
Apple has stated it will not design software updates specifically to break native applications other than applications that perform SIM unlocking
![Page 21: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/21.jpg)
Unlocking & Jailbreaking
Jailbreaking is distinct from "unlocking". Unlocking is the process by which a mobile device is made compatible with telephone networks it was not specifically licensed to be used with.
A jailbreak is the act of breaking out of a jail in UNIX-like operating systems or bypassing digital rights management (DRM). It is a specific form of privilege escalation. In the context of the iPhone, it allows the user to run arbitrarily defined code or applications, bypassing Apple's code distribution mechanism (the iTunes App Store and the iTunes Application).
Tools :PwnageTool, from the iPhone Dev Team (http://blog.iphone-dev.org/)QuickPwn, from the iPhone Dev Team (http://blog.iphone-dev.org/) Yellowsn0w, redsn0w (http://blog.iphone-dev.org/)Pusher, from RiP Dev (http://ripdev.com/pusher/)Linux on iPhone (http://www.iphonelinux.org/index.php/Main_Page)ZIPhone (http://www.ziphone.org/)
![Page 22: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/22.jpg)
IPhone in Finder
• Install AFP (Apple Filing Protocol) on your iPhone• Get your iPhone's IP address• Connect to server from MacOSX Finder• afp://ip-address-of-your-iphone• User : 'root' / pwd : 'alpine'
![Page 23: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/23.jpg)
Cydia
Cydia is a package manager for installing unofficial 3rd-party applications on the iPhoneAmong other things, this allows iPhone users to bypass Apple's restrictions on certain kinds of applications, such as launchers, custom wallpapers (themes) and battery status appsThe applications are downloaded directly to iPhone or iPod Touch and are located in the /Applications/ directory , in the same place where 'Apple' native applications are located. App Store applications are located in /var/mobile/Applications/Cydia is a front end/graphical interface for a port of APT created by Jay FreemanCydia allows users to add custom sources, so people can choose where to download software from
![Page 24: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/24.jpg)
Installer
Installer is another package installer, created and maintained by the Russian Rip-Dev company alongside other tools. The former maintainer of Installer, on pre 2.0 firmwares, was Nullriver, Inc.
![Page 25: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/25.jpg)
(real) Java on the iPhone
Run Cydia Installer, go to Java section and select iPhone/Java which will install the virtual machine, libraries etc. Then install Jikes (java compiler). Also, install Terminal. Now restart iPhone.
You can upload Java files to iPhone using iPhone Browser => demo
Run Terminal (installed above) and use java (jikes) compiler to compile your program. For example:
jikes -cp /usr/lib/rt.jar MyFirstJavaProgramForIPhone.java
You can run the class file as usual: java MyFirstJavaProgramForIPhone
![Page 26: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/26.jpg)
XMLVM
http://www.xmlvm.org/overview/
XMLVM translates a Java class file (or a .NET executable) to an XML-document. This allows manipulation and translation of XMLVM-based programs using advanced XML technologies such as XSLT, XQuery, and XPath. Based on the XML-document generated by the front-end, various transformations are possible :
Cross-compilation from .NET to JVM byte codeJava or .NET applications to JavaScript so that they can run as AJAX applications in any browserCross-compilation of Java programs to Objective-C to create native iPhone applicationsCross-compilation of Android applications to run on the iPhone
![Page 27: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/27.jpg)
XMLVM
![Page 28: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/28.jpg)
XMLVM
![Page 29: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/29.jpg)
HelloWorld in Java
import org.xmlvm.iphone.*;
public class HelloWorld extendsUIApplication
{ public voidapplicationDidFinishLaunching(NSNotification n)
{
CGRect rect = UIHardware.fullScreenApplicationContentRect();
UIWindow window = newUIWindow(rect);
window.orderFront(this); window.makeKey(this); window._setHidden(false); rect.origin.x = rect.origin.y = 0;
UIView mainView= newUIView(rect);
window.setContentView(mainView);
UITextLabel _title = new UITextLabel(rect);
_title.setText("Hello World!");
_title.setCentersHorizontally(true); mainView.addSubview(_title);
}
}
![Page 30: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/30.jpg)
HelloWorld in Objective C
@interface helloWorld : UIApplication
-(void) applicationDidFinishLaunching: (NSNotification) n;
@end
@implementation helloWorld
-(void) applicationDidFinishLaunching: (NSNotification) n
{CGRect rect = [UIHardware fullScreenApplicationContentRect];
UIWindow* window = [[UIWindow alloc]initWithContentRect: rect];
[window orderFront: self];
[window makeKey: self];
[window _setHidden: false];
rect.origin.x = rect.origin.y = 0;
UIView* mainView = [[UIView alloc] initWithFrame: rect];
[window setContentView: mainView];
UITextLabel *_title = [[UITextLabel alloc]initWithFrame: rect];
[_title setText: @"Hello World!"];
[_title setCentersHorizontally: true];
[mainView addSubview: _title];
}@end
![Page 31: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/31.jpg)
Crosscompiling HelloWorld.java to Objective-C
The cross-compiler is in source folder src/xmlvmclass org.xmlvm.Main
To generate the XMLVM for “Hello World” use the following command line options (under Eclipse):
--console ${workspace_loc:xmlvm}/bin/org/xmlvm/test/iphone/
HelloWorld.class
To cross-compile the XMLVM to Objective-C use:
--console --objc
${workspace_loc:xmlvm}/bin/org/xmlvm/test/iphone/
HelloWorld.class
To write the Objective-C source code to a file, use:
--out=tmp --objc
${workspace_loc:xmlvm}/bin/org/xmlvm/test/iphone/
HelloWorld.class
The previous command will generate two files:
–${workspace_loc:xmlvm}/tmp/HelloWorld.h
–${workspace_loc:xmlvm}/tmp/HelloWorld.m
![Page 32: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/32.jpg)
Compile and run HelloWorld
Type “make” in ${workspace_loc:xmlvm}/tmp
Type “make deploy”
On the iPhone, type “killall SpringBoard” . The previous command can be accomplished by either ssh-ing (secure shell) into the iPhone, or by using a terminal application on the iPhone.
Restarting the SpringBoard is necessary only once so that it picks up the new “Hello World” application.
![Page 33: I phone app develoment ppt](https://reader033.vdocuments.net/reader033/viewer/2022061118/5469e95faf795925028b6bdc/html5/thumbnails/33.jpg)
THANK YOU !!!!