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
inekipelov / ios-questions-interview.md
Created May 23, 2021 17:20 — forked from arturlector/ios-questions-interview.md
Вопросы на собеседование iOS разработчика.

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

General:

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

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

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

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

//
// UIView+Extras.swift
// Clay Ellis
// gist.github.com/clayellis/0cf1b1092b6a08cb4c5b2da9abee5ed9
//
import UIKit
@objc public protocol ConfigurableView {
@objc optional func configure()
@inekipelov
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](https://www.swiftjectivec.com/a-best-in-class-app/), 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](https://github.com/DreamingInBinary/Spend-Stack/issues/120)
// The MIT License (MIT)
//
// Copyright (c) 2015 Suyeol Jeon (xoul.kr)
//
// 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
inekipelov / update-version.sh
Created September 18, 2020 08:34 — forked from jellybeansoup/update-version.sh
Script for Incrementing Version Numbers
#!/bin/bash
# Link: <https://gist.github.com/jellybeansoup/db7b24fb4c7ed44030f4>
#
# 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
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" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CGPDeviceCategory</key>
<string>GamePad</string>
<key>CGPDeviceType</key>
<string>Xbox</string>
<key>DeviceName</key>
<string>SteelSeries Nimbus</string>
@inekipelov
inekipelov / tmp-universal-framework.sh
Last active January 13, 2019 12:17
tmp-universal-framework
# Script below required run from Aggregate Xcode target
# Settings
FRAMEWORK_NAME=#HERE_YOUR_FRAMEWORK_NAME
SCHEME_NAME="${FRAMEWORK_NAME}"
RELEASE_DIR="${HOME}/Desktop/Frameworks"
# Constants
OBJROOT="${OBJROOT}/DependentBuilds" # After that, xcodebuild manages to build this target without issues with new build system introduced in Xcode 10.
UNIVERSAL_OUTPUTFOLDER="${RELEASE_DIR}/${CONFIGURATION}-universal"