Skip to content

Commit

Permalink
Initial Swift Chat SDK release (0.8.0) (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
jguz-pubnub authored Sep 24, 2024
1 parent 406d220 commit c25b98d
Show file tree
Hide file tree
Showing 81 changed files with 10,787 additions and 2 deletions.
92 changes: 92 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
## Custom .plist
Tests/PubNubSwiftChatSDKTests.plist

## macOS
.DS_Store

## User settings
xcuserdata/
PubNubSwiftChatSDK.xcworkspace/xcuserdata/
PubNubSwiftChatSDK.xcodeproj/xcuserdata/

## Build generated
build/
DerivedData/

## IDE
.idea/

## Tests
Results/

## Config files containing secret keys
*.debug.xcconfig
*.release.xcconfig

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint
keysset.plist

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
Packages/
Package.pins
Package.resolved
.swiftpm
.build

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:

# https://guides.cocoapods.org/using/using-cocoapod.html#should-i-check-the-pods-directory-into-source-control

Pods/

# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/test_output

# GitHub Actions #
##################
.github/.release
24 changes: 24 additions & 0 deletions .swiftformat
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Format options
--indent 2
--commas inline

--disable wrapMultilineStatementBraces
--wraparguments before-first
--wrapparameters before-first
--maxwidth 150
--disable wrapSingleLineComments
--voidtype void
--redundanttype inferred
--self remove

--enable spaceAroundBrackets,spaceAroundComments,spaceAroundGenerics,spaceAroundParens,spaceInsideBraces
--enable spaceInsideBrackets,spaceInsideComments,spaceInsideGenerics,spaceInsideParens,trailingclosures,trailingCommas
--enable wrapConditionalBodies, wrapEnumCases, wrapLoopBodies
--enable redundantLetError,redundantParens,redundantSelf,redundantReturn,redundantBreak
--enable duplicateImports

# File options
--exclude .build

# Swift Version
--swiftversion 5.9
29 changes: 29 additions & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
line_length:
warning: 150
ignores_comments: true
disabled_rules:
- identifier_name
- type_name
- function_body_length
- function_parameter_count
excluded:
- .build
- bundle
- .bundle
- fastlane
- Tests
- Pods
opt_in_rules:
- force_unwrapping
- overridden_super_call
- prohibited_super_call
- first_where
- closure_spacing
- unneeded_parentheses_in_closure_argument
- redundant_nil_coalescing
- pattern_matching_keywords
- explicit_init
- contains_over_first_not_nil
- empty_parentheses_with_trailing_closure
- empty_string
- sorted_first_last
29 changes: 29 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
PubNub Software Development Kit License Agreement
Copyright © 2023 PubNub Inc. All rights reserved.

Subject to the terms and conditions of the license, you are hereby granted
a non-exclusive, worldwide, royalty-free license to (a) copy and modify
the software in source code or binary form for use with the software services
and interfaces provided by PubNub, and (b) redistribute unmodified copies
of the software to third parties. The software may not be incorporated in
or used to provide any product or service competitive with the products
and services of PubNub.

The above copyright notice and this license shall be included
in or with all copies or substantial portions of the software.

This license does not grant you permission to use the trade names, trademarks,
service marks, or product names of PubNub, except as required for reasonable
and customary use in describing the origin of the software and reproducing
the content of this license.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL PUBNUB OR THE AUTHORS OR COPYRIGHT HOLDERS OF THE SOFTWARE BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

https://www.pubnub.com/
https://www.pubnub.com/terms
35 changes: 35 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// swift-tools-version: 5.9
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
name: "PubNubSwiftChatSDK",
platforms: [.iOS(.v14)],
products: [
// Products define the executables and libraries a package produces, making them visible to other packages.
.library(
name: "PubNubSwiftChatSDK",
targets: ["PubNubSwiftChatSDK"]
)
],
dependencies: [
.package(url: "https://github.com/pubnub/kmp-chat", revision: "910c9bd122ec408c577b78e96aff106c459926b9"),
.package(url: "https://github.com/pubnub/swift", exact: "8.0.0")
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.target(
name: "PubNubSwiftChatSDK",
dependencies: [
.product(name: "PubNubSDK", package: "swift"),
.product(name: "PubNubChat", package: "kmp-chat")
]
),
.testTarget(
name: "PubNubSwiftChatSDKTests",
dependencies: ["PubNubSwiftChatSDK"]
)
]
)
Loading

0 comments on commit c25b98d

Please sign in to comment.