SlideShare une entreprise Scribd logo
1  sur  249
Télécharger pour lire hors ligne
lunes 3 de septiembre de 12
How to do Almost Smalltalking
to develop iOs Apps
lunes 3 de septiembre de 12
How to do Almost Smalltalking
to develop iOs Apps
Tansel Ersavas
tansel@tansel.org
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Let us do some survey
lunes 3 de septiembre de 12
Let us do some survey
• As primary development platform
lunes 3 de septiembre de 12
Let us do some survey
• As primary development platform
• How many uses Windows
lunes 3 de septiembre de 12
Let us do some survey
• As primary development platform
• How many uses Windows
• Linux
lunes 3 de septiembre de 12
Let us do some survey
• As primary development platform
• How many uses Windows
• Linux
• Mac
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Mobile Platforms
lunes 3 de septiembre de 12
Mobile Platforms
• Any developers for mobile platforms?
lunes 3 de septiembre de 12
Mobile Platforms
• Any developers for mobile platforms?
• Any iOs developers
lunes 3 de septiembre de 12
Mobile Platforms
• Any developers for mobile platforms?
• Any iOs developers
• Any Android developers
lunes 3 de septiembre de 12
Mobile Platforms
• Any developers for mobile platforms?
• Any iOs developers
• Any Android developers
• Windows
lunes 3 de septiembre de 12
Mobile Platforms
• Any developers for mobile platforms?
• Any iOs developers
• Any Android developers
• Windows
• Multiple platforms?
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Who am I?
lunes 3 de septiembre de 12
Who am I?
• Doing Smalltalk since 1992
lunes 3 de septiembre de 12
Who am I?
• Doing Smalltalk since 1992
• Involved in Squeak since 1996
lunes 3 de septiembre de 12
Who am I?
• Doing Smalltalk since 1992
• Involved in Squeak since 1996
• Past developer and editor of the SqueakNews
e-zine
lunes 3 de septiembre de 12
Who am I?
• Doing Smalltalk since 1992
• Involved in Squeak since 1996
• Past developer and editor of the SqueakNews
e-zine
• Experienced systems developer with30+ years
of experience
lunes 3 de septiembre de 12
Who am I?
• Doing Smalltalk since 1992
• Involved in Squeak since 1996
• Past developer and editor of the SqueakNews
e-zine
• Experienced systems developer with30+ years
of experience
• Currently iOs,Android and RAILS consultant
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Why am I not there?
lunes 3 de septiembre de 12
Why am I not there?
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Mobile madness
lunes 3 de septiembre de 12
Mobile madness
• Who is to blame?
lunes 3 de septiembre de 12
Mobile madness
• Who is to blame?
• Especially tablets
lunes 3 de septiembre de 12
Mobile madness
• Who is to blame?
• Especially tablets
• Guess who started it
lunes 3 de septiembre de 12
Mobile madness
• Who is to blame?
• Especially tablets
• Guess who started it
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Why iOs
lunes 3 de septiembre de 12
Why iOs
• Rise of mobile devices
lunes 3 de septiembre de 12
Why iOs
• Rise of mobile devices
• Rise of tablets
lunes 3 de septiembre de 12
Why iOs
• Rise of mobile devices
• Rise of tablets
• Apple projected to sell more tablets
lunes 3 de septiembre de 12
Why iOs
• Rise of mobile devices
• Rise of tablets
• Apple projected to sell more tablets
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
To Master Smalltalk
lunes 3 de septiembre de 12
To Master Smalltalk
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
To Master Objective-C
lunes 3 de septiembre de 12
To Master Objective-C
• You must remember or re-learn some!
lunes 3 de septiembre de 12
To Master Objective-C
• You must remember or re-learn some!
• Return to “C”
lunes 3 de septiembre de 12
To Master Objective-C
• You must remember or re-learn some!
• Return to “C”
• Come back to Smalltalk
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Objective-C
lunes 3 de septiembre de 12
Objective-C
• Developed by Brad Cox and Tom Love in
1980s
lunes 3 de septiembre de 12
Objective-C
• Developed by Brad Cox and Tom Love in
1980s
• Earliest appearance 1981ish
lunes 3 de septiembre de 12
Objective-C
• Developed by Brad Cox and Tom Love in
1980s
• Earliest appearance 1981ish
• Both were introduced to Smalltalk at ITT
Corporation Programming Technology
Center in 1981
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
OOPC to Objective-C
lunes 3 de septiembre de 12
OOPC to Objective-C
• Brad Cox started writing a preprocessor
for C to add some capabilities of Smalltalk
lunes 3 de septiembre de 12
OOPC to Objective-C
• Brad Cox started writing a preprocessor
for C to add some capabilities of Smalltalk
• He named it OOPC
lunes 3 de septiembre de 12
OOPC to Objective-C
• Brad Cox started writing a preprocessor
for C to add some capabilities of Smalltalk
• He named it OOPC
• meaning “Object oriented pre-compiler”
lunes 3 de septiembre de 12
OOPC to Objective-C
• Brad Cox started writing a preprocessor
for C to add some capabilities of Smalltalk
• He named it OOPC
• meaning “Object oriented pre-compiler”
• OOPC evolved to Objective-C
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
MacOS Replacement
lunes 3 de septiembre de 12
MacOS Replacement
• Candidates were:
lunes 3 de septiembre de 12
MacOS Replacement
• Candidates were:
• BeOS
lunes 3 de septiembre de 12
MacOS Replacement
• Candidates were:
• BeOS
• NeXTstep
lunes 3 de septiembre de 12
MacOS Replacement
• Candidates were:
• BeOS
• NeXTstep
• Winner was: NeXTstep
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
NeXT
lunes 3 de septiembre de 12
NeXT
• Steve Jobs founded NeXT
lunes 3 de septiembre de 12
NeXT
• Steve Jobs founded NeXT
• Licensed Objective-C to develop
NeXTSTEP
lunes 3 de septiembre de 12
NeXT
• Steve Jobs founded NeXT
• Licensed Objective-C to develop
NeXTSTEP
• NeXTSTEP -> OPENSTEP (with SUN)
lunes 3 de septiembre de 12
NeXT
• Steve Jobs founded NeXT
• Licensed Objective-C to develop
NeXTSTEP
• NeXTSTEP -> OPENSTEP (with SUN)
• OPENSTEP +BSD ->Mac OS-X
lunes 3 de septiembre de 12
NeXT
• Steve Jobs founded NeXT
• Licensed Objective-C to develop
NeXTSTEP
• NeXTSTEP -> OPENSTEP (with SUN)
• OPENSTEP +BSD ->Mac OS-X
• OS X -> iOs
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Objective-C in iOs
lunes 3 de septiembre de 12
Objective-C in iOs
• Superset of C
lunes 3 de septiembre de 12
Objective-C in iOs
• Superset of C
• Incorporates Smalltalk syntax and many
Smalltalk concepts
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Objective-C
lunes 3 de septiembre de 12
Objective-C
• Basic syntax:
lunes 3 de septiembre de 12
Objective-C
• Basic syntax:
• Anything valid in C is valid in Objective-C
lunes 3 de septiembre de 12
Objective-C
• Basic syntax:
• Anything valid in C is valid in Objective-C
• Smalltalk syntax is introduced through
“[]”
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Additional Syntax
lunes 3 de septiembre de 12
Additional Syntax
• Separation of interface and implementation
lunes 3 de septiembre de 12
Additional Syntax
• Separation of interface and implementation
• Method categories
lunes 3 de septiembre de 12
Additional Syntax
• Separation of interface and implementation
• Method categories
• Protocols
lunes 3 de septiembre de 12
Additional Syntax
• Separation of interface and implementation
• Method categories
• Protocols
• UI related macros
lunes 3 de septiembre de 12
Additional Syntax
• Separation of interface and implementation
• Method categories
• Protocols
• UI related macros
• Some code generation for getters-setters
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Smalltalk in Objective-C
lunes 3 de septiembre de 12
Smalltalk in Objective-C
[UIView setAnimationDelay:wait];
lunes 3 de septiembre de 12
Smalltalk in Objective-C
[UIView setAnimationDelay:wait];
[UIView beginAnimations:@"Fade Out" context:nil];
lunes 3 de septiembre de 12
Smalltalk in Objective-C
[UIView setAnimationDelay:wait];
[UIView beginAnimations:@"Fade Out" context:nil];
[self.navigationController
pushViewController:videoStarter animated:NO];
lunes 3 de septiembre de 12
Smalltalk in Objective-C
[UIView setAnimationDelay:wait];
[UIView beginAnimations:@"Fade Out" context:nil];
[self.navigationController
pushViewController:videoStarter animated:NO];
[self performSelector:@selector(showVideo:)
withObject: @"Owh" afterDelay: 0.3];
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Objective-C Quirks
lunes 3 de septiembre de 12
Objective-C Quirks
[self dim: nehButton alpha: ((aView == nehButton) ? 0.5 : 0.1)];
lunes 3 de septiembre de 12
Objective-C Quirks
[self dim: nehButton alpha: ((aView == nehButton) ? 0.5 : 0.1)];
[self fadeIn:(UIView*)aView duration: (NSTimeInterval)1.5 wait:(NSTimeInterval)0];
lunes 3 de septiembre de 12
Objective-C Quirks
[self dim: nehButton alpha: ((aView == nehButton) ? 0.5 : 0.1)];
[self fadeIn:(UIView*)aView duration: (NSTimeInterval)1.5 wait:(NSTimeInterval)0];
videoStarter = [[VideoStart alloc] initWithNibName:@"VideoStart"
! ! ! ! ! ! ! ! ! ! bundle:[NSBundle mainBundle]];
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
//
// Created by Tansel on 19/05/11.
// Copyright 2011, 2012 Tansel Ersavas. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <AVFoundation/AVAudioPlayer.h>
@class AVAudioPlayer;
@interface Audio : UIViewController {
! IBOutlet UIButton *__weak playNehButton;
! IBOutlet UIButton *__weak playOwhButton;
! IBOutlet UIButton *__weak playEhButton;
! IBOutlet UIButton *__weak playEairhButton;
! IBOutlet UIButton *__weak playHehButton;
!
}
@property (weak, nonatomic) IBOutlet UIButton *playNehButton;
@property (weak, nonatomic) IBOutlet UIButton *playOwhButton;
@property (weak, nonatomic) IBOutlet UIButton *playEhButton;
@property (weak, nonatomic) IBOutlet UIButton *playEairhButton;
@property (weak, nonatomic) IBOutlet UIButton *playHehButton;
-(IBAction)playNeh;
-(IBAction)playOwh;
-(IBAction)playEh;
-(IBAction)playEairh;
-(IBAction)playHeh;
-(IBAction)stop;
@end
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
// Created by Tansel on 19/05/11.
// Copyright 2011, 2012 Tansel Ersavas. All rights reserved.
//
#import "Audio.h"
@implementation Audio
@synthesize playNehButton;
@synthesize playOwhButton;
@synthesize playEhButton;
@synthesize playEairhButton;
@synthesize playHehButton;
-(void) playSound: aSoundFile ofType: aType{
...
}
-(IBAction)playNeh {
! [self playSound: @"Neh" ofType: @"mp3"];
}
...
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
! [self.navigationController setNavigationBarHidden: NO animated: YES];
}
...
@end
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
+(BOOL)instancesRespondToSelector:aSelector
+(BOOL)isSubclassOfClass:aClass
-(BOOL)isKindOfClass:aClass
-(BOOL)isMemberOfClass:aClass
-(BOOL)respondsToSelector:aSelector
-(id)performSelector:aSelector
-(id)performSelector:aSelector withObject:anObject
-(id)performSelector:aSelector withObject:anObject withObject:anotherObject
-(id)performSelector:aSelector withObject:anObject afterDelay:aDelay
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Objective-C
lunes 3 de septiembre de 12
Objective-C
• Naming conventions
lunes 3 de septiembre de 12
Objective-C
• Naming conventions
• Long and verbose
lunes 3 de septiembre de 12
Objective-C
• Naming conventions
• Long and verbose
• Very readable
lunes 3 de septiembre de 12
Objective-C
• Naming conventions
• Long and verbose
• Very readable
• Very consistent
lunes 3 de septiembre de 12
Objective-C
• Naming conventions
• Long and verbose
• Very readable
• Very consistent
• Bonus:Very Smalltalk like!
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
More info
lunes 3 de septiembre de 12
More info
• Is abundant on the Web
lunes 3 de septiembre de 12
More info
• Is abundant on the Web
• One example is Objective-C tutorial by
Cocoa Dev Central
lunes 3 de septiembre de 12
More info
• Is abundant on the Web
• One example is Objective-C tutorial by
Cocoa Dev Central
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Let us start!
lunes 3 de septiembre de 12
Let us start!
lunes 3 de septiembre de 12
Let us start!
“Do or do not! There is no try!”
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
So, you decided
lunes 3 de septiembre de 12
So, you decided
• Download XCode
lunes 3 de septiembre de 12
So, you decided
• Download XCode
• Apple developer site
lunes 3 de septiembre de 12
So, you decided
• Download XCode
• Apple developer site
• Free but requires registration
lunes 3 de septiembre de 12
So, you decided
• Download XCode
• Apple developer site
• Free but requires registration
• Requires OS-X
lunes 3 de septiembre de 12
So, you decided
• Download XCode
• Apple developer site
• Free but requires registration
• Requires OS-X
• Latest Xcode will require latest OS-X
lunes 3 de septiembre de 12
So, you decided
• Download XCode
• Apple developer site
• Free but requires registration
• Requires OS-X
• Latest Xcode will require latest OS-X
• Can be downloaded through the App store
lunes 3 de septiembre de 12
So, you decided
• Download XCode
• Apple developer site
• Free but requires registration
• Requires OS-X
• Latest Xcode will require latest OS-X
• Can be downloaded through the App store
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
IDEs
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
• Not exactly like Smalltalk IDE
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
• Not exactly like Smalltalk IDE
• Getting friendlier everyday
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
• Not exactly like Smalltalk IDE
• Getting friendlier everyday
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
• Not exactly like Smalltalk IDE
• Getting friendlier everyday
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
• Not exactly like Smalltalk IDE
• Getting friendlier everyday
lunes 3 de septiembre de 12
IDEs
• iOs uses XCode
• Not exactly like Smalltalk IDE
• Getting friendlier everyday
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Custom Artwork
lunes 3 de septiembre de 12
Custom Artwork
• You WILL need at least some custom
artwork
lunes 3 de septiembre de 12
Custom Artwork
• You WILL need at least some custom
artwork
• Unless you are graphics artist do not do it
yourself!!
lunes 3 de septiembre de 12
Custom Artwork
• You WILL need at least some custom
artwork
• Unless you are graphics artist do not do it
yourself!!
• If you must, then read “Human Interface
Guidelines” especially:
lunes 3 de septiembre de 12
Custom Artwork
• You WILL need at least some custom
artwork
• Unless you are graphics artist do not do it
yourself!!
• If you must, then read “Human Interface
Guidelines” especially:
• “Human Interface Principals”
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
iPhone Mockups
lunes 3 de septiembre de 12
iPhone Mockups
• Use a GUI designer
lunes 3 de septiembre de 12
iPhone Mockups
• Use a GUI designer
• Use ready made mockup images from the
internet
lunes 3 de septiembre de 12
iPhone Mockups
• Use a GUI designer
• Use ready made mockup images from the
internet
• http://www.teehanlax.com/downloads/
iphone-4-guid-psd-retina-display/
lunes 3 de septiembre de 12
iPhone Mockups
• Use a GUI designer
• Use ready made mockup images from the
internet
• http://www.teehanlax.com/downloads/
iphone-4-guid-psd-retina-display/
• Careful: the above can only be used by
designers for mockups not for promotion
lunes 3 de septiembre de 12
iPhone Mockups
• Use a GUI designer
• Use ready made mockup images from the
internet
• http://www.teehanlax.com/downloads/
iphone-4-guid-psd-retina-display/
• Careful: the above can only be used by
designers for mockups not for promotion
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Apple Human Interface Guidelines
lunes 3 de septiembre de 12
Apple Human Interface Guidelines
• Must-must-must read!
lunes 3 de septiembre de 12
Apple Human Interface Guidelines
• Must-must-must read!
• “iOS Human Interface Guidelines describes the guidelines and principles
that help you design a superlative user interface and user experience
for your iOS app”
lunes 3 de septiembre de 12
Apple Human Interface Guidelines
• Must-must-must read!
• “iOS Human Interface Guidelines describes the guidelines and principles
that help you design a superlative user interface and user experience
for your iOS app”
lunes 3 de septiembre de 12
Apple Human Interface Guidelines
• Must-must-must read!
• “iOS Human Interface Guidelines describes the guidelines and principles
that help you design a superlative user interface and user experience
for your iOS app”
Image and quote source:Apple developer Library
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
iOs Apps - Devices
lunes 3 de septiembre de 12
iOs Apps - Devices
• iPhone-iPod touch only
lunes 3 de septiembre de 12
iOs Apps - Devices
• iPhone-iPod touch only
• iPad only
lunes 3 de septiembre de 12
iOs Apps - Devices
• iPhone-iPod touch only
• iPad only
• Universal
lunes 3 de septiembre de 12
iOs Apps - Devices
• iPhone-iPod touch only
• iPad only
• Universal
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
iOs Apps-Orientation
lunes 3 de septiembre de 12
iOs Apps-Orientation
• Portrait
lunes 3 de septiembre de 12
iOs Apps-Orientation
• Portrait
• Landscape
lunes 3 de septiembre de 12
iOs Apps-Orientation
• Portrait
• Landscape
• Supporting both
lunes 3 de septiembre de 12
iOs Apps-Orientation
• Portrait
• Landscape
• Supporting both
• Don’t forget upside-down versions
lunes 3 de septiembre de 12
iOs Apps-Orientation
• Portrait
• Landscape
• Supporting both
• Don’t forget upside-down versions
lunes 3 de septiembre de 12
iOs Apps-Orientation
• Portrait
• Landscape
• Supporting both
• Don’t forget upside-down versions
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
iOs App types
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
• Simple one or 2 page apps
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
• Simple one or 2 page apps
• Tab based apps
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
• Simple one or 2 page apps
• Tab based apps
• Navigation based apps
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
• Simple one or 2 page apps
• Tab based apps
• Navigation based apps
• OpenGL Apps
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
• Simple one or 2 page apps
• Tab based apps
• Navigation based apps
• OpenGL Apps
• Mixed apps
lunes 3 de septiembre de 12
iOs App types
• Generally fits into a few basic categories
• Simple one or 2 page apps
• Tab based apps
• Navigation based apps
• OpenGL Apps
• Mixed apps
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Simple Apps
lunes 3 de septiembre de 12
Simple Apps
• Single Page App template
lunes 3 de septiembre de 12
Simple Apps
• Single Page App template
• Utility App template
lunes 3 de septiembre de 12
Simple Apps
• Single Page App template
• Utility App template
lunes 3 de septiembre de 12
Simple Apps
• Single Page App template
• Utility App template
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Tabbed Apps
lunes 3 de septiembre de 12
Tabbed Apps
• Good when there are a few pages
lunes 3 de septiembre de 12
Tabbed Apps
• Good when there are a few pages
• Navigation is through always visible
sometimes horizontally scrollable tabs
lunes 3 de septiembre de 12
Tabbed Apps
• Good when there are a few pages
• Navigation is through always visible
sometimes horizontally scrollable tabs
lunes 3 de septiembre de 12
Tabbed Apps
• Good when there are a few pages
• Navigation is through always visible
sometimes horizontally scrollable tabs
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Navigation based Apps
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
• Can create a complex tree like navigation
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
• Can create a complex tree like navigation
• with or without a navigation bar on top
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
• Can create a complex tree like navigation
• with or without a navigation bar on top
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
• Can create a complex tree like navigation
• with or without a navigation bar on top
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
• Can create a complex tree like navigation
• with or without a navigation bar on top
lunes 3 de septiembre de 12
Navigation based Apps
• For more sophisticated apps
• Allows to navigate through pushing new
views
• Can create a complex tree like navigation
• with or without a navigation bar on top
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
OpenGL Games
lunes 3 de septiembre de 12
OpenGL Games
• Do not need to be compliant to Apple
Human Interface Guidelines as much as
other iOs apps
lunes 3 de septiembre de 12
OpenGL Games
• Do not need to be compliant to Apple
Human Interface Guidelines as much as
other iOs apps
• openGL is generally much harder than
Apple UI component based apps
lunes 3 de septiembre de 12
OpenGL Games
• Do not need to be compliant to Apple
Human Interface Guidelines as much as
other iOs apps
• openGL is generally much harder than
Apple UI component based apps
lunes 3 de septiembre de 12
OpenGL Games
• Do not need to be compliant to Apple
Human Interface Guidelines as much as
other iOs apps
• openGL is generally much harder than
Apple UI component based apps
Image from Apple developer site
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Other tools to consider
lunes 3 de septiembre de 12
Other tools to consider
• General
lunes 3 de septiembre de 12
Other tools to consider
• General
• PhoneGap
lunes 3 de septiembre de 12
Other tools to consider
• General
• PhoneGap
• RhoStudio
lunes 3 de septiembre de 12
Other tools to consider
• General
• PhoneGap
• RhoStudio
• Appcelerator
lunes 3 de septiembre de 12
Other tools to consider
• General
• PhoneGap
• RhoStudio
• Appcelerator
• MoSync
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
2D and 3D Graphics
lunes 3 de septiembre de 12
2D and 3D Graphics
• Game engines-frameworks
lunes 3 de septiembre de 12
2D and 3D Graphics
• Game engines-frameworks
• Corona SDK
lunes 3 de septiembre de 12
2D and 3D Graphics
• Game engines-frameworks
• Corona SDK
• Unity3D
lunes 3 de septiembre de 12
2D and 3D Graphics
• Game engines-frameworks
• Corona SDK
• Unity3D
• Unreal
lunes 3 de septiembre de 12
2D and 3D Graphics
• Game engines-frameworks
• Corona SDK
• Unity3D
• Unreal
• Cocos-2D
lunes 3 de septiembre de 12
2D and 3D Graphics
• Game engines-frameworks
• Corona SDK
• Unity3D
• Unreal
• Cocos-2D
• Many others
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
An Example of a Unity3D Game
lunes 3 de septiembre de 12
An Example of a Unity3D Game
• Battlestar Galactica online by
NBCUniversal
lunes 3 de septiembre de 12
An Example of a Unity3D Game
• Battlestar Galactica online by
NBCUniversal
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
An Example of our Unity3D work
lunes 3 de septiembre de 12
An Example of our Unity3D work
• Chora Museum by IZApps
lunes 3 de septiembre de 12
An Example of our Unity3D work
• Chora Museum by IZApps
lunes 3 de septiembre de 12
An Example of our Unity3D work
• Chora Museum by IZApps
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Where to go next
lunes 3 de septiembre de 12
Where to go next
• Play with Xcode
lunes 3 de septiembre de 12
Where to go next
• Play with Xcode
• Immense amount of tutorials on the web
lunes 3 de septiembre de 12
Where to go next
• Play with Xcode
• Immense amount of tutorials on the web
• Some on-line courses by respected
universities
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Stanford University
lunes 3 de septiembre de 12
Stanford University
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Closing
lunes 3 de septiembre de 12
Closing
• You can develop with Objective-C
lunes 3 de septiembre de 12
Closing
• You can develop with Objective-C
• Resources are abundant
lunes 3 de septiembre de 12
Closing
• You can develop with Objective-C
• Resources are abundant
• Good designers are available on the Web
lunes 3 de septiembre de 12
lunes 3 de septiembre de 12
Any questions?
lunes 3 de septiembre de 12
Any questions?
• You can reach me at tansel@tansel.org
lunes 3 de septiembre de 12
Any questions?
• You can reach me at tansel@tansel.org
• Come and visit us in Turkey while I am
there!
lunes 3 de septiembre de 12
Any questions?
• You can reach me at tansel@tansel.org
• Come and visit us in Turkey while I am
there!
• Let us do an ESUG conference in Istanbul!
lunes 3 de septiembre de 12

