SlideShare una empresa de Scribd logo
1 de 29
Experiencing iOS 
Development to Distribution 
Tunvir Rahman Tusher 
Brain Station 23
What is iOS? 
 Apples mobile operating system considered the foundation of the 
iPhone 
 Originally designed for the iPhone but now supports iPod touch, iPad. 
 Current available version of iOS is 7.1.2 and iOS 8 in beta 
 As of June 2014 Apple contains over 1,200,000 iOS applications 
 The reason behind iOS popularity is its great user experience.
Four pillars of iOS development
iOS Development Requirements 
 Language: Objective C/Swift(beta) 
 IDE : XCode (Latest available one is 5.1.1) 
 Machine : Mac running OS X 10.6 or higher 
 For Distribution and test in real device we need a Developer Account
Xcode 
 Complete tool set for building Apps for 
 Mac OS X 
 And iOS. 
 includes the IDE: 
 Compiler 
 Tools for performance and behavior analysis 
 iOS simulator
UI design Tool 
iPhone/iPad UI design is extremely friendly(comparative to Android!) 
for Developer as the screen size of iOS devices are fixed. 
For iPhone there is two screen size of 3.5 and 4 inch with 
resolution of 320×480, 640×960, 640×1136 
For iPad the screen size is 7.9 and 9.7 inch with resolution of 
1024×768(non-retina) and 2048×1536 (retina). 
The design technique used for iOS is storyboard. In backend its 
actually an xml. 
For universal app(for both iPhone and iPad) we can use two identical 
storyboard.
Design patterns 
 Many of the frameworks use well-known design patterns for 
implementing your application. 
 For example, MVC, Block, Delegate, Target-Action etc
Objective C Overview 
Objective-C is an object oriented language. 
follows ANSI C style coding with methods from 
Smalltalk 
SUPERSET of C 
Flexible almost everything is done at runtime. 
Dynamic Binding 
Dynamic Typing(type id) 
Basic Framework is Cocoa,UIKit
Non-GUI – text output 
 Two standard functions you see used 
 printf() – same as C 
 printf(“Hello World”); //this is actual C code 
 NSLog() 
 NSLog(@”Hello World”); //this is strictly Objective-C
Primitive data types from C 
 int, short, long 
 float,double 
 Char 
Operators same as C 
 + 
 - 
 * 
 / 
 ++ 
 --
Classes 
 Have both definition file and implementation file : 
classname.h and classname.m 
 Similar to how have .h and .cpp in C++
Declaring a class in ClassName.h 
#import <Cocoa/Cocoa.h> 
@interface ClassName : Parent { 
//class variables 
int age; 
NSString name; 
} 
// methods declared 
-(void)setAge:(int)number; 
-(void)setName:(NSString)n; 
-(int)getAge; 
-(NSString)getName; 
@end 
#import <standardimports.h> 
#import “local-your-otherfiles.h” 
@interface ClassName: Parent { 
//class variables 
} 
//methods 
-(return_type) methodName:(type)param1, (type) 
param2; 
@end
Whats this + and – stuff? 
 When declaring or implementing functions for a class, they 
must begin with a + or - 
 + indicates a “class method” that can only be used by the 
class itself. (they are like static methods in Java 
invoked on class itself) 
 - indicates “instance methods” to be used by the client 
program (public functions) –invoked on an object / class 
instance . (they are like regular methods in Java 
invoked on object)
Main Funciton –like C++ 
#import <whatever/what.h> 
int main(int argc, const char *argv[]) 
{ 
@autoreleasepool { 
//your code here******* 
//you can have C code if you wish or Objective-C 
return 0; 
} 
} 
NOTE: Latest version of Objective-C uses Automatic 
Reference Counting (kind of like automatic garbage collection) 
----to handle getting rid of not needed items in memory (avoiding 
memory leaks). YEAH! AUTOMATIC! 
-----like Java this way 
@autoreleasepool in a needed annotation around your main 
block of code to “enable” this
Automatic Reference Counting 
Objective C uses ‘AUTOMATIC reference 
counting' as memory management 
keeps an internal count of how many times 
an Object is 'needed'. 
System makes sure that objects that are 
needed are not deleted, and when an object 
is not needed it is deleted.
Declaring methods 
C++ syntax 
void function(int x, int y, int z); 
Object.function(x, y, z); 
Objective-C syntax 
-(void)methodWithX : (int)x Y :(int)y andZ (int)z 
[someObject methodWithX:1 Y:2 andZ:2]; 
-(return type) function_Apply function to Object name: (type) p1, (type) p2, ***; 
passing parameters x,y,z
Messages ---really weird (new) 
syntax 
Almost every object manipulation is done by 
sending objects a message 
Two words within a set of brackets, the 
object identifier and the message to send. 
[Identifier message ] 
Like C++ or Java’s Identifier.message()
Memory Allocation 
 Objects are created dynamically through the keyword, “alloc” 
 Objects are automatically deallocated in latest Objective-C 
