SlideShare a Scribd company logo
1 of 33
Download to read offline
iPhone App development -
SKILLSCHOOL.co.in
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
Features
Screen size: 3.5 in (89 mm)
Screen resolution: 480×320 pixels at 163 ppi, with 3:2 aspect ratio
Input devices: Multi-touch screen interface plus a "Home" button and
"Sleep/Wake" located on the top of the iPhone.
Built-in rechargeable, non-removable battery
2 megapixel camera
Location finding by detection of cell towers and Wi-Fi networks
Samsung S5L8900 (412 MHz ARM 1176 processor, PowerVR MBX 3D
graphics co-processor)
Memory: 128 MB DRAM
Storage: 8 GB or 16 GB flash memory
Operating System: iPhone OS
Quad band GSM / GPRS / EDGE: GSM 850 / 900 / 1800 / 1900
Wi-Fi (802.11b/g)
Bluetooth 2.0 with EDR
20Hz to 20kHz frequency response (both internal and headset)
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 g
Headphone 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 GPS
Digital SAR Rating: 1.38 W/kg
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
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
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 :
Xcode
IPhone simulator
Monitoring instruments
Interface 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
Web apps
• http://www.apple.com/webapps/
http://www.shockwise.com/iphone/draw.ph
p
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
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
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 iPhone
Xmlvm
We can install Java on an unlocked and Jailbroken iPhone
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.
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
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
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
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)
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!
AJAX & JavaScript
Demo based on http://www.damonkohler.com/2008/12/javascript-painting-
with-canvas.html
AJAX & JavaScript
Demo based on http://www.benjoffe.com/code/demos/canvascape/
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.
(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
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/)
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'
Cydia
Cydia is a package manager for installing unofficial
3rd-party applications on the iPhone
Among 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 apps
The 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 Freeman
Cydia allows users to add custom sources, so
people can choose where to download software
from
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.
(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
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 code
Java or .NET applications to JavaScript so that they can run as AJAX
applications in any browser
Cross-compilation of Java programs to Objective-C to create native
iPhone applications
Cross-compilation of Android applications to run on the iPhone
XMLVM
XMLVM
HelloWorld in Java
i mport org.xmlvm.iphone.*;
publ i c cl ass HelloWorld ext endsUIApplication
{
publ i c voi dapplicationDidFinishLaunching(NSNotification n)
{
CGRect rect = UIHardware.fullScreenApplicationContentRect();
UIWindow window = newUIWindow(rect);
window.orderFront(t hi s);
window.makeKey(t hi s);
window._setHidden(f al se);
rect.origin.x = rect.origin.y = 0;
UIView mainView= newUIView(rect);
window.setContentView(mainView);
UITextLabel _title = newUITextLabel(rect);
_title.setText("Hello World!");
_title.setCentersHorizontally(t rue);
mainView.addSubview(_title);
}
}
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
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
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.
THANK YOU !!!!

More Related Content

Similar to I phone app develoment ppt

Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioCreate Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioGuilhem Ensuque
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentrohithn
 
Windows phone 8 overview
Windows phone 8 overviewWindows phone 8 overview
Windows phone 8 overviewcodeblock
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011sullis
 
Firefox OS - Answering global challenges
Firefox OS - Answering global challengesFirefox OS - Answering global challenges
Firefox OS - Answering global challengesChristian Heilmann
 
Phone gap in android technology
Phone gap in android technologyPhone gap in android technology
Phone gap in android technologyVikrant Thakare
 
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...RIA RUI Society
 
The iPhone development on windows
The iPhone development on windowsThe iPhone development on windows
The iPhone development on windowsNAILBITER
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15sullis
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and DeliveryJason Diehl
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentsoufyan rifai
 
iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008Roland Tritsch
 
An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)rudigrobler
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegapRakesh Jha
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegapRakesh Jha
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screenspaultrani
 

Similar to I phone app develoment ppt (20)

Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioCreate Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
 
