Pro Yearly is on sale from $80 to $50! »

macOS app development for iOS devs: expand your horizons

macOS app development for iOS devs: expand your horizons

A presentation for CocoaFriday #2 meetup, focused on common and different aspects of development for iOS and macOS.

6e39a16132f9e41e6869527ba0ced276?s=128

vashchenko

April 05, 2019
Tweet

Transcript

  1. macOS app development for iOS devs: expand your horizons

  2. Julia Vashchenko macOS Engineer at • Languages: Objective-C, Swift, C++

    • Platforms: macOS, iOS • Technologies: inter-process communication, daemons & agents, multithreading, GUI apps iaronskaya
  3. Why macOS? Benefits of coding for macOS for iOS developers

  4. iOSMac

  5. iOSMac See also: https://speakerdeck.com/steipete/hacking-marzipan

  6. None
  7. None
  8. None
  9. None
  10. iOSMac

  11. https://developer.apple.com/macos/

  12. Many great apps can be written for macOS!

  13. Does anyone write for macOS?

  14. None
  15. Seamless transition 1. Familiar IDE: Xcode 2. Same language stack:

    Swift, Objective-C, C++, C 3. Well-known frameworks 4. More possibilities
  16. Seamless transition 1. Familiar IDE: Xcode 2. Same language stack:

    Swift, Objective-C, C++, C 3. Well-known frameworks 4. More possibilities
  17. iOS & macOS: alike and different

  18. UIKit vs AppKit

  19. UIApplication

  20. UIApplication NSApplication

  21. UIView

  22. UIView NSView

  23. UITableView

  24. UITableView NSTableView

  25. 100 days of OSX Development video tutorials

  26. 100 days of OSX Development video tutorials

  27. 100 days of OSX Development video tutorials

  28. UIWindow

  29. UIWindow NSWindow

  30. UIWindow NSWindow ↑ UIResponder ↑ NSObject UIView ↑

  31. UIWindow NSWindow ↑ UIResponder ↑ NSObject UIView ↑ ↑ NSResponder

    ↑ NSObject
  32. UITableView NSTableView UIScrollView UIView UIResponder ↑ ↑ ↑

  33. UITableView NSTableView UIScrollView UIView UIResponder ↑ ↑ ↑ NSControl NSView

    NSResponder ↑ ↑ ↑
  34. NSControl

  35. NSControl

  36. NSControl

  37. NSCollectionView

  38. NSCollectionView Works a lot differently than UICollectionView

  39. CALayer of the view: find 3 differences

  40. CALayer of the view: find 3 differences

  41. CALayer of the view: find 3 differences

  42. CALayer of the view: find 3 differences

  43. Core Animation

  44. Core Animation

  45. Core Animation

  46. Core Animation

  47. Coordinate system

  48. Coordinate system

  49. Coordinate system

  50. Coordinate system myView.isFlipped = true

  51. Why so many differences?

  52. iOS & macOS history

  53. OS X

  54. OS X [ɔes ten]

  55. 1984 1985 1986 1987 System 1 System 2 System 3

    System 4 System 5: Macintosh System Software
  56. 1988 1989 1990 1991 System 6 System 7

  57. 1992 1993 1994 1995 Mac OS 7.5.1 Mac OS 8

  58. 1996 1997 1998 1999 Apple acquires NeXT Mac OS 9

  59. 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
  60. 2004 2005 2006 2007 Mac OS X 10.4 Tiger Mac

    OS X 10.5 Leopard iPhone 1 launch
  61. 2008 2009 2010 2011 Mac OS X 10.6 Snow Leopard

    Mac OS X 10.7 Lion
  62. 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
  63. 2016 2017 2018 2019 macOS 10.12 Sierra macOS 10.13 High

    Sierra macOS 10.14 Mojave ?
  64. System 1

  65. System 6

  66. System 6

  67. None
  68. None
  69. None
  70. System 7

  71. Mac OS 9

  72. Mac OS 9

  73. Mac OS X

  74. Mac OS X 10.5

  75. macOS specifics

  76. macOS specifics Distribution out of App Store

  77. macOS specifics Distribution out of App Store Living out of

    the Sandbox
  78. macOS specifics Distribution out of App Store Living out of

    the Sandbox Obtaining root privileges
  79. macOS specifics Distribution out of App Store Living out of

    the Sandbox Obtaining root privileges Using command-line tools
  80. macOS specifics Distribution out of App Store Living out of

    the Sandbox Obtaining root privileges Using command-line tools Scripting other apps
  81. macOS specifics Distribution out of App Store Living out of

    the Sandbox Obtaining root privileges Using command-line tools Scripting other apps ...
  82. Demo

  83. PDP: Personal Development Plan https://gist.github.com/aronskaya/7daa8d2bf77d60c65d35f91c6316e8f0

  84. Any Questions?

  85. Thank you! email: julia.vashchenko@yahoo.com twitter: iaronskaya