SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
놀아요

Swift Playgrounds
발표자 : github.com/wookay

일시 : 2014년 7월 5일 토요일 1시~6시

장소 : 판교 H스퀘어 N동 4층 - NHN NEXT 홀
다운로드

https://github.com/wookay/swiftcat/tree/master/slide/examples

!
사용한 예제 소스 코드
Apple SWIFT programming language demo at WWDC 2014

http://youtu.be/l62x8Oq_QP4?t=3m5s

Chris Lattner - Playgrounds Demo
• Chris Lattner - LLVM

• Bret Victor

• Chris Granger - Light Table
인물과 배경
Chris Lattner's Homepage

http://nondot.org/sabre/

!
• The Xcode Playgrounds feature and REPL were a personal passion of
mine, to make programming more interactive and approachable. The
Xcode and LLDB teams have done a phenomenal job turning crazy ideas
into something truly great. Playgrounds were heavily influenced by Bret
Victor's ideas, by Light Table and by many other interactive systems. I
hope that by making programming more approachable and fun, we'll
appeal to the next generation of programmers and to help redefine how
Computer Science is taught.
Chris Lattner
Friday, January 20th, 2012

http://vimeo.com/36579366

!
!
CUSEC (Canadian University Software Engineering Conference)

http://2012.cusec.net

!
!
Bret Victor - Inventing on Principle
Bret Victor - Inventing on Principle (2)
Bret Victor - Inventing on Principle (3)
2003 ~ 2005

http://worrydream.com/#!/Alesis

!
* ALESIS ION

* ALESIS MICRON

* ALASIS FUSION

!
!
!
Alesis Micron - Quick demo

http://www.youtube.com/watch?v=nqoN1dpwA30
Bret Victor - Alesis
September 2012

Learnable Programming

http://worrydream.com/LearnableProgramming/
Bret Victor - Learnable Programming
12 Apr 2012 

Light Table - a new IDE concept

http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/

!
!
• Bret Victor hinted at the idea that we can do much better than we are
now - we can provide instant feedback, we can show you how your
changes affect a system. And I discovered he was right.

!
Instant feedback

• In Inventing on Principle, Bret showed us that we could live-edit games
and write binary search in an editor that is constantly evaluating and
showing you what's going on. The lispers among us are used to using the
REPL to have an environment where we can try things out. But we can
do better - we can do it in place and instantaneously. For example here
I type the code (+ 3 4) and we immediately see that it evaluates to 7 -
no ctrl-enter or anything else.
Chris Granger - Light Table
24 Jun 2012

It's playtime - Light Table Playground released

http://www.chris-granger.com/2012/06/24/its-playtime/

!
!
Instarepl

• real-time evaluation
Chris Granger - Light Table : Playground
A History of Live Programming

http://liveprogramming.github.io/liveblog/2013/01/a-history-of-live-A
History of Live Programmingprogramming/

!
• 	Live programming is an idea espoused by programming environments
from the earliest days of computing, such as Lisp machines, Logo,
Hypercard, and Smalltalk. In common with all these systems was
liveness: Feedback is nearly instantaneous and evaluation is always
accessible. For example, any part of the SmallTalk environment could be
modified at any time and reflected instantly. Likewise, in HyperCard, the
state of any object was considered to be live and editable at any time.
Live Programming
* Timeline

* Quick Looks

* Settings

* XCPlayground
Playgrounds
• 타임라인

• 시간 흐름에 대한 값의 변화를 파악 (Value History)
Timeline
• 빠른 보기

!
지원하는 타입

• Colors

• Strings (plain and attributed)

• Images

• Views

• Arrays and dictionaries

• Points, rects, sizes

• Bezier paths

• URLs

• Classes and structs
Quick Looks
파일 인스펙터에서 플랫폼, 리소스 경로 설정

!
Platform

• OS X

• iOS

!
Resource Path

• Absolute Path

• Relative to Playground

• Inside Playground

!
사용

• NSImage(named:)

• NSBundle.pathForResource(_:ofType:)
Settings
OS X에서만 되는 기능

!
캡쳐할 값 지정

• func XCPCaptureValue<T>(identifier: String, value: T)

!
타임라인에 라이브 뷰 보이기

• func XCPShowView(identifier: String, view: NSView)

!
비동기 지원

• func XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: Bool = true)
XCPlayground
Session 408

• GuidedTour.playground

• MyPlayground.playground

• InsertionSort.playground

