SlideShare a Scribd company logo
1 of 65
Download to read offline
Mixing ObjC, Swift and Japan
Tina Chang

LINE Fukuoka
INTRODUCTION
旅⽇日台灣⼯工程師
吃貨 🥞
iOS歷3年年 🐣
RUN FOR EAT
‣ MIXING OVERVIEW
‣ CIRCULAR REFERENCE
‣ JAPAN
‣ JAPAN
‣ MIXING OVERVIEW
‣ CIRCULAR REFERENCE
#
JAPAN ENGINEER SALARY?
AMAZON / GOOGLE / INDEED
TIER1
850万円↑
LINE / MERCARI / RAKUTEN
TIER2
600-900万円
OTHERS
400-700万円
HOW MUCH YOU CAN SAVE?
✓ 所得稅
✓ 健康保險料
✓ 厚⽣生年年⾦金金保險
薪⽔水900万円↓
80%
薪⽔水900万円↑
70%
✓ 房租
✓ ⽔水電瓦斯費
✓ 飲食費
✓ 交通費
✓ 房租     
✓ ⽔水電瓦斯費  
✓ 飲食費
✓ 交通費
8万円
1万円
6万円
0円
15万円
✓ 房租     
✓ ⽔水電瓦斯費  
✓ 飲食費
✓ 交通費
8万円
1万円
6万円
0円
15万円
2000円
420円
780円
680円
1000円
180円
430円
400円
✓ 房租     
✓ ⽔水電瓦斯費  
✓ 飲食費
✓ 交通費
8万円
1万円
6万円
0円
15万円
薪⽔水
600万円
600万円 x 80% - 15万 x 12
300万円
‣ JAPAN
‣ MIXING OVERVIEW
‣ CIRCULAR REFERENCE
#
GOOD POINTS FOR MIXING?
WE CAN WRITE SWIFT
Bridging
Header
Generated
Header
Bridging
Header
Generated
Header
Swift → Objective-C
Bridging
Header
Generated
Header
Objective-C → Swift
Bridging
Header
Generated
Header
Swift → Objective-CObjective-C → Swift
Mixed-Proj
Mixed-Proj-Bridging-Header.h Mixed_Proj-Swift.h
Swift → Objective-C
@objc (LINESticker)
class Sticker: NSObject {
}
// StickerViewController.m
- (instancetype)initWithSticker:(LINESticker*)sticker
{
self = [super init];
if (self) {
_sticker = sticker;
}
return self;
}
Swift
Objective-C
Swift → Objective-C
@objc (LINESticker)
class Sticker: NSObject {
}
// StickerViewController.m
#import “Mixed_Proj-Swift.h”
- (instancetype)initWithSticker:(LINESticker*)sticker
{
self = [super init];
if (self) {
_sticker = sticker;
}
return self;
}
Swift
Objective-C
Swift → Objective-C
Objective-C → Swift
class StickerListViewController: UIViewController {
func presentStickerViewController() {
let stickerViewController = StickerViewController()
present(stickerInfoViewController, animated: true, completion: nil)
}
}
// StickerViewController.h
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Swift
Objective-C
Objective-C → Swift
class StickerListViewController: UIViewController {
func presentStickerViewController() {
let stickerViewController = StickerViewController()
present(stickerInfoViewController, animated: true, completion: nil)
}
}
// StickerViewController.h
@interface StickerViewController : UIViewController
@end
Swift
Objective-C
Objective-C → Swift
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
Bridging
Header
Generated
Header
Swift → Objective-CObjective-C → Swift
Mixed-Proj
Mixed-Proj-Bridging-Header.h Mixed_Proj-Swift.h
‣ JAPAN
‣ MIXING OVERVIEW
‣ CIRCULAR REFERENCE
#
@objc (LINESticker)
class Sticker: NSObject {
}
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
#import “Mixed_Proj-Swift.h"
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Swift
Objective-C
CIRCULAR REFERENCE
@objc (LINESticker)
class Sticker: NSObject {
}
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
#import “Mixed_Proj-Swift.h"
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Swift
Objective-C
‘Mixed_Proj-Swift.h’ file not found
CIRCULAR REFERENCE
‣ compile Swift module
‣ precompile Bridging Header file (Mixed-Proj-Bridging-Header.h)
‣ compile Swift source files
‣ Generated Header file (Mixed_Proj-Swift.h)
‣ compile Objective-C source files
BUILD PROCESS
Bridging
Header
Generated
Header
‣ Swift module
‣ Bridging Header file
‣ Swift source files
‣ Generated Header file
‣ Objective-C source files
Bridging
Header
Generated
Header
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
‣ Swift module
‣ Bridging Header file
‣ Swift source files
‣ Generated Header file
‣ Objective-C source files
Bridging
Header
Generated
Header
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
#import “Mixed_Proj-Swift.h"
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
‣ Swift module
‣ Bridging Header file
‣ Swift source files
‣ Generated Header file
‣ Objective-C source files
Bridging
Header
Generated
Header
‣ Swift module
‣ Bridging Header file
‣ Swift source files
‣ Generated Header file
‣ Objective-C source files
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
#import “Mixed_Proj-Swift.h"
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Bridging
Header
Generated
Header
‣ Swift module
‣ Bridging Header file
‣ Swift source files
‣ Generated Header file
‣ Objective-C source files
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
#import “Mixed_Proj-Swift.h"
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
‘Mixed_Proj-Swift.h’ file not found
@objc (LINESticker)
class Sticker: NSObject {
}
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
#import “Mixed_Proj-Swift.h"
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Swift
Objective-C
‘Mixed_Proj-Swift.h’ file not found
CIRCULAR REFERENCE
FORWARD DECLARATION
@objc (LINESticker)
class Sticker: NSObject {
}
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
@class LINESticker;
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Swift
Objective-C
HOW ABOUT PROTOCOL?
@objc (LINEProduct)
protocol Product: NSObjectProtocol {
}
// Mixed_Proj-Bridging-Header.h
#import "ProductViewController.h"
// ProductViewController.h
@protocol LINEProduct;
@interface ProductViewController : UIViewController
@property (nonatomic, strong, nonnull) id<LINEProduct> product;
@end
Swift
Objective-C
CIRCULAR REFERENCE - PROTOCOL
CONFORM PROTOCOL?
@objc (LINEProduct)
protocol Product: NSObjectProtocol {
}
// Mixed_Proj-Bridging-Header.h
#import “Theme.h”
// Theme.h
@protocol LINEProduct;
@interface Theme : NSObject <LINEProduct>
@end
Swift
Objective-C
CONFORM PROTOCOL
@objc (LINEProduct)
protocol Product: NSObjectProtocol {
}
// Mixed_Proj-Bridging-Header.h
#import “Theme.h”
// Theme.h
@protocol LINEProduct;
@interface Theme : NSObject <LINEProduct>
@end
Swift
Objective-C
Cannot find protocol definition for 'LINEProduct'
CONFORM PROTOCOL
SOLUTION
✓ REWRITE PROTOCOLS IN OBJC
✓ RETURN SELF AS PROTOCOL TYPE
// Theme.h
@protocol LINEProduct;
@interface Theme : NSObject
- (id<LINEProduct>)theme;
@end
Objective-C
// Theme.m
#import "Theme.h"
#import “Mixed_Proj-Swift.h”
@interface Theme() <LINEProduct>
@end
@implementation Theme
- (id<LINEProduct>)theme
{
return self;
}
@end
CONFORM PROTOCOL
Swift class used in ObjC class used in Swift
@objc (LINESticker)
class Sticker: NSObject {
}
// Mixed_Proj-Bridging-Header.h
#import "StickerViewController.h"
// StickerViewController.h
@class LINESticker;
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
Swift
Objective-C
SWIFT→OBJC→SWIFT
class StickerListViewController: UIViewController {
func presentStickerViewController() {
let stickerViewController = StickerViewController()
stickerViewController.sticker = Sticker()
present(stickerViewController, animated: true, completion: nil)
}
}
SWIFT→OBJC→SWIFT
class StickerListViewController: UIViewController {
func presentStickerViewController() {
let stickerViewController = StickerViewController()
stickerViewController.sticker = Sticker()
present(stickerViewController, animated: true, completion: nil)
}
}
Value of type 'StickerViewController' has no member 'sticker'
SWIFT→OBJC→SWIFT
@objc (LINESticker)
class Sticker: NSObject {
}
// Mix_Proj-Swift.h
SWIFT_CLASS_NAMED("Sticker")
@interface LINESticker : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
Swift
Objective-C
SWIFT→OBJC→SWIFT
Swift
Objective-C
SWIFT→OBJC→SWIFT
func presentStickerViewController() {
let stickerViewController = StickerViewController()
stickerViewController.sticker = Sticker()
present(stickerViewController, animated: true, completion: nil)
}
// StickerViewController.h
@class LINESticker;
@interface StickerViewController : UIViewController
@property (nonatomic, strong, nonnull) LINESticker *sticker;
@end
?
SOLUTION
✓ DO NOT RENAME