Contenu connexe

En vedette

CommunityExplorer: A Framework for Visualizing Collaboration Networks
CommunityExplorer: A Framework for Visualizing Collaboration NetworksCommunityExplorer: A Framework for Visualizing Collaboration Networks
CommunityExplorer: A Framework for Visualizing Collaboration NetworksESUG
 
Intro to GemStone/S
Intro to GemStone/SIntro to GemStone/S
Intro to GemStone/SESUG
 
Sista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performanceSista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performanceESUG
 
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!ESUG
 
Explicit Composition Constructs in DSLs - The case of the epidemiological lan...
Explicit Composition Constructs in DSLs - The case of the epidemiological lan...Explicit Composition Constructs in DSLs - The case of the epidemiological lan...
Explicit Composition Constructs in DSLs - The case of the epidemiological lan...ESUG
 
seamless – Object Oriented CMS System
seamless – Object Oriented CMS Systemseamless – Object Oriented CMS System
seamless – Object Oriented CMS SystemESUG
 
Smalltalk Metaprogramming supports Probabilistic Program Analysis
Smalltalk Metaprogramming supports Probabilistic Program AnalysisSmalltalk Metaprogramming supports Probabilistic Program Analysis
Smalltalk Metaprogramming supports Probabilistic Program AnalysisESUG
 