• TestTableViewCell.playground

• PlaygroundIconView.playground

• Async.playground

!
딴데

• SpriteKit.playground
예제 모음
Xcode Engineers : Rick Ballard, Connor Wakamo 

!
WWDC 2014 Session Videos - Apple Developer

https://developer.apple.com/videos/wwdc/2014/

408_swift_playgrounds.pdf

408_hd_swift_playgrounds.mov

!
!
ASCIIwwdc - Swift Playgrounds

http://asciiwwdc.com/2014/sessions/408

!
!
WWDC-2014-Subtitle / 408 Swift Playgrounds [English].srt

https://github.com/walkingway/WWDC-2014-Subtitle/blob/master/
408%20Swift%20Playgrounds%20%5BEnglish%5D.srt
Session 408 - Swift Playgrounds
GuidedTour.playground
 $
 cat
 contents.xcplayground
 
?xml
 version=1.0
 encoding=UTF-8
 standalone=yes?
 
playground
 version='3.0'
 sdk='macosx'
 allows-reset='YES'
 

Más contenido relacionado

La actualidad más candente

Building games-with-libgdx
Building games-with-libgdxBuilding games-with-libgdx
Building games-with-libgdxJumping Bean
 
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Yusuke Muraoka
 
Linux Alternative Softwares
Linux Alternative SoftwaresLinux Alternative Softwares
Linux Alternative SoftwaresRanjith Siji
 
ChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robotsChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robotsOlivier Jacques
 
D1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FFD1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FFAnthony Jose
 

La actualidad más candente (6)

P1 2017 python
P1 2017 pythonP1 2017 python
P1 2017 python
 
Building games-with-libgdx
Building games-with-libgdxBuilding games-with-libgdx
Building games-with-libgdx
 
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発
 
Linux Alternative Softwares
Linux Alternative SoftwaresLinux Alternative Softwares
Linux Alternative Softwares
 
ChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robotsChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robots
 
D1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FFD1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FF
 

Destacado

Taller Swift - iCon
Taller Swift - iConTaller Swift - iCon
Taller Swift - iConiCon
 
Swift Tutorial 1
Swift Tutorial 1Swift Tutorial 1
Swift Tutorial 1Jintin Lin
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-CStephen Gilmore
 
Feedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLPFeedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLPStephen Gilmore
 
Swift Tutorial 2
Swift Tutorial  2Swift Tutorial  2
Swift Tutorial 2Jintin Lin
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with XcodeStephen Gilmore
 
Common Java problems when developing with Android
Common Java problems when developing with AndroidCommon Java problems when developing with Android
Common Java problems when developing with AndroidStephen Gilmore
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with RobotiumStephen Gilmore
 
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算Xue Xin Tsai
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-CStephen Gilmore
 
Feedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalFeedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalStephen Gilmore
 
Programming in Objective-C
Programming in Objective-CProgramming in Objective-C
Programming in Objective-CRyan Chung
 
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...彼得潘 Pan
 
To swiftly go where no OS has gone before
To swiftly go where no OS has gone beforeTo swiftly go where no OS has gone before
To swiftly go where no OS has gone beforePaul Ardeleanu
 
Standford 2015 week8
Standford 2015 week8Standford 2015 week8
Standford 2015 week8彼得潘 Pan
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP彼得潘 Pan
 
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web DevelopersObjective-C Crash Course for Web Developers
Objective-C Crash Course for Web DevelopersJoris Verbogt
 

Destacado (20)

Taller Swift - iCon
Taller Swift - iConTaller Swift - iCon
Taller Swift - iCon
 
Swift Tutorial 1
Swift Tutorial 1Swift Tutorial 1
Swift Tutorial 1
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-C
 
Feedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLPFeedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLP
 
Swift Tutorial 2
Swift Tutorial  2Swift Tutorial  2
Swift Tutorial 2
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with Xcode
 
Common Java problems when developing with Android
Common Java problems when developing with AndroidCommon Java problems when developing with Android
Common Java problems when developing with Android
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
 
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-C
 
Feedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalFeedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large Practical
 
Programming in Objective-C
Programming in Objective-CProgramming in Objective-C
Programming in Objective-C
 
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
 
Swift Basic
Swift BasicSwift Basic
Swift Basic
 
To swiftly go where no OS has gone before
To swiftly go where no OS has gone beforeTo swiftly go where no OS has gone before
To swiftly go where no OS has gone before
 