✓ TYPEALIAS
@objc class Sticker: NSObject {
}
typealias Sticker = LINESticker
@objc class LINESticker: NSObject {
}
SWIFT→OBJC
‣ forward declaration in ObjC header
‣ rewrite Protocols in ObjC when conforming
‣ - (id<LINEProduct>)theme;

SWIFT→OBJC→SWIFT
‣ typealias
RECAP
ANY QUESTIONS?
welcomepig
welcomepig@gmail.com
WE ARE HIRING
THANK YOU $$$

More Related Content

Similar to Mixing Objective-C, Swift and Japan

Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLAnton Arhipov
 
Protocol-Oriented Programming in Swift
Protocol-Oriented Programming in SwiftProtocol-Oriented Programming in Swift
Protocol-Oriented Programming in SwiftOleksandr Stepanov
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Matt Raible
 
Rebranding an ios application
Rebranding an ios applicationRebranding an ios application
Rebranding an ios applicationCocoaHeads France
 
XebiConFr 15 - Brace yourselves Angular 2 is coming
XebiConFr 15 - Brace yourselves Angular 2 is comingXebiConFr 15 - Brace yourselves Angular 2 is coming
XebiConFr 15 - Brace yourselves Angular 2 is comingPublicis Sapient Engineering
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?mdevtalk
 
