GHActions: Add Swift 5.8 …
GHActions: Add Swift 5.8
…
SwiftBlocksUI is a way to write interactive Slack messages and modal dialogs (also known as Slack “applications”) using a SwiftUI like declarative style.
A blog article containing SwiftBlocksUI tutorials: Instant “SwiftUI” Flavoured Slack Apps. Documentation, examples: SlashCows, AvocadoToast, ClipIt!.
This is what a full application looks like:
#!/usr/bin/swift sh import SwiftBlocksUI // @SwiftBlocksUI dotenv.config() struct ClipItView: Blocks { @State(\.messageText) var messageText @State var importance = "medium" var body: some Blocks { View("Save it to ClipIt!") { TextEditor("Message Text", text: $messageText) Picker("Importance", selection: $importance) { "High 💎💎✨".tag("high") "Medium 💎" .tag("medium") "Low ⚪️" .tag("low") } Submit("CliptIt") { console.log("Clip:", messageText, importance) } } } } struct ClipIt: App { var body: some Endpoints { Use(logger("dev"), bodyParser.urlencoded(), sslCheck(verifyToken(allowUnsetInDebug: true))) MessageAction("clipit") { ClipItView() } } } try ClipIt.main()
Looks like this:
There is a related blog entry going over SwiftBlocksUI: Instant “SwiftUI” Flavoured Slack Apps.
Block documentation and a lot more can be found within this repository: Documentation.
Examples:
SLACK_ACCESS_TOKEN
SLACK_VERIFICATION_TOKEN
PORT
LOG_SLACK_CLIENT_POSTS
1
blocks.log.blocks
yes
blocks.log.blocks.json
macro.core.numthreads
macro.core.iothreads
macro.core.retain.debug
macro.concat.maxsize
macro.streams.debug.rc
macro.router.debug
macro.router.matcher.debug
On Linux this currently requires a Swift 5.3 environment (swiftc crash, might be SR-12543).
On macOS it should work with Swift 5.2 (aka Xcode 11) and up, though 5.3 has some additional conveniences.
SwiftBlocksUI is brought to you by ZeeZide. We like feedback, GitHub stars, cool contract work, presumably any form of praise you can think of.
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
SwiftBlocksUI
SwiftBlocksUI is a way to write interactive Slack messages and modal dialogs (also known as Slack “applications”) using a SwiftUI like declarative style.
A blog article containing SwiftBlocksUI tutorials: Instant “SwiftUI” Flavoured Slack Apps.
Documentation, examples: SlashCows, AvocadoToast, ClipIt!.
This is what a full application looks like:
Looks like this:

Documentation
There is a related blog entry going over SwiftBlocksUI: Instant “SwiftUI” Flavoured Slack Apps.
Block documentation and a lot more can be found within this repository: Documentation.
Examples:
Environment Variables
SLACK_ACCESS_TOKEN
(the token required to send requests to Slack)SLACK_VERIFICATION_TOKEN
(shared secret with Slack to verify requests)PORT
(the port the app is going to start on, defaults to 1337)LOG_SLACK_CLIENT_POSTS
(set to1
to log the JSON sent to Slack using SlackClient)blocks.log.blocks
(yes
to log the structure of outgoing API blocks)blocks.log.blocks.json
(yes
to log the raw JSON of outgoing blocks)macro.core.numthreads
macro.core.iothreads
macro.core.retain.debug
macro.concat.maxsize
macro.streams.debug.rc
macro.router.debug
macro.router.matcher.debug
Requirements
On Linux this currently requires a Swift 5.3 environment (swiftc crash, might be SR-12543).
On macOS it should work with Swift 5.2 (aka Xcode 11) and up, though 5.3 has some additional conveniences.
Links
Who
SwiftBlocksUI is brought to you by ZeeZide. We like feedback, GitHub stars, cool contract work, presumably any form of praise you can think of.