Linux도 Swift를 사용하여 GUI를 개발하려고 합니다!【SwiftGtk】
개시하다
VALU Advent Calendar 2018, 18일째 글!
오늘은 Swift가 개원화되었고, Swift는 Linux에서도 오랫동안 운행되기 시작했다.
아무리 스wift를 사용해 글을 쓰더라도 애플리케이션 개발자로서 코코아 UI에 익숙한 사람들은 CLI만으로 실행할 수 있는 스wift에 부족함을 느끼는 이들이 분명히 있겠죠.
따라서 이번에는 리눅스에서도 실행할 수 있는 스위프트 GUIGtk+의 스위프트 라이브러리TomasLinhart/SwiftGtk를 소개한다.
환경 건설
Ubuntu 18.04.1 LTS on VirtualBox ver 5.2.22 r126460
Terminal
$ sudo apt install -y wget clang libpython2.7 libxml2 curl libbsd-dev
$ wget https://swift.org/builds/swift-4.2.1-release/ubuntu1804/swift-4.2.1-$ RELEASE/swift-4.2.1-RELEASE-ubuntu18.04.tar.gz
$ tar -zxvf swift-4.2.1-RELEASE-ubuntu18.04.tar.gz
$ sudo mv swift-4.2.1-RELEASE-ubuntu18.04 /usr/local/swift
$ echo 'export PATH="/usr/local/swift/usr/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
이상 swift -v
에서'swift-4.2.1-REASE'의 문자를 확인하면 됩니다.Gtk 설치
Gtk는 GIMP를 위해 개발한 멀티플랫폼 GUI 툴세트로, GNOME를 필두로 여러 가지 부분.에서 사용된다.
설치는 다음과 같습니다.
Terminal
sudo apt install -y libgtk-3-dev
Package.swift 편집
편집(좋아)
Package.swift
.swift의 의존성을 해결하기 위해 가져오기vim
.Terminal
$ sudo apt install -y vim git
Swift Package Manager로 프로젝트를 만듭니다.Terminal
$ mkdir test && cd $_
$ swift package init --type executable
$ vi Package.swift
이어서 편집git
.추가해야 할 사항Package.swift
이 있으면 추가합니다.Package.swift
// swift-tools-version:4.2
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "test",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/TomasLinhart/SwiftGtk", "0.3.1" ..< "0.4.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "test",
dependencies: ["SwiftGtk"]),
.testTarget(
name: "testTests",
dependencies: ["test"]),
]
)
main.swift 편집
https://github.com/TomasLinhart/SwiftGtk#demo.
main.swift
import SwiftGtk
let app = Application(applicationId: "com.example.application")
app.run { window in
window.title = "Hello World"
window.defaultSize = Size(width: 400, height: 400)
window.resizable = true
let button = Button(label: "Press Me")
button.clicked = { _ in
let newWindow = Window(windowType: .topLevel)
newWindow.title = "Just a window"
newWindow.defaultSize = Size(width: 200, height: 200)
let labelPressed = Label(text: "Oh, you pressed the button.")
newWindow.add(labelPressed)
newWindow.showAll()
}
window.add(button)
}
뒷면에서 연결 오류를 볼 수 있으며 Swift에서 구축하고 실행한 후 다음과 같다.주의
이번에 Swift에서 사용한TomasLinhart/SwiftGtk은MIT license 배포하고 다른 한편GTK+ 자체는
GTK+ is licensed under the GNU LGPL 2.1
LGPL 아래에 게시되므로 주의가 필요합니다.
올해의 총결산
VALU Advent Calendar 2018에서 스위프트의 매력을 전했다.저도 RxSwift와 디자인에 관한 이슈를 좋아하고 물리적 컴퓨팅과 코코아를 제외한 GUI 개발 등 조금 이상한 사용법을 소개했다.
독자들이 조금이나마 관심을 가질 수 있는 계기를 접해 스위프트의 매력을 전달했으면 한다.
올해로 딱 2주일이 됐는데 현재와 내년 이후에는 VALU의 앱이 계속 진화할 것이니 많은 응원 부탁드립니다.
인용하다
Reference
이 문제에 관하여(Linux도 Swift를 사용하여 GUI를 개발하려고 합니다!【SwiftGtk】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YutoMizutani/items/a550b6fa5767a7c55eea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)