Iphone
IphoneIphone
Iphone
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Windows phone 8 overview
Windows phone 8 overviewWindows phone 8 overview
Windows phone 8 overview
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
Firefox OS - Answering global challenges
Firefox OS - Answering global challengesFirefox OS - Answering global challenges
Firefox OS - Answering global challenges
 
mobicon_paper
mobicon_papermobicon_paper
mobicon_paper
 
MSR iOS Tranining
MSR iOS TraniningMSR iOS Tranining
MSR iOS Tranining
 
Symbian OS
Symbian  OS Symbian  OS
Symbian OS
 
Phone gap in android technology
Phone gap in android technologyPhone gap in android technology
Phone gap in android technology
 
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
 
The iPhone development on windows
The iPhone development on windowsThe iPhone development on windows
The iPhone development on windows
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and Delivery
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008iPhone meets SOA - 06/2008
iPhone meets SOA - 06/2008
 
An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screens
 

More from sagaroceanic11

Module 21 investigative reports
Module 21 investigative reportsModule 21 investigative reports
Module 21 investigative reportssagaroceanic11
 
Module 20 mobile forensics
Module 20 mobile forensicsModule 20 mobile forensics
Module 20 mobile forensicssagaroceanic11
 
Module 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimesModule 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimessagaroceanic11
 
Module 18 investigating web attacks
Module 18 investigating web attacksModule 18 investigating web attacks
Module 18 investigating web attackssagaroceanic11
 
Module 17 investigating wireless attacks
Module 17 investigating wireless attacksModule 17 investigating wireless attacks
Module 17 investigating wireless attackssagaroceanic11
 
Module 04 digital evidence
Module 04 digital evidenceModule 04 digital evidence
Module 04 digital evidencesagaroceanic11
 
Module 03 searching and seizing computers
Module 03 searching and seizing computersModule 03 searching and seizing computers
Module 03 searching and seizing computerssagaroceanic11
 
Module 01 computer forensics in todays world
Module 01 computer forensics in todays worldModule 01 computer forensics in todays world
Module 01 computer forensics in todays worldsagaroceanic11
 
Virtualisation with v mware
Virtualisation with v mwareVirtualisation with v mware
Virtualisation with v mwaresagaroceanic11
 
Virtualisation overview
Virtualisation overviewVirtualisation overview
Virtualisation overviewsagaroceanic11
 
Introduction to virtualisation
Introduction to virtualisationIntroduction to virtualisation
Introduction to virtualisationsagaroceanic11
 
2 the service lifecycle
2 the service lifecycle2 the service lifecycle
2 the service lifecyclesagaroceanic11
 
1 introduction to itil v[1].3
1 introduction to itil v[1].31 introduction to itil v[1].3
1 introduction to itil v[1].3sagaroceanic11
 
Visual studio 2008 overview
Visual studio 2008 overviewVisual studio 2008 overview
Visual studio 2008 overviewsagaroceanic11
 

More from sagaroceanic11 (20)

Module 21 investigative reports
Module 21 investigative reportsModule 21 investigative reports
Module 21 investigative reports
 
Module 20 mobile forensics
Module 20 mobile forensicsModule 20 mobile forensics
Module 20 mobile forensics
 
Module 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimesModule 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimes
 
Module 18 investigating web attacks
Module 18 investigating web attacksModule 18 investigating web attacks
Module 18 investigating web attacks
 
Module 17 investigating wireless attacks
Module 17 investigating wireless attacksModule 17 investigating wireless attacks
Module 17 investigating wireless attacks
 
Module 04 digital evidence
Module 04 digital evidenceModule 04 digital evidence
Module 04 digital evidence
 
Module 03 searching and seizing computers
Module 03 searching and seizing computersModule 03 searching and seizing computers
Module 03 searching and seizing computers
 
Module 01 computer forensics in todays world
Module 01 computer forensics in todays worldModule 01 computer forensics in todays world
Module 01 computer forensics in todays world
 
Virtualisation with v mware
Virtualisation with v mwareVirtualisation with v mware
Virtualisation with v mware
 
Virtualisation overview
Virtualisation overviewVirtualisation overview
Virtualisation overview
 