Talking about bugs with bugs
Talking about bugs with bugsTalking about bugs with bugs
Talking about bugs with bugsESUG
 
Pillar: one language for all supports
Pillar: one language for all supportsPillar: one language for all supports
Pillar: one language for all supportsESUG
 
More XP-rience
More XP-rienceMore XP-rience
More XP-rienceESUG
 
The Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDEThe Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDEESUG
 
Pharo Update
Pharo Update Pharo Update
Pharo Update ESUG
 
Lowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve PerformanceLowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve PerformanceESUG
 
Tugrik: A new persistence option for Pharo
Tugrik: A new persistence option for PharoTugrik: A new persistence option for Pharo
Tugrik: A new persistence option for PharoESUG
 
smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk ProjectssmalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk ProjectsESUG
 

En vedette (15)

CommunityExplorer: A Framework for Visualizing Collaboration Networks
CommunityExplorer: A Framework for Visualizing Collaboration NetworksCommunityExplorer: A Framework for Visualizing Collaboration Networks
CommunityExplorer: A Framework for Visualizing Collaboration Networks
 
Intro to GemStone/S
Intro to GemStone/SIntro to GemStone/S
Intro to GemStone/S
 
Sista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performanceSista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performance
 
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!
 
Explicit Composition Constructs in DSLs - The case of the epidemiological lan...
Explicit Composition Constructs in DSLs - The case of the epidemiological lan...Explicit Composition Constructs in DSLs - The case of the epidemiological lan...
Explicit Composition Constructs in DSLs - The case of the epidemiological lan...
 