Api development with rails
Api development with railsApi development with rails
Api development with railsEdwin Cruz
 
Fundamental JavaScript [In Control 2009]
Fundamental JavaScript [In Control 2009]Fundamental JavaScript [In Control 2009]
Fundamental JavaScript [In Control 2009]Aaron Gustafson
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Massimo Oliviero
 
api-platform: the ultimate API platform
api-platform: the ultimate API platformapi-platform: the ultimate API platform
api-platform: the ultimate API platformStefan Adolf
 
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Igor Moochnick
 
OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016Stephen Fink
 
Spring Boot with Kotlin, Kofu and Coroutines
 Spring Boot with Kotlin, Kofu and Coroutines Spring Boot with Kotlin, Kofu and Coroutines
Spring Boot with Kotlin, Kofu and CoroutinesVMware Tanzu
 
RubyMotion
RubyMotionRubyMotion
RubyMotionMark
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS DevelopmentJussi Pohjolainen
 
02 integrate highchart
02 integrate highchart02 integrate highchart
02 integrate highchartErhwen Kuo
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019Matt Raible
 
08 - Data Fetch (Monica).pptx
08 - Data Fetch (Monica).pptx08 - Data Fetch (Monica).pptx
08 - Data Fetch (Monica).pptxAliDaanish1
 

Similar to Mixing Objective-C, Swift and Japan (20)

Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSL
 
Protocol-Oriented Programming in Swift
Protocol-Oriented Programming in SwiftProtocol-Oriented Programming in Swift
Protocol-Oriented Programming in Swift
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
 
Rebranding an ios application
Rebranding an ios applicationRebranding an ios application
Rebranding an ios application
 
XebiConFr 15 - Brace yourselves Angular 2 is coming
XebiConFr 15 - Brace yourselves Angular 2 is comingXebiConFr 15 - Brace yourselves Angular 2 is coming
XebiConFr 15 - Brace yourselves Angular 2 is coming
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
 
Api development with rails
Api development with railsApi development with rails
Api development with rails
 
Epoxy 介紹
Epoxy 介紹Epoxy 介紹
Epoxy 介紹
 
Fundamental JavaScript [In Control 2009]
Fundamental JavaScript [In Control 2009]Fundamental JavaScript [In Control 2009]
Fundamental JavaScript [In Control 2009]
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)
 
api-platform: the ultimate API platform
api-platform: the ultimate API platformapi-platform: the ultimate API platform
api-platform: the ultimate API platform
 
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
 
OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016
 
Spring Boot with Kotlin, Kofu and Coroutines
 Spring Boot with Kotlin, Kofu and Coroutines Spring Boot with Kotlin, Kofu and Coroutines
Spring Boot with Kotlin, Kofu and Coroutines
 
RubyMotion
RubyMotionRubyMotion
RubyMotion
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
02 integrate highchart
02 integrate highchart02 integrate highchart
02 integrate highchart
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019
 
08 - Data Fetch (Monica).pptx
08 - Data Fetch (Monica).pptx08 - Data Fetch (Monica).pptx
08 - Data Fetch (Monica).pptx
 

Recently uploaded

The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
(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
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
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
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
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
 
(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
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
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
 
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
 
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
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Recently uploaded (20)

The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
(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
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
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 )
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
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...
 
(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...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
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...
 
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
 
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
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 

Mixing Objective-C, Swift and Japan