Popularity
1.3
Stable
Activity
0.0
Stable
34
4
6

Programming language: Shell
License: MIT License
Tags: Xcode     Other Xcode    

XcodeCodeSnippets alternatives and similar libraries

Based on the "Other Xcode" category.
Alternatively, view XcodeCodeSnippets alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of XcodeCodeSnippets or a related project?

Add another 'Other Xcode' Library

README

PRs Welcome

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
    import UIKit

    protocol <#Your#>TableViewAdapterOutput {
    }

    final class <#Your#>TableViewAdapter: NSObject {
        // MARK: - Properties

        private 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
    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
    <#childView#>.translatesAutoresizingMaskIntoConstraints = false

    NSLayoutConstraint.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
  static let <#notificationName#> = NSNotification.Name("<#projectName#>.notifications.<#notificationName#>")
  • A code block for creating template comments for unit test, shortcut: testtemplate Code
  // given

  // when

  // then

  • A code block for creating template constants enum, shortcut: Constants enum Code
    // MARK: - Nested types

    private enum Constants {

    }
    ```

   </details>

* A code block for creating keyboard notifications detector, **shortcut:** `Keyboard detector`
  <details>
  <summary>Code</summary>
  <br>

   ```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 file for more info.


*Note that all licence references and agreements mentioned in the XcodeCodeSnippets README section above are relevant to that project's source code only.