seamless – Object Oriented CMS System
seamless – Object Oriented CMS Systemseamless – Object Oriented CMS System
seamless – Object Oriented CMS System
 
Smalltalk Metaprogramming supports Probabilistic Program Analysis
Smalltalk Metaprogramming supports Probabilistic Program AnalysisSmalltalk Metaprogramming supports Probabilistic Program Analysis
Smalltalk Metaprogramming supports Probabilistic Program Analysis
 
Talking about bugs with bugs
Talking about bugs with bugsTalking about bugs with bugs
Talking about bugs with bugs
 
Pillar: one language for all supports
Pillar: one language for all supportsPillar: one language for all supports
Pillar: one language for all supports
 
More XP-rience
More XP-rienceMore XP-rience
More XP-rience
 
The Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDEThe Glamorous Toolkit: Towards a novel live IDE
The Glamorous Toolkit: Towards a novel live IDE
 
Pharo Update
Pharo Update Pharo Update
Pharo Update
 
Lowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve PerformanceLowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve Performance
 
Tugrik: A new persistence option for Pharo
Tugrik: A new persistence option for PharoTugrik: A new persistence option for Pharo
Tugrik: A new persistence option for Pharo
 
smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk ProjectssmalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
 

Plus de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Plus de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Dernier

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Dernier (10)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