Standford 2015 week8
Standford 2015 week8Standford 2015 week8
Standford 2015 week8
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP
 
Arrays in Objective-C
Arrays in Objective-CArrays in Objective-C
Arrays in Objective-C
 
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web DevelopersObjective-C Crash Course for Web Developers
Objective-C Crash Course for Web Developers
 
Swift-Programming Part 1
Swift-Programming Part 1Swift-Programming Part 1
Swift-Programming Part 1
 

Similar a 놀아요 Swift Playgrounds

Spacebrew: The Overview
Spacebrew: The OverviewSpacebrew: The Overview
Spacebrew: The OverviewBrett Renfer
 
Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1Abhishek Mishra
 
Doug McCune - Using Open Source Flex and ActionScript Projects
Doug McCune - Using Open Source Flex and ActionScript ProjectsDoug McCune - Using Open Source Flex and ActionScript Projects
Doug McCune - Using Open Source Flex and ActionScript ProjectsDoug McCune
 
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCBuild Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCTim Burks
 
Programming the Real World: Javascript for Makers
Programming the Real World: Javascript for MakersProgramming the Real World: Javascript for Makers
Programming the Real World: Javascript for Makerspchristensen
 
ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014Brett Renfer
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitcbenDesigning
 
Programming Language Final PPT
Programming Language Final PPTProgramming Language Final PPT
Programming Language Final PPTMatthew Chang
 
Learn about Java framework for pen-based computing and the Livescribe Platfor...
Learn about Java framework for pen-based computing and the Livescribe Platfor...Learn about Java framework for pen-based computing and the Livescribe Platfor...
Learn about Java framework for pen-based computing and the Livescribe Platfor...Marakana Inc.
 
Eating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & AppsEating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & AppsRobotGrrl
 
PyLadies Seattle - Lessons in Interactive Visualizations
PyLadies Seattle - Lessons in Interactive VisualizationsPyLadies Seattle - Lessons in Interactive Visualizations
PyLadies Seattle - Lessons in Interactive VisualizationsAmanda Casari
 
COMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliCOMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliMark Billinghurst
 
The Present and Future of the Web Platform
The Present and Future of the Web PlatformThe Present and Future of the Web Platform
The Present and Future of the Web PlatformC4Media
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekingeProf. Wim Van Criekinge
 

Similar a 놀아요 Swift Playgrounds (20)

Spacebrew: The Overview
Spacebrew: The OverviewSpacebrew: The Overview
Spacebrew: The Overview
 
XRobots
XRobotsXRobots
XRobots
 
cadec-2017-golang
cadec-2017-golangcadec-2017-golang
cadec-2017-golang
 
Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1
 
Doug McCune - Using Open Source Flex and ActionScript Projects
Doug McCune - Using Open Source Flex and ActionScript ProjectsDoug McCune - Using Open Source Flex and ActionScript Projects
Doug McCune - Using Open Source Flex and ActionScript Projects
 
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCBuild Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPC
 
Programming the Real World: Javascript for Makers
Programming the Real World: Javascript for MakersProgramming the Real World: Javascript for Makers
Programming the Real World: Javascript for Makers
 
ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014ITP Spacebrew Workshop - Spring 2014
ITP Spacebrew Workshop - Spring 2014
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 
Programming Language Final PPT
Programming Language Final PPTProgramming Language Final PPT
Programming Language Final PPT
 
Learn about Java framework for pen-based computing and the Livescribe Platfor...
Learn about Java framework for pen-based computing and the Livescribe Platfor...Learn about Java framework for pen-based computing and the Livescribe Platfor...
Learn about Java framework for pen-based computing and the Livescribe Platfor...
 
05 python.pdf
05 python.pdf05 python.pdf
05 python.pdf
 
Eating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & AppsEating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & Apps
 
PyLadies Seattle - Lessons in Interactive Visualizations
PyLadies Seattle - Lessons in Interactive VisualizationsPyLadies Seattle - Lessons in Interactive Visualizations
PyLadies Seattle - Lessons in Interactive Visualizations
 
From Web to Mobile with Stage 3D
From Web to Mobile with Stage 3DFrom Web to Mobile with Stage 3D
From Web to Mobile with Stage 3D
 
COMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliCOMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and Soli
 
The Present and Future of the Web Platform
The Present and Future of the Web PlatformThe Present and Future of the Web Platform
The Present and Future of the Web Platform
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
 

놀아요 Swift Playgrounds