Virtualisation basics
Virtualisation basicsVirtualisation basics
Virtualisation basics
 
Introduction to virtualisation
Introduction to virtualisationIntroduction to virtualisation
Introduction to virtualisation
 
6 service operation
6 service operation6 service operation
6 service operation
 
5 service transition
5 service transition5 service transition
5 service transition
 
4 service design
4 service design4 service design
4 service design
 
3 service strategy
3 service strategy3 service strategy
3 service strategy
 
2 the service lifecycle
2 the service lifecycle2 the service lifecycle
2 the service lifecycle
 
1 introduction to itil v[1].3
1 introduction to itil v[1].31 introduction to itil v[1].3
1 introduction to itil v[1].3
 
Visual studio 2008 overview
Visual studio 2008 overviewVisual studio 2008 overview
Visual studio 2008 overview
 
Vb introduction.
Vb introduction.Vb introduction.
Vb introduction.
 

Recently uploaded

UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 

Recently uploaded (20)

UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 

I phone app develoment ppt

  • 1. iPhone App development - SKILLSCHOOL.co.in
  • 2. 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
  • 3. Features Screen size: 3.5 in (89 mm) Screen resolution: 480×320 pixels at 163 ppi, with 3:2 aspect ratio Input devices: Multi-touch screen interface plus a "Home" button and "Sleep/Wake" located on the top of the iPhone. Built-in rechargeable, non-removable battery 2 megapixel camera Location finding by detection of cell towers and Wi-Fi networks Samsung S5L8900 (412 MHz ARM 1176 processor, PowerVR MBX 3D graphics co-processor) Memory: 128 MB DRAM Storage: 8 GB or 16 GB flash memory Operating System: iPhone OS Quad band GSM / GPRS / EDGE: GSM 850 / 900 / 1800 / 1900 Wi-Fi (802.11b/g) Bluetooth 2.0 with EDR 20Hz to 20kHz frequency response (both internal and headset)
  • 4. 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 g Headphone 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 GPS Digital SAR Rating: 1.38 W/kg
  • 5. 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
  • 6. 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
  • 7. 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 : Xcode IPhone simulator Monitoring instruments Interface 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
  • 8. Web apps • http://www.apple.com/webapps/ http://www.shockwise.com/iphone/draw.ph p 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
  • 9. 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
  • 10. 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 iPhone Xmlvm We can install Java on an unlocked and Jailbroken iPhone
  • 11. 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.
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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)
  • 16. 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!
  • 17. AJAX & JavaScript Demo based on http://www.damonkohler.com/2008/12/javascript-painting- with-canvas.html
  • 18. AJAX & JavaScript Demo based on http://www.benjoffe.com/code/demos/canvascape/
  • 19. 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.
  • 20. (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
  • 21. 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/)
  • 22. 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'
  • 23. Cydia Cydia is a package manager for installing unofficial 3rd-party applications on the iPhone Among 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 apps The 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 Freeman Cydia allows users to add custom sources, so people can choose where to download software from
  • 24. 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.
  • 25. (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
  • 26. 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 code Java or .NET applications to JavaScript so that they can run as AJAX applications in any browser Cross-compilation of Java programs to Objective-C to create native iPhone applications Cross-compilation of Android applications to run on the iPhone
  • 27. XMLVM
  • 28. XMLVM
  • 29. HelloWorld in Java i mport org.xmlvm.iphone.*; publ i c cl ass HelloWorld ext endsUIApplication { publ i c voi dapplicationDidFinishLaunching(NSNotification n) { CGRect rect = UIHardware.fullScreenApplicationContentRect(); UIWindow window = newUIWindow(rect); window.orderFront(t hi s); window.makeKey(t hi s); window._setHidden(f al se); rect.origin.x = rect.origin.y = 0; UIView mainView= newUIView(rect); window.setContentView(mainView); UITextLabel _title = newUITextLabel(rect); _title.setText("Hello World!"); _title.setCentersHorizontally(t rue); mainView.addSubview(_title); } }
  • 30. 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
  • 31. 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
  • 32. 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.