How To Do Almost Smalltalking To Develop iOs Apps

  • 1. lunes 3 de septiembre de 12
  • 2. How to do Almost Smalltalking to develop iOs Apps lunes 3 de septiembre de 12
  • 3. How to do Almost Smalltalking to develop iOs Apps Tansel Ersavas tansel@tansel.org lunes 3 de septiembre de 12
  • 4. lunes 3 de septiembre de 12
  • 5. Let us do some survey lunes 3 de septiembre de 12
  • 6. Let us do some survey • As primary development platform lunes 3 de septiembre de 12
  • 7. Let us do some survey • As primary development platform • How many uses Windows lunes 3 de septiembre de 12
  • 8. Let us do some survey • As primary development platform • How many uses Windows • Linux lunes 3 de septiembre de 12
  • 9. Let us do some survey • As primary development platform • How many uses Windows • Linux • Mac lunes 3 de septiembre de 12
  • 10. lunes 3 de septiembre de 12
  • 11. Mobile Platforms lunes 3 de septiembre de 12
  • 12. Mobile Platforms • Any developers for mobile platforms? lunes 3 de septiembre de 12
  • 13. Mobile Platforms • Any developers for mobile platforms? • Any iOs developers lunes 3 de septiembre de 12
  • 14. Mobile Platforms • Any developers for mobile platforms? • Any iOs developers • Any Android developers lunes 3 de septiembre de 12
  • 15. Mobile Platforms • Any developers for mobile platforms? • Any iOs developers • Any Android developers • Windows lunes 3 de septiembre de 12
  • 16. Mobile Platforms • Any developers for mobile platforms? • Any iOs developers • Any Android developers • Windows • Multiple platforms? lunes 3 de septiembre de 12
  • 17. lunes 3 de septiembre de 12
  • 18. Who am I? lunes 3 de septiembre de 12
  • 19. Who am I? • Doing Smalltalk since 1992 lunes 3 de septiembre de 12
  • 20. Who am I? • Doing Smalltalk since 1992 • Involved in Squeak since 1996 lunes 3 de septiembre de 12
  • 21. Who am I? • Doing Smalltalk since 1992 • Involved in Squeak since 1996 • Past developer and editor of the SqueakNews e-zine lunes 3 de septiembre de 12
  • 22. Who am I? • Doing Smalltalk since 1992 • Involved in Squeak since 1996 • Past developer and editor of the SqueakNews e-zine • Experienced systems developer with30+ years of experience lunes 3 de septiembre de 12
  • 23. Who am I? • Doing Smalltalk since 1992 • Involved in Squeak since 1996 • Past developer and editor of the SqueakNews e-zine • Experienced systems developer with30+ years of experience • Currently iOs,Android and RAILS consultant lunes 3 de septiembre de 12
  • 24. lunes 3 de septiembre de 12
  • 25. Why am I not there? lunes 3 de septiembre de 12
  • 26. Why am I not there? lunes 3 de septiembre de 12
  • 27. lunes 3 de septiembre de 12
  • 28. Mobile madness lunes 3 de septiembre de 12
  • 29. Mobile madness • Who is to blame? lunes 3 de septiembre de 12
  • 30. Mobile madness • Who is to blame? • Especially tablets lunes 3 de septiembre de 12
  • 31. Mobile madness • Who is to blame? • Especially tablets • Guess who started it lunes 3 de septiembre de 12
  • 32. Mobile madness • Who is to blame? • Especially tablets • Guess who started it lunes 3 de septiembre de 12
  • 33. lunes 3 de septiembre de 12
  • 34. Why iOs lunes 3 de septiembre de 12
  • 35. Why iOs • Rise of mobile devices lunes 3 de septiembre de 12
  • 36. Why iOs • Rise of mobile devices • Rise of tablets lunes 3 de septiembre de 12
  • 37. Why iOs • Rise of mobile devices • Rise of tablets • Apple projected to sell more tablets lunes 3 de septiembre de 12
  • 38. Why iOs • Rise of mobile devices • Rise of tablets • Apple projected to sell more tablets lunes 3 de septiembre de 12
  • 39. lunes 3 de septiembre de 12
  • 40. To Master Smalltalk lunes 3 de septiembre de 12
  • 41. To Master Smalltalk lunes 3 de septiembre de 12
  • 42. lunes 3 de septiembre de 12
  • 43. To Master Objective-C lunes 3 de septiembre de 12
  • 44. To Master Objective-C • You must remember or re-learn some! lunes 3 de septiembre de 12
  • 45. To Master Objective-C • You must remember or re-learn some! • Return to “C” lunes 3 de septiembre de 12
  • 46. To Master Objective-C • You must remember or re-learn some! • Return to “C” • Come back to Smalltalk lunes 3 de septiembre de 12
  • 47. lunes 3 de septiembre de 12
  • 48. Objective-C lunes 3 de septiembre de 12
  • 49. Objective-C • Developed by Brad Cox and Tom Love in 1980s lunes 3 de septiembre de 12
  • 50. Objective-C • Developed by Brad Cox and Tom Love in 1980s • Earliest appearance 1981ish lunes 3 de septiembre de 12
  • 51. Objective-C • Developed by Brad Cox and Tom Love in 1980s • Earliest appearance 1981ish • Both were introduced to Smalltalk at ITT Corporation Programming Technology Center in 1981 lunes 3 de septiembre de 12
  • 52. lunes 3 de septiembre de 12
  • 53. OOPC to Objective-C lunes 3 de septiembre de 12
  • 54. OOPC to Objective-C • Brad Cox started writing a preprocessor for C to add some capabilities of Smalltalk lunes 3 de septiembre de 12
  • 55. OOPC to Objective-C • Brad Cox started writing a preprocessor for C to add some capabilities of Smalltalk • He named it OOPC lunes 3 de septiembre de 12
  • 56. OOPC to Objective-C • Brad Cox started writing a preprocessor for C to add some capabilities of Smalltalk • He named it OOPC • meaning “Object oriented pre-compiler” lunes 3 de septiembre de 12
  • 57. OOPC to Objective-C • Brad Cox started writing a preprocessor for C to add some capabilities of Smalltalk • He named it OOPC • meaning “Object oriented pre-compiler” • OOPC evolved to Objective-C lunes 3 de septiembre de 12
  • 58. lunes 3 de septiembre de 12
  • 59. MacOS Replacement lunes 3 de septiembre de 12
  • 60. MacOS Replacement • Candidates were: lunes 3 de septiembre de 12
  • 61. MacOS Replacement • Candidates were: • BeOS lunes 3 de septiembre de 12
  • 62. MacOS Replacement • Candidates were: • BeOS • NeXTstep lunes 3 de septiembre de 12
  • 63. MacOS Replacement • Candidates were: • BeOS • NeXTstep • Winner was: NeXTstep lunes 3 de septiembre de 12
  • 64. lunes 3 de septiembre de 12
  • 65. NeXT lunes 3 de septiembre de 12
  • 66. NeXT • Steve Jobs founded NeXT lunes 3 de septiembre de 12
  • 67. NeXT • Steve Jobs founded NeXT • Licensed Objective-C to develop NeXTSTEP lunes 3 de septiembre de 12
  • 68. NeXT • Steve Jobs founded NeXT • Licensed Objective-C to develop NeXTSTEP • NeXTSTEP -> OPENSTEP (with SUN) lunes 3 de septiembre de 12
  • 69. NeXT • Steve Jobs founded NeXT • Licensed Objective-C to develop NeXTSTEP • NeXTSTEP -> OPENSTEP (with SUN) • OPENSTEP +BSD ->Mac OS-X lunes 3 de septiembre de 12
  • 70. NeXT • Steve Jobs founded NeXT • Licensed Objective-C to develop NeXTSTEP • NeXTSTEP -> OPENSTEP (with SUN) • OPENSTEP +BSD ->Mac OS-X • OS X -> iOs lunes 3 de septiembre de 12
  • 71. lunes 3 de septiembre de 12
  • 72. Objective-C in iOs lunes 3 de septiembre de 12
  • 73. Objective-C in iOs • Superset of C lunes 3 de septiembre de 12
  • 74. Objective-C in iOs • Superset of C • Incorporates Smalltalk syntax and many Smalltalk concepts lunes 3 de septiembre de 12
  • 75. lunes 3 de septiembre de 12
  • 76. Objective-C lunes 3 de septiembre de 12
  • 77. Objective-C • Basic syntax: lunes 3 de septiembre de 12
  • 78. Objective-C • Basic syntax: • Anything valid in C is valid in Objective-C lunes 3 de septiembre de 12
  • 79. Objective-C • Basic syntax: • Anything valid in C is valid in Objective-C • Smalltalk syntax is introduced through “[]” lunes 3 de septiembre de 12
  • 80. lunes 3 de septiembre de 12
  • 81. Additional Syntax lunes 3 de septiembre de 12
  • 82. Additional Syntax • Separation of interface and implementation lunes 3 de septiembre de 12
  • 83. Additional Syntax • Separation of interface and implementation • Method categories lunes 3 de septiembre de 12
  • 84. Additional Syntax • Separation of interface and implementation • Method categories • Protocols lunes 3 de septiembre de 12
  • 85. Additional Syntax • Separation of interface and implementation • Method categories • Protocols • UI related macros lunes 3 de septiembre de 12
  • 86. Additional Syntax • Separation of interface and implementation • Method categories • Protocols • UI related macros • Some code generation for getters-setters lunes 3 de septiembre de 12
  • 87. lunes 3 de septiembre de 12
  • 88. Smalltalk in Objective-C lunes 3 de septiembre de 12
  • 89. Smalltalk in Objective-C [UIView setAnimationDelay:wait]; lunes 3 de septiembre de 12
  • 90. Smalltalk in Objective-C [UIView setAnimationDelay:wait]; [UIView beginAnimations:@"Fade Out" context:nil]; lunes 3 de septiembre de 12
  • 91. Smalltalk in Objective-C [UIView setAnimationDelay:wait]; [UIView beginAnimations:@"Fade Out" context:nil]; [self.navigationController pushViewController:videoStarter animated:NO]; lunes 3 de septiembre de 12
  • 92. Smalltalk in Objective-C [UIView setAnimationDelay:wait]; [UIView beginAnimations:@"Fade Out" context:nil]; [self.navigationController pushViewController:videoStarter animated:NO]; [self performSelector:@selector(showVideo:) withObject: @"Owh" afterDelay: 0.3]; lunes 3 de septiembre de 12
  • 93. lunes 3 de septiembre de 12
  • 94. Objective-C Quirks lunes 3 de septiembre de 12
  • 95. Objective-C Quirks [self dim: nehButton alpha: ((aView == nehButton) ? 0.5 : 0.1)]; lunes 3 de septiembre de 12
  • 96. Objective-C Quirks [self dim: nehButton alpha: ((aView == nehButton) ? 0.5 : 0.1)]; [self fadeIn:(UIView*)aView duration: (NSTimeInterval)1.5 wait:(NSTimeInterval)0]; lunes 3 de septiembre de 12
  • 97. Objective-C Quirks [self dim: nehButton alpha: ((aView == nehButton) ? 0.5 : 0.1)]; [self fadeIn:(UIView*)aView duration: (NSTimeInterval)1.5 wait:(NSTimeInterval)0]; videoStarter = [[VideoStart alloc] initWithNibName:@"VideoStart" ! ! ! ! ! ! ! ! ! ! bundle:[NSBundle mainBundle]]; lunes 3 de septiembre de 12
  • 98. lunes 3 de septiembre de 12
  • 99. // // Created by Tansel on 19/05/11. // Copyright 2011, 2012 Tansel Ersavas. All rights reserved. // #import <UIKit/UIKit.h> #import <AVFoundation/AVAudioPlayer.h> @class AVAudioPlayer; @interface Audio : UIViewController { ! IBOutlet UIButton *__weak playNehButton; ! IBOutlet UIButton *__weak playOwhButton; ! IBOutlet UIButton *__weak playEhButton; ! IBOutlet UIButton *__weak playEairhButton; ! IBOutlet UIButton *__weak playHehButton; ! } @property (weak, nonatomic) IBOutlet UIButton *playNehButton; @property (weak, nonatomic) IBOutlet UIButton *playOwhButton; @property (weak, nonatomic) IBOutlet UIButton *playEhButton; @property (weak, nonatomic) IBOutlet UIButton *playEairhButton; @property (weak, nonatomic) IBOutlet UIButton *playHehButton; -(IBAction)playNeh; -(IBAction)playOwh; -(IBAction)playEh; -(IBAction)playEairh; -(IBAction)playHeh; -(IBAction)stop; @end lunes 3 de septiembre de 12
  • 100. lunes 3 de septiembre de 12
  • 101. // Created by Tansel on 19/05/11. // Copyright 2011, 2012 Tansel Ersavas. All rights reserved. // #import "Audio.h" @implementation Audio @synthesize playNehButton; @synthesize playOwhButton; @synthesize playEhButton; @synthesize playEairhButton; @synthesize playHehButton; -(void) playSound: aSoundFile ofType: aType{ ... } -(IBAction)playNeh { ! [self playSound: @"Neh" ofType: @"mp3"]; } ... - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; ! [self.navigationController setNavigationBarHidden: NO animated: YES]; } ... @end lunes 3 de septiembre de 12
  • 102. lunes 3 de septiembre de 12
  • 104. lunes 3 de septiembre de 12
  • 105. Objective-C lunes 3 de septiembre de 12
  • 107. Objective-C • Naming conventions • Long and verbose lunes 3 de septiembre de 12
  • 108. Objective-C • Naming conventions • Long and verbose • Very readable lunes 3 de septiembre de 12
  • 109. Objective-C • Naming conventions • Long and verbose • Very readable • Very consistent lunes 3 de septiembre de 12
  • 110. Objective-C • Naming conventions • Long and verbose • Very readable • Very consistent • Bonus:Very Smalltalk like! lunes 3 de septiembre de 12
  • 111. lunes 3 de septiembre de 12
  • 112. More info lunes 3 de septiembre de 12
  • 113. More info • Is abundant on the Web lunes 3 de septiembre de 12
  • 114. More info • Is abundant on the Web • One example is Objective-C tutorial by Cocoa Dev Central lunes 3 de septiembre de 12
  • 115. More info • Is abundant on the Web • One example is Objective-C tutorial by Cocoa Dev Central lunes 3 de septiembre de 12
  • 116. lunes 3 de septiembre de 12
  • 117. Let us start! lunes 3 de septiembre de 12
  • 118. Let us start! lunes 3 de septiembre de 12
  • 119. Let us start! “Do or do not! There is no try!” lunes 3 de septiembre de 12
  • 120. lunes 3 de septiembre de 12
  • 121. So, you decided lunes 3 de septiembre de 12
  • 122. So, you decided • Download XCode lunes 3 de septiembre de 12
  • 123. So, you decided • Download XCode • Apple developer site lunes 3 de septiembre de 12
  • 124. So, you decided • Download XCode • Apple developer site • Free but requires registration lunes 3 de septiembre de 12
  • 125. So, you decided • Download XCode • Apple developer site • Free but requires registration • Requires OS-X lunes 3 de septiembre de 12
  • 126. So, you decided • Download XCode • Apple developer site • Free but requires registration • Requires OS-X • Latest Xcode will require latest OS-X lunes 3 de septiembre de 12
  • 127. So, you decided • Download XCode • Apple developer site • Free but requires registration • Requires OS-X • Latest Xcode will require latest OS-X • Can be downloaded through the App store lunes 3 de septiembre de 12
  • 128. So, you decided • Download XCode • Apple developer site • Free but requires registration • Requires OS-X • Latest Xcode will require latest OS-X • Can be downloaded through the App store lunes 3 de septiembre de 12
  • 129. lunes 3 de septiembre de 12
  • 130. IDEs lunes 3 de septiembre de 12
  • 131. IDEs • iOs uses XCode lunes 3 de septiembre de 12
  • 132. IDEs • iOs uses XCode • Not exactly like Smalltalk IDE lunes 3 de septiembre de 12
  • 133. IDEs • iOs uses XCode • Not exactly like Smalltalk IDE • Getting friendlier everyday lunes 3 de septiembre de 12
  • 134. IDEs • iOs uses XCode • Not exactly like Smalltalk IDE • Getting friendlier everyday lunes 3 de septiembre de 12
  • 135. IDEs • iOs uses XCode • Not exactly like Smalltalk IDE • Getting friendlier everyday lunes 3 de septiembre de 12
  • 136. IDEs • iOs uses XCode • Not exactly like Smalltalk IDE • Getting friendlier everyday lunes 3 de septiembre de 12
  • 137. IDEs • iOs uses XCode • Not exactly like Smalltalk IDE • Getting friendlier everyday lunes 3 de septiembre de 12
  • 138. lunes 3 de septiembre de 12
  • 139. Custom Artwork lunes 3 de septiembre de 12
  • 140. Custom Artwork • You WILL need at least some custom artwork lunes 3 de septiembre de 12
  • 141. Custom Artwork • You WILL need at least some custom artwork • Unless you are graphics artist do not do it yourself!! lunes 3 de septiembre de 12
  • 142. Custom Artwork • You WILL need at least some custom artwork • Unless you are graphics artist do not do it yourself!! • If you must, then read “Human Interface Guidelines” especially: lunes 3 de septiembre de 12
  • 143. Custom Artwork • You WILL need at least some custom artwork • Unless you are graphics artist do not do it yourself!! • If you must, then read “Human Interface Guidelines” especially: • “Human Interface Principals” lunes 3 de septiembre de 12
  • 144. lunes 3 de septiembre de 12
  • 145. iPhone Mockups lunes 3 de septiembre de 12
  • 146. iPhone Mockups • Use a GUI designer lunes 3 de septiembre de 12
  • 147. iPhone Mockups • Use a GUI designer • Use ready made mockup images from the internet lunes 3 de septiembre de 12
  • 148. iPhone Mockups • Use a GUI designer • Use ready made mockup images from the internet • http://www.teehanlax.com/downloads/ iphone-4-guid-psd-retina-display/ lunes 3 de septiembre de 12
  • 149. iPhone Mockups • Use a GUI designer • Use ready made mockup images from the internet • http://www.teehanlax.com/downloads/ iphone-4-guid-psd-retina-display/ • Careful: the above can only be used by designers for mockups not for promotion lunes 3 de septiembre de 12
  • 150. iPhone Mockups • Use a GUI designer • Use ready made mockup images from the internet • http://www.teehanlax.com/downloads/ iphone-4-guid-psd-retina-display/ • Careful: the above can only be used by designers for mockups not for promotion lunes 3 de septiembre de 12
  • 151. lunes 3 de septiembre de 12
  • 152. Apple Human Interface Guidelines lunes 3 de septiembre de 12
  • 153. Apple Human Interface Guidelines • Must-must-must read! lunes 3 de septiembre de 12
  • 154. Apple Human Interface Guidelines • Must-must-must read! • “iOS Human Interface Guidelines describes the guidelines and principles that help you design a superlative user interface and user experience for your iOS app” lunes 3 de septiembre de 12
  • 155. Apple Human Interface Guidelines • Must-must-must read! • “iOS Human Interface Guidelines describes the guidelines and principles that help you design a superlative user interface and user experience for your iOS app” lunes 3 de septiembre de 12
  • 156. Apple Human Interface Guidelines • Must-must-must read! • “iOS Human Interface Guidelines describes the guidelines and principles that help you design a superlative user interface and user experience for your iOS app” Image and quote source:Apple developer Library lunes 3 de septiembre de 12
  • 157. lunes 3 de septiembre de 12
  • 158. iOs Apps - Devices lunes 3 de septiembre de 12
  • 159. iOs Apps - Devices • iPhone-iPod touch only lunes 3 de septiembre de 12
  • 160. iOs Apps - Devices • iPhone-iPod touch only • iPad only lunes 3 de septiembre de 12
  • 161. iOs Apps - Devices • iPhone-iPod touch only • iPad only • Universal lunes 3 de septiembre de 12
  • 162. iOs Apps - Devices • iPhone-iPod touch only • iPad only • Universal lunes 3 de septiembre de 12
  • 163. lunes 3 de septiembre de 12
  • 164. iOs Apps-Orientation lunes 3 de septiembre de 12
  • 165. iOs Apps-Orientation • Portrait lunes 3 de septiembre de 12
  • 166. iOs Apps-Orientation • Portrait • Landscape lunes 3 de septiembre de 12
  • 167. iOs Apps-Orientation • Portrait • Landscape • Supporting both lunes 3 de septiembre de 12
  • 168. iOs Apps-Orientation • Portrait • Landscape • Supporting both • Don’t forget upside-down versions lunes 3 de septiembre de 12
  • 169. iOs Apps-Orientation • Portrait • Landscape • Supporting both • Don’t forget upside-down versions lunes 3 de septiembre de 12
  • 170. iOs Apps-Orientation • Portrait • Landscape • Supporting both • Don’t forget upside-down versions lunes 3 de septiembre de 12
  • 171. lunes 3 de septiembre de 12
  • 172. iOs App types lunes 3 de septiembre de 12
  • 173. iOs App types • Generally fits into a few basic categories lunes 3 de septiembre de 12
  • 174. iOs App types • Generally fits into a few basic categories • Simple one or 2 page apps lunes 3 de septiembre de 12
  • 175. iOs App types • Generally fits into a few basic categories • Simple one or 2 page apps • Tab based apps lunes 3 de septiembre de 12
  • 176. iOs App types • Generally fits into a few basic categories • Simple one or 2 page apps • Tab based apps • Navigation based apps lunes 3 de septiembre de 12
  • 177. iOs App types • Generally fits into a few basic categories • Simple one or 2 page apps • Tab based apps • Navigation based apps • OpenGL Apps lunes 3 de septiembre de 12
  • 178. iOs App types • Generally fits into a few basic categories • Simple one or 2 page apps • Tab based apps • Navigation based apps • OpenGL Apps • Mixed apps lunes 3 de septiembre de 12
  • 179. iOs App types • Generally fits into a few basic categories • Simple one or 2 page apps • Tab based apps • Navigation based apps • OpenGL Apps • Mixed apps lunes 3 de septiembre de 12
  • 180. lunes 3 de septiembre de 12
  • 181. Simple Apps lunes 3 de septiembre de 12
  • 182. Simple Apps • Single Page App template lunes 3 de septiembre de 12
  • 183. Simple Apps • Single Page App template • Utility App template lunes 3 de septiembre de 12
  • 184. Simple Apps • Single Page App template • Utility App template lunes 3 de septiembre de 12
  • 185. Simple Apps • Single Page App template • Utility App template lunes 3 de septiembre de 12
  • 186. lunes 3 de septiembre de 12
  • 187. Tabbed Apps lunes 3 de septiembre de 12
  • 188. Tabbed Apps • Good when there are a few pages lunes 3 de septiembre de 12
  • 189. Tabbed Apps • Good when there are a few pages • Navigation is through always visible sometimes horizontally scrollable tabs lunes 3 de septiembre de 12
  • 190. Tabbed Apps • Good when there are a few pages • Navigation is through always visible sometimes horizontally scrollable tabs lunes 3 de septiembre de 12
  • 191. Tabbed Apps • Good when there are a few pages • Navigation is through always visible sometimes horizontally scrollable tabs lunes 3 de septiembre de 12
  • 192. lunes 3 de septiembre de 12
  • 193. Navigation based Apps lunes 3 de septiembre de 12
  • 194. Navigation based Apps • For more sophisticated apps lunes 3 de septiembre de 12
  • 195. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views lunes 3 de septiembre de 12
  • 196. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views • Can create a complex tree like navigation lunes 3 de septiembre de 12
  • 197. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views • Can create a complex tree like navigation • with or without a navigation bar on top lunes 3 de septiembre de 12
  • 198. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views • Can create a complex tree like navigation • with or without a navigation bar on top lunes 3 de septiembre de 12
  • 199. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views • Can create a complex tree like navigation • with or without a navigation bar on top lunes 3 de septiembre de 12
  • 200. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views • Can create a complex tree like navigation • with or without a navigation bar on top lunes 3 de septiembre de 12
  • 201. Navigation based Apps • For more sophisticated apps • Allows to navigate through pushing new views • Can create a complex tree like navigation • with or without a navigation bar on top lunes 3 de septiembre de 12
  • 202. lunes 3 de septiembre de 12
  • 203. OpenGL Games lunes 3 de septiembre de 12
  • 204. OpenGL Games • Do not need to be compliant to Apple Human Interface Guidelines as much as other iOs apps lunes 3 de septiembre de 12
  • 205. OpenGL Games • Do not need to be compliant to Apple Human Interface Guidelines as much as other iOs apps • openGL is generally much harder than Apple UI component based apps lunes 3 de septiembre de 12
  • 206. OpenGL Games • Do not need to be compliant to Apple Human Interface Guidelines as much as other iOs apps • openGL is generally much harder than Apple UI component based apps lunes 3 de septiembre de 12
  • 207. OpenGL Games • Do not need to be compliant to Apple Human Interface Guidelines as much as other iOs apps • openGL is generally much harder than Apple UI component based apps Image from Apple developer site lunes 3 de septiembre de 12
  • 208. lunes 3 de septiembre de 12
  • 209. Other tools to consider lunes 3 de septiembre de 12
  • 210. Other tools to consider • General lunes 3 de septiembre de 12
  • 211. Other tools to consider • General • PhoneGap lunes 3 de septiembre de 12
  • 212. Other tools to consider • General • PhoneGap • RhoStudio lunes 3 de septiembre de 12
  • 213. Other tools to consider • General • PhoneGap • RhoStudio • Appcelerator lunes 3 de septiembre de 12
  • 214. Other tools to consider • General • PhoneGap • RhoStudio • Appcelerator • MoSync lunes 3 de septiembre de 12
  • 215. lunes 3 de septiembre de 12
  • 216. 2D and 3D Graphics lunes 3 de septiembre de 12
  • 217. 2D and 3D Graphics • Game engines-frameworks lunes 3 de septiembre de 12
  • 218. 2D and 3D Graphics • Game engines-frameworks • Corona SDK lunes 3 de septiembre de 12
  • 219. 2D and 3D Graphics • Game engines-frameworks • Corona SDK • Unity3D lunes 3 de septiembre de 12
  • 220. 2D and 3D Graphics • Game engines-frameworks • Corona SDK • Unity3D • Unreal lunes 3 de septiembre de 12
  • 221. 2D and 3D Graphics • Game engines-frameworks • Corona SDK • Unity3D • Unreal • Cocos-2D lunes 3 de septiembre de 12
  • 222. 2D and 3D Graphics • Game engines-frameworks • Corona SDK • Unity3D • Unreal • Cocos-2D • Many others lunes 3 de septiembre de 12
  • 223. lunes 3 de septiembre de 12
  • 224. An Example of a Unity3D Game lunes 3 de septiembre de 12
  • 225. An Example of a Unity3D Game • Battlestar Galactica online by NBCUniversal lunes 3 de septiembre de 12
  • 226. An Example of a Unity3D Game • Battlestar Galactica online by NBCUniversal lunes 3 de septiembre de 12
  • 227. lunes 3 de septiembre de 12
  • 228. An Example of our Unity3D work lunes 3 de septiembre de 12
  • 229. An Example of our Unity3D work • Chora Museum by IZApps lunes 3 de septiembre de 12
  • 230. An Example of our Unity3D work • Chora Museum by IZApps lunes 3 de septiembre de 12
  • 231. An Example of our Unity3D work • Chora Museum by IZApps lunes 3 de septiembre de 12
  • 232. lunes 3 de septiembre de 12
  • 233. Where to go next lunes 3 de septiembre de 12
  • 234. Where to go next • Play with Xcode lunes 3 de septiembre de 12
  • 235. Where to go next • Play with Xcode • Immense amount of tutorials on the web lunes 3 de septiembre de 12
  • 236. Where to go next • Play with Xcode • Immense amount of tutorials on the web • Some on-line courses by respected universities lunes 3 de septiembre de 12
  • 237. lunes 3 de septiembre de 12
  • 238. Stanford University lunes 3 de septiembre de 12
  • 239. Stanford University lunes 3 de septiembre de 12
  • 240. lunes 3 de septiembre de 12
  • 241. Closing lunes 3 de septiembre de 12
  • 242. Closing • You can develop with Objective-C lunes 3 de septiembre de 12
  • 243. Closing • You can develop with Objective-C • Resources are abundant lunes 3 de septiembre de 12
  • 244. Closing • You can develop with Objective-C • Resources are abundant • Good designers are available on the Web lunes 3 de septiembre de 12
  • 245. lunes 3 de septiembre de 12
  • 246. Any questions? lunes 3 de septiembre de 12
  • 247. Any questions? • You can reach me at tansel@tansel.org lunes 3 de septiembre de 12
  • 248. Any questions? • You can reach me at tansel@tansel.org • Come and visit us in Turkey while I am there! lunes 3 de septiembre de 12
  • 249. Any questions? • You can reach me at tansel@tansel.org • Come and visit us in Turkey while I am there! • Let us do an ESUG conference in Istanbul! lunes 3 de septiembre de 12