Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ismetanin/XcodeCodeSnippets
Code snippets for Xcode.
https://github.com/ismetanin/XcodeCodeSnippets
codesnippets snippets swift xcode xcode-snippets xcodesnippets
Last synced: 5 days ago
JSON representation
Code snippets for Xcode.
- Host: GitHub
- URL: https://github.com/ismetanin/XcodeCodeSnippets
- Owner: ismetanin
- License: mit
- Created: 2017-08-01T07:56:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-06-05T15:41:47.000Z (over 4 years ago)
- Last Synced: 2024-12-06T20:58:39.071Z (6 days ago)
- Topics: codesnippets, snippets, swift, xcode, xcode-snippets, xcodesnippets
- Language: Shell
- Homepage:
- Size: 73.2 KB
- Stars: 34
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - XcodeCodeSnippets - A set of code snippets for iOS development, includes code and comments snippets. (Xcode / Other Xcode)
- awesome-ios-star - XcodeCodeSnippets - A set of code snippets for iOS development, includes code and comments snippets. (Xcode / Other Xcode)
README
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
# XcodeCodeSnippets
A set of snippets for Xcode.
## Requirements
Xcode 7.3.1 or later.
## Installation
To install or update the snippets you need:
* Quit Xcode
* On the command line:```
cd ~/Downloads
git clone https://github.com/ismetanin/XcodeCodeSnippets
mkdir -p $HOME/Library/Developer/Xcode/UserData/CodeSnippets
cp XcodeCodeSnippets/CodeSnippets/* $HOME/Library/Developer/Xcode/UserData/CodeSnippets
rm -rf XcodeCodeSnippets
```Or if you have a cloned repository:
* On the command line, cd into the directory with snippets and write `sh ./install.sh`
## List of snippets
### MARKs
There are MARKs for Swift and Objective-C. For Swift there is prefix before each `// MARK: -` and for Objective-C prefix is `#pragma mark -`.
Shortcuts are equal to snippet body for example for `// MARK: - Properties` shortcut is `Properties`.
Available MARKs
|Snippet|
|---|
|Just empty mark (`// MARK: - ` or `#pragma mark - `) |
|`Nested types` |
|`Constants` |
|`Subviews` |
|`NSLayoutConstraints` |
|`Properties` |
|`Public properties` |
|`Readonly properties` |
|`IBOutlets` |
|`Initialization and deinitialization` |
|`UITableViewCell` |
|`UIViewController` |
|`Actions` |
|`IBActions` |
|`Public methods` |
|`Internal methods` |
|`Private methods` |### Code
* A template for creating TableViewAdapter, **shortcut:** `Table View Adapter`
Code
```swift
import UIKitprotocol <#Your#>TableViewAdapterOutput {
}final class <#Your#>TableViewAdapter: NSObject {
// MARK: - Propertiesprivate let output: <#Your#>TableViewAdapterOutput
private var items: [String]
private var tableView: UITableView// MARK: - Initialization and deinitialization
init(tableView: UITableView, output: <#Your#>TableViewAdapterOutput) {
self.output = output
self.tableView = tableView
self.items = []
super.init()
setupTable()
}// MARK: - Internal methods
func configure(with items: [String]) {
self.items = items
tableView.reloadData()
}// MARK: - Private methods
private func setupTable() {
tableView.delegate = self
tableView.dataSource = self
tableView.register(
UINib(nibName: String(describing: <#Your#>TableViewCell.self), bundle: nil),
forCellReuseIdentifier: String(describing: <#Your#>TableViewCell.self)
)
}
}// MARK: - UITableViewDataSource
extension <#Your#>TableViewAdapter: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(
withIdentifier: String(describing: <#Your#>TableViewCell.self),
for: indexPath
) as? TableViewCell
cell?.backgroundColor = .red
return cell ?? <#Your#>UITableViewCell()
}
}// MARK: - UITableViewDelegate
extension <#Your#>TableViewAdapter: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
}
```
* A code block for creating user property in UserDefaults extension, **shortcut:** `Defaults Key`
Code
```swift
var <#defaultsKey#>: <#Type#> {
get { return <#typeof#>(forKey: #function) }
set { set(newValue, forKey: #function) }
}
```
* A code block for layouting child view anchors equal to the parent view anchors, **shortcut:** `Constraints - layout child as parent`
Code
```swift
<#childView#>.translatesAutoresizingMaskIntoConstraints = falseNSLayoutConstraint.activate([
<#childView#>.topAnchor.constraint(equalTo: <#parentView#>.safeAreaLayoutGuide.topAnchor, constant: 0),
<#childView#>.bottomAnchor.constraint(equalTo: <#parentView#>.safeAreaLayoutGuide.bottomAnchor, constant: 0),
<#childView#>.leadingAnchor.constraint(equalTo: <#parentView#>.safeAreaLayoutGuide.leadingAnchor, constant: 0),
<#childView#>.trailingAnchor.constraint(equalTo: <#parentView#>.safeAreaLayoutGuide.trailingAnchor, constant: 0)
])
```
* A code block for user property creating in NSNotification.Name extension, **shortcut:** `NSNotification Name`
Code
```swift
static let <#notificationName#> = NSNotification.Name("<#projectName#>.notifications.<#notificationName#>")
```
* A code block for creating template comments for unit test, **shortcut:** `testtemplate`
Code
```swift
// given// when
// then
```
* A code block for creating template constants enum, **shortcut:** `Constants enum`
Code
```swift
// MARK: - Nested typesprivate enum Constants {
}
```
* A code block for creating keyboard notifications detector, **shortcut:** `Keyboard detector`
Code
```swift
func addKeyboardObservers() {
NotificationCenter.default.addObserver(self,
selector: #selector(keyboardWillShow),
name: UIResponder.keyboardWillShowNotification,
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(keyboardWillHide),
name: UIResponder.keyboardWillHideNotification,
object: nil)
}@objc
func keyboardWillShow(notification: NSNotification) {
guard
let frame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue
else {
return
}
}@objc
func keyboardWillHide() {}
```
### Author
Ivan Smetanin, [email protected]
### License
XcodeCodeSnippets is available under the MIT license. See the [LICENSE](https://github.com/ismetanin/XcodeCodeSnippets/blob/master/LICENSE) file for more info.