Skip to content

Instantly share code, notes, and snippets.

View inekipelov's full-sized avatar
Working from home

Roman Nekipelov inekipelov

Working from home
View GitHub Profile
inekipelov /
Created May 23, 2021 17:20 — forked from arturlector/
Вопросы на собеседование iOS разработчика.

Вопросы на собеседование iOS разработчика (дополненное издание):


  • Что такое полиморфизм?

  • Что такое *инкапсуляция? Что такое *нарушение инкапсуляции?

  • Чем абстрактный класс отличается от интерфейса?

  • Расскажите о паттерне MVC. Чем отличается пассивная модель от активной?

// UIView+Extras.swift
// Clay Ellis
import UIKit
@objc public protocol ConfigurableView {
@objc optional func configure()
inekipelov / Best in Class iOS Checklist
Created May 23, 2021 14:11 — forked from DreamingInBinary/Best in Class iOS Checklist
This is a public checklist updated every year after the latest version of iOS and iPadOS are shipped. It's a boiled down version of a "Best in Class" app checklist created by Jordan Morgan.
# A Best in Class Checklist
A boiled down checklist adapted from this [post](, created by @jordanmorgan10.
> To use this, create a Github Issue in your own repo, and simply copy and paste this text.
## iOS Core Technology
_Things any iOS app can benefit from_
- [ ] iCloud Sync
- [ ] [Core Spotlight integration](
// The MIT License (MIT)
// Copyright (c) 2015 Suyeol Jeon (
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
import Foundation
enum AssociatedObject {
/// Wrapper for Associated Objects that allows us to use Swift value types.
internal final class Wrapper<T>: NSObject, NSCopying {
let value: T
init(_ value: T) {
self.value = value
import Foundation
class AsyncOperation: Operation {
public enum State: String {
case ready, executing, finished
fileprivate var keyPath: String {
return "is" + rawValue.capitalized
H: (Horizontal) //horizontal direction
V: (Vertical) //vertical direction
| (pipe) //superview
- (dash) //standard spacing (generally 8 points)
[] (brackets) //name of the object (uilabel, unbutton, uiview, etc.)
() (parentheses) //size of the object
== equal widths //can be omitted
-16- non standard spacing (16 points)
<= less than or equal to
>= greater than or equal to
inekipelov /
Created September 18, 2020 08:34 — forked from jellybeansoup/
Script for Incrementing Version Numbers
# Link: <>
# A command-line script for incrementing build numbers for all known targets in an Xcode project.
# This script has two main goals: firstly, to ensure that all the targets in a project have the
# same CFBundleVersion and CFBundleShortVersionString values. This is because mismatched values
# can cause a warning when submitting to the App Store. Secondly, to ensure that the build number
# is incremented appropriately when git has changes.
inekipelov / SteelSeriesNimbus.plist
Last active September 18, 2020 09:19
Feral Interactive setup plist for SteelSeries Nimbus
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
<string>SteelSeries Nimbus</string>
inekipelov /
Last active January 13, 2019 12:17
# Script below required run from Aggregate Xcode target
# Settings
# Constants
OBJROOT="${OBJROOT}/DependentBuilds" # After that, xcodebuild manages to build this target without issues with new build system introduced in Xcode 10.