through automatic reference counting 
Sample Allocation Of Object 
 AClass *object=[[AClass alloc]initWithSomeThing]; 
 Constructor Does not exist in Objective C
Static Binding/Overloading 
Objective C overload method based on label,not 
parameter type/parameter sequence 
Example 
 -(void)someMethodWithA:(int)a WithB:(int)b; 
 -(void)someMethodWithA:(double)a WithB:(int)b; 
We have to do 
 -(void)someMethodWithA:(int)a WithB:(int)b; 
 -(void)someMethodWithX:(int)a WithX:(int)b;
NSString 
NSString *theMessage = @”hello world”; 
Number of characters in a string 
 NSUInteger charCount = [theMessage length]; 
Test if 2 strings equal 
 if([string_var_1 isEqual: string_var_2]) 
{ //code for equal case }
NSArray – holds fixed array of 
points to objects 
NSArray *thearray = [NSArray arrayWithObjects:o1,o2,o3,o4, nil]; 
//get element 
[thearray objectAtIndex:0]; //element at index 0 
Example 
Note: you can not add or remove a pointer from an NSArray 
---fixed once created 
NSDate *now = [NSDate date]; 
NSDate *tomorrow = [now dateByAddingTImeInterval:24.0*60.0*60.0]; //add a day 
NSDate *yesterday = [now dateByAddingTimeInterval:-24.0*60.0*60.0]; //minus a day 
//array of Dates 
NSArray *dateList = [NSArray arrayWithObjects:now, tomorrow, yesterday]; 
//get elements in array 
NSDate *first = [dateList objectAtIndex:0]; 
Methods are: 
count = gets number of items in array 
objectAtIndex:i = returns element i of array (starting from 0)
NSMutableArray – changeable array 
of pointers to objects. 
NSMutableArray *thearray = [NSArray arrayWithObjects:o1,o2,o3,o4, nil]; 
//get element 
[thearray objectAtIndex:0]; //element at index 0 
Note: you can add or remove a pointer from an NSMutableArray 
Example 
NSDate *now = [NSDate date]; 
NSDate *tomorrow = [now dateByAddingTImeInterval:24.0*60.0*60.0]; //add a day 
NSDate *yesterday = [now dateByAddingTimeInterval:-24.0*60.0*60.0]; //minus a day 
//array of Dates 
NSMutableArray *dateList = [NSMutableArray array]; 
//set elements 
[dateList addObject:now]; 
[dateList addObject:tomorrow]; 
[dateList addObject:yesterday]; 
Methods are: 
array = gets empty NSMutableArray 
addObject:obj = adds as next element the obj 
to array
iOS app Distribution Process
iOS Developer Program 
 $99/year 
 provides 
 a complete and integrated process 
 for developing and distributing iOS apps on the App 
Store.
Test Your App in real Device 
Prepare Dev certificate in developer portal 
with your mac keychain. 
Download and install it in your mac. 
Add Devices to your portal(max 100) 
Prepare provisioning profile adding this 
certificate and devices you want to test. 
In xcode set the provisioning profile and 
certuficate you made. 
Build and Go!
Submit App To App Store 
What we need? 
1.A Distribution Certificate 
2. A provisioning profile 
3. App meta data like Some Screenshot of the app,Description 
etc 
Create ipa(iOS executable) using certificate and provisioning 
profile and Submit it using itunes connect. 
After both automated and manual testing the app is ready to 
sell. This process may take upto a week.
Some App rejection reasons 
• Apps that crash/exhibit bugs/do not perform as advertised by 
the developer will be rejected. 
• include undocumented or hidden features inconsistent with the 
description of the App will be rejected 
• use non-public APIs will be rejected 
• install or launch other executable code will be rejected 
• App for Personal attacks/Violence/Damage or injury 
• App containing Objectionable content or Violate Privacy will 
be rejected.
Thank you all.
Q/A?

Más contenido relacionado

La actualidad más candente

Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Vu Tran Lam
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...Sang Don Kim
 
Design patterns in java script, jquery, angularjs
Design patterns in java script, jquery, angularjsDesign patterns in java script, jquery, angularjs
Design patterns in java script, jquery, angularjsRavi Bhadauria
 
PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...PVS-Studio
 
SeneJug java_8_prez_122015
SeneJug java_8_prez_122015SeneJug java_8_prez_122015
SeneJug java_8_prez_122015senejug
 
Eqela Core API and Utilities
Eqela Core API and UtilitiesEqela Core API and Utilities
Eqela Core API and Utilitiesjobandesther
 
Graphical User Interface Development with Eqela
Graphical User Interface Development with EqelaGraphical User Interface Development with Eqela
Graphical User Interface Development with Eqelajobandesther
 
08 c++ Operator Overloading.ppt
08 c++ Operator Overloading.ppt08 c++ Operator Overloading.ppt
08 c++ Operator Overloading.pptTareq Hasan
 
C++ vs C#
C++ vs C#C++ vs C#
C++ vs C#sudipv
 
Денис Лебедев, Swift
Денис Лебедев, SwiftДенис Лебедев, Swift
Денис Лебедев, SwiftYandex
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overviewscdhruv5
 
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...PVS-Studio
 
From object oriented to functional domain modeling
From object oriented to functional domain modelingFrom object oriented to functional domain modeling
From object oriented to functional domain modelingCodemotion
 
PHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generationPHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generationAlexander Obukhov
 
Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#Sagar Pednekar
 

La actualidad más candente (20)

Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
C++ Programming
C++ ProgrammingC++ Programming
C++ Programming
 
operator overloading
operator overloadingoperator overloading
operator overloading
 
Design patterns in java script, jquery, angularjs
Design patterns in java script, jquery, angularjsDesign patterns in java script, jquery, angularjs
Design patterns in java script, jquery, angularjs
 
PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...
 
SeneJug java_8_prez_122015
SeneJug java_8_prez_122015SeneJug java_8_prez_122015
SeneJug java_8_prez_122015
 
Eqela Core API and Utilities
Eqela Core API and UtilitiesEqela Core API and Utilities
Eqela Core API and Utilities
 
Graphical User Interface Development with Eqela
Graphical User Interface Development with EqelaGraphical User Interface Development with Eqela
Graphical User Interface Development with Eqela
 
08 c++ Operator Overloading.ppt
08 c++ Operator Overloading.ppt08 c++ Operator Overloading.ppt
08 c++ Operator Overloading.ppt
 
C++ vs C#
C++ vs C#C++ vs C#
C++ vs C#
 
Денис Лебедев, Swift
Денис Лебедев, SwiftДенис Лебедев, Swift
Денис Лебедев, Swift
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overview
 
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
 
From object oriented to functional domain modeling
From object oriented to functional domain modelingFrom object oriented to functional domain modeling
From object oriented to functional domain modeling
 
PHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generationPHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generation
 
Unary operator overloading
Unary operator overloadingUnary operator overloading
Unary operator overloading
 
SWIFT 3
SWIFT 3SWIFT 3
SWIFT 3
 
Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 

Similar a iOS,From Development to Distribution

Similar a iOS,From Development to Distribution (20)

Objective c intro (1)
Objective c intro (1)Objective c intro (1)
Objective c intro (1)
 
iPhone development from a Java perspective (Jazoon '09)
iPhone development from a Java perspective (Jazoon '09)iPhone development from a Java perspective (Jazoon '09)
iPhone development from a Java perspective (Jazoon '09)
 
Objective c
Objective cObjective c
Objective c
 
02 objective-c session 2
02  objective-c session 202  objective-c session 2
02 objective-c session 2
 
FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsFI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS Basics
 
iOS for Android Developers (with Swift)
iOS for Android Developers (with Swift)iOS for Android Developers (with Swift)
iOS for Android Developers (with Swift)
 
MFF UK - Introduction to iOS
MFF UK - Introduction to iOSMFF UK - Introduction to iOS
MFF UK - Introduction to iOS
 
Objective c beginner's guide
Objective c beginner's guideObjective c beginner's guide
Objective c beginner's guide
 
iPhone Workshop Mobile Monday Ahmedabad
iPhone Workshop Mobile Monday AhmedabadiPhone Workshop Mobile Monday Ahmedabad
iPhone Workshop Mobile Monday Ahmedabad
 
C++ Programming
C++ ProgrammingC++ Programming
C++ Programming
 
SRAVANByCPP
SRAVANByCPPSRAVANByCPP
SRAVANByCPP
 
Ios - Introduction to platform & SDK
Ios - Introduction to platform & SDKIos - Introduction to platform & SDK
Ios - Introduction to platform & SDK
 
Nativescript with angular 2
Nativescript with angular 2Nativescript with angular 2
Nativescript with angular 2
 
What is c++ programming
What is c++ programmingWhat is c++ programming
What is c++ programming
 
.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
 
ASP.NET Basics
ASP.NET Basics ASP.NET Basics
ASP.NET Basics
 
c++ referesher 1.pdf
c++ referesher 1.pdfc++ referesher 1.pdf
c++ referesher 1.pdf
 
PRINCE PRESENTATION(1).pptx
PRINCE PRESENTATION(1).pptxPRINCE PRESENTATION(1).pptx
PRINCE PRESENTATION(1).pptx
 
Oopp Lab Work
Oopp Lab WorkOopp Lab Work
Oopp Lab Work
 
I Phone Development Presentation
I Phone Development PresentationI Phone Development Presentation
I Phone Development Presentation
 

Último

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 

Último (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 

iOS,From Development to Distribution

  • 1. Experiencing iOS Development to Distribution Tunvir Rahman Tusher Brain Station 23
  • 2. What is iOS?  Apples mobile operating system considered the foundation of the iPhone  Originally designed for the iPhone but now supports iPod touch, iPad.  Current available version of iOS is 7.1.2 and iOS 8 in beta  As of June 2014 Apple contains over 1,200,000 iOS applications  The reason behind iOS popularity is its great user experience.
  • 3. Four pillars of iOS development
  • 4. iOS Development Requirements  Language: Objective C/Swift(beta)  IDE : XCode (Latest available one is 5.1.1)  Machine : Mac running OS X 10.6 or higher  For Distribution and test in real device we need a Developer Account
  • 5. Xcode  Complete tool set for building Apps for  Mac OS X  And iOS.  includes the IDE:  Compiler  Tools for performance and behavior analysis  iOS simulator
  • 6. UI design Tool iPhone/iPad UI design is extremely friendly(comparative to Android!) for Developer as the screen size of iOS devices are fixed. For iPhone there is two screen size of 3.5 and 4 inch with resolution of 320×480, 640×960, 640×1136 For iPad the screen size is 7.9 and 9.7 inch with resolution of 1024×768(non-retina) and 2048×1536 (retina). The design technique used for iOS is storyboard. In backend its actually an xml. For universal app(for both iPhone and iPad) we can use two identical storyboard.
  • 7. Design patterns  Many of the frameworks use well-known design patterns for implementing your application.  For example, MVC, Block, Delegate, Target-Action etc
  • 8. Objective C Overview Objective-C is an object oriented language. follows ANSI C style coding with methods from Smalltalk SUPERSET of C Flexible almost everything is done at runtime. Dynamic Binding Dynamic Typing(type id) Basic Framework is Cocoa,UIKit
  • 9. Non-GUI – text output  Two standard functions you see used  printf() – same as C  printf(“Hello World”); //this is actual C code  NSLog()  NSLog(@”Hello World”); //this is strictly Objective-C
  • 10. Primitive data types from C  int, short, long  float,double  Char Operators same as C  +  -  *  /  ++  --
  • 11. Classes  Have both definition file and implementation file : classname.h and classname.m  Similar to how have .h and .cpp in C++
  • 12. Declaring a class in ClassName.h #import <Cocoa/Cocoa.h> @interface ClassName : Parent { //class variables int age; NSString name; } // methods declared -(void)setAge:(int)number; -(void)setName:(NSString)n; -(int)getAge; -(NSString)getName; @end #import <standardimports.h> #import “local-your-otherfiles.h” @interface ClassName: Parent { //class variables } //methods -(return_type) methodName:(type)param1, (type) param2; @end
  • 13. Whats this + and – stuff?  When declaring or implementing functions for a class, they must begin with a + or -  + indicates a “class method” that can only be used by the class itself. (they are like static methods in Java invoked on class itself)  - indicates “instance methods” to be used by the client program (public functions) –invoked on an object / class instance . (they are like regular methods in Java invoked on object)
  • 14. Main Funciton –like C++ #import <whatever/what.h> int main(int argc, const char *argv[]) { @autoreleasepool { //your code here******* //you can have C code if you wish or Objective-C return 0; } } NOTE: Latest version of Objective-C uses Automatic Reference Counting (kind of like automatic garbage collection) ----to handle getting rid of not needed items in memory (avoiding memory leaks). YEAH! AUTOMATIC! -----like Java this way @autoreleasepool in a needed annotation around your main block of code to “enable” this
  • 15. Automatic Reference Counting Objective C uses ‘AUTOMATIC reference counting' as memory management keeps an internal count of how many times an Object is 'needed'. System makes sure that objects that are needed are not deleted, and when an object is not needed it is deleted.
  • 16. Declaring methods C++ syntax void function(int x, int y, int z); Object.function(x, y, z); Objective-C syntax -(void)methodWithX : (int)x Y :(int)y andZ (int)z [someObject methodWithX:1 Y:2 andZ:2]; -(return type) function_Apply function to Object name: (type) p1, (type) p2, ***; passing parameters x,y,z
  • 17. Messages ---really weird (new) syntax Almost every object manipulation is done by sending objects a message Two words within a set of brackets, the object identifier and the message to send. [Identifier message ] Like C++ or Java’s Identifier.message()
  • 18. Memory Allocation  Objects are created dynamically through the keyword, “alloc”  Objects are automatically deallocated in latest Objective-C through automatic reference counting Sample Allocation Of Object  AClass *object=[[AClass alloc]initWithSomeThing];  Constructor Does not exist in Objective C
  • 19. Static Binding/Overloading Objective C overload method based on label,not parameter type/parameter sequence Example  -(void)someMethodWithA:(int)a WithB:(int)b;  -(void)someMethodWithA:(double)a WithB:(int)b; We have to do  -(void)someMethodWithA:(int)a WithB:(int)b;  -(void)someMethodWithX:(int)a WithX:(int)b;
  • 20. NSString NSString *theMessage = @”hello world”; Number of characters in a string  NSUInteger charCount = [theMessage length]; Test if 2 strings equal  if([string_var_1 isEqual: string_var_2]) { //code for equal case }
  • 21. NSArray – holds fixed array of points to objects NSArray *thearray = [NSArray arrayWithObjects:o1,o2,o3,o4, nil]; //get element [thearray objectAtIndex:0]; //element at index 0 Example Note: you can not add or remove a pointer from an NSArray ---fixed once created NSDate *now = [NSDate date]; NSDate *tomorrow = [now dateByAddingTImeInterval:24.0*60.0*60.0]; //add a day NSDate *yesterday = [now dateByAddingTimeInterval:-24.0*60.0*60.0]; //minus a day //array of Dates NSArray *dateList = [NSArray arrayWithObjects:now, tomorrow, yesterday]; //get elements in array NSDate *first = [dateList objectAtIndex:0]; Methods are: count = gets number of items in array objectAtIndex:i = returns element i of array (starting from 0)
  • 22. NSMutableArray – changeable array of pointers to objects. NSMutableArray *thearray = [NSArray arrayWithObjects:o1,o2,o3,o4, nil]; //get element [thearray objectAtIndex:0]; //element at index 0 Note: you can add or remove a pointer from an NSMutableArray Example NSDate *now = [NSDate date]; NSDate *tomorrow = [now dateByAddingTImeInterval:24.0*60.0*60.0]; //add a day NSDate *yesterday = [now dateByAddingTimeInterval:-24.0*60.0*60.0]; //minus a day //array of Dates NSMutableArray *dateList = [NSMutableArray array]; //set elements [dateList addObject:now]; [dateList addObject:tomorrow]; [dateList addObject:yesterday]; Methods are: array = gets empty NSMutableArray addObject:obj = adds as next element the obj to array
  • 24. iOS Developer Program  $99/year  provides  a complete and integrated process  for developing and distributing iOS apps on the App Store.
  • 25. Test Your App in real Device Prepare Dev certificate in developer portal with your mac keychain. Download and install it in your mac. Add Devices to your portal(max 100) Prepare provisioning profile adding this certificate and devices you want to test. In xcode set the provisioning profile and certuficate you made. Build and Go!
  • 26. Submit App To App Store What we need? 1.A Distribution Certificate 2. A provisioning profile 3. App meta data like Some Screenshot of the app,Description etc Create ipa(iOS executable) using certificate and provisioning profile and Submit it using itunes connect. After both automated and manual testing the app is ready to sell. This process may take upto a week.
  • 27. Some App rejection reasons • Apps that crash/exhibit bugs/do not perform as advertised by the developer will be rejected. • include undocumented or hidden features inconsistent with the description of the App will be rejected • use non-public APIs will be rejected • install or launch other executable code will be rejected • App for Personal attacks/Violence/Damage or injury • App containing Objectionable content or Violate Privacy will be rejected.
  • 29. Q/A?