Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
macOS app development for iOS devs: expand your horizons
Slide 2
Slide 2 text
Julia Vashchenko macOS Engineer at • Languages: Objective-C, Swift, C++ • Platforms: macOS, iOS • Technologies: inter-process communication, daemons & agents, multithreading, GUI apps iaronskaya
Slide 3
Slide 3 text
Why macOS? Benefits of coding for macOS for iOS developers
Slide 4
Slide 4 text
iOSMac
Slide 5
Slide 5 text
iOSMac See also: https://speakerdeck.com/steipete/hacking-marzipan
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
iOSMac
Slide 11
Slide 11 text
https://developer.apple.com/macos/
Slide 12
Slide 12 text
Many great apps can be written for macOS!
Slide 13
Slide 13 text
Does anyone write for macOS?
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
Seamless transition 1. Familiar IDE: Xcode 2. Same language stack: Swift, Objective-C, C++, C 3. Well-known frameworks 4. More possibilities
Slide 16
Slide 16 text
Seamless transition 1. Familiar IDE: Xcode 2. Same language stack: Swift, Objective-C, C++, C 3. Well-known frameworks 4. More possibilities
Slide 17
Slide 17 text
iOS & macOS: alike and different
Slide 18
Slide 18 text
UIKit vs AppKit
Slide 19
Slide 19 text
UIApplication
Slide 20
Slide 20 text
UIApplication NSApplication
Slide 21
Slide 21 text
UIView
Slide 22
Slide 22 text
UIView NSView
Slide 23
Slide 23 text
UITableView
Slide 24
Slide 24 text
UITableView NSTableView
Slide 25
Slide 25 text
100 days of OSX Development video tutorials
Slide 26
Slide 26 text
100 days of OSX Development video tutorials
Slide 27
Slide 27 text
100 days of OSX Development video tutorials
Slide 28
Slide 28 text
UIWindow
Slide 29
Slide 29 text
UIWindow NSWindow
Slide 30
Slide 30 text
UIWindow NSWindow ↑ UIResponder ↑ NSObject UIView ↑
Slide 31
Slide 31 text
UIWindow NSWindow ↑ UIResponder ↑ NSObject UIView ↑ ↑ NSResponder ↑ NSObject
Slide 32
Slide 32 text
UITableView NSTableView UIScrollView UIView UIResponder ↑ ↑ ↑
Slide 33
Slide 33 text
UITableView NSTableView UIScrollView UIView UIResponder ↑ ↑ ↑ NSControl NSView NSResponder ↑ ↑ ↑
Slide 34
Slide 34 text
NSControl
Slide 35
Slide 35 text
NSControl
Slide 36
Slide 36 text
NSControl
Slide 37
Slide 37 text
NSCollectionView
Slide 38
Slide 38 text
NSCollectionView Works a lot differently than UICollectionView
Slide 39
Slide 39 text
CALayer of the view: find 3 differences
Slide 40
Slide 40 text
CALayer of the view: find 3 differences
Slide 41
Slide 41 text
CALayer of the view: find 3 differences
Slide 42
Slide 42 text
CALayer of the view: find 3 differences
Slide 43
Slide 43 text
Core Animation
Slide 44
Slide 44 text
Core Animation
Slide 45
Slide 45 text
Core Animation
Slide 46
Slide 46 text
Core Animation
Slide 47
Slide 47 text
Coordinate system
Slide 48
Slide 48 text
Coordinate system
Slide 49
Slide 49 text
Coordinate system
Slide 50
Slide 50 text
Coordinate system myView.isFlipped = true
Slide 51
Slide 51 text
Why so many differences?
Slide 52
Slide 52 text
iOS & macOS history
Slide 53
Slide 53 text
OS X
Slide 54
Slide 54 text
OS X [ɔes ten]
Slide 55
Slide 55 text
1984 1985 1986 1987 System 1 System 2 System 3 System 4 System 5: Macintosh System Software
Slide 56
Slide 56 text
1988 1989 1990 1991 System 6 System 7
Slide 57
Slide 57 text
1992 1993 1994 1995 Mac OS 7.5.1 Mac OS 8
Slide 58
Slide 58 text
1996 1997 1998 1999 Apple acquires NeXT Mac OS 9
Slide 59
Slide 59 text
2000 2001 2002 2003 Mac OS X 10.0 Cheetah, 10.1 Puma Mac OS X 10.2 Jaguar Mac OS X 10.3 Panther
Slide 60
Slide 60 text
2004 2005 2006 2007 Mac OS X 10.4 Tiger Mac OS X 10.5 Leopard iPhone 1 launch
Slide 61
Slide 61 text
2008 2009 2010 2011 Mac OS X 10.6 Snow Leopard Mac OS X 10.7 Lion
Slide 62
Slide 62 text
2012 2013 2014 2015 Mac OS X 10.8 Mountain Lion Mac OS X 10.9 Maverics Mac OS X 10.10 Yosemite Mac OS X 10.11 El Capitan
Slide 63
Slide 63 text
2016 2017 2018 2019 macOS 10.12 Sierra macOS 10.13 High Sierra macOS 10.14 Mojave ?
Slide 64
Slide 64 text
System 1
Slide 65
Slide 65 text
System 6
Slide 66
Slide 66 text
System 6
Slide 67
Slide 67 text
No content
Slide 68
Slide 68 text
No content
Slide 69
Slide 69 text
No content
Slide 70
Slide 70 text
System 7
Slide 71
Slide 71 text
Mac OS 9
Slide 72
Slide 72 text
Mac OS 9
Slide 73
Slide 73 text
Mac OS X
Slide 74
Slide 74 text
Mac OS X 10.5
Slide 75
Slide 75 text
macOS specifics
Slide 76
Slide 76 text
macOS specifics Distribution out of App Store
Slide 77
Slide 77 text
macOS specifics Distribution out of App Store Living out of the Sandbox
Slide 78
Slide 78 text
macOS specifics Distribution out of App Store Living out of the Sandbox Obtaining root privileges
Slide 79
Slide 79 text
macOS specifics Distribution out of App Store Living out of the Sandbox Obtaining root privileges Using command-line tools
Slide 80
Slide 80 text
macOS specifics Distribution out of App Store Living out of the Sandbox Obtaining root privileges Using command-line tools Scripting other apps
Slide 81
Slide 81 text
macOS specifics Distribution out of App Store Living out of the Sandbox Obtaining root privileges Using command-line tools Scripting other apps ...
Slide 82
Slide 82 text
Demo
Slide 83
Slide 83 text
PDP: Personal Development Plan https://gist.github.com/aronskaya/7daa8d2bf77d60c65d35f91c6316e8f0
Slide 84
Slide 84 text
Any Questions?
Slide 85
Slide 85 text
Thank you! email:
[email protected]
twitter: iaronskaya