Skip to content

Instantly share code, notes, and snippets.

View arturlector's full-sized avatar

Artur Igberdin arturlector

  • Kazan
View GitHub Profile
@shaps80
shaps80 / ReusableCell.swift
Created July 25, 2018 10:29
Type-safe Swift 4+ wrapper around UITableView and UICollectionView cells, supplementary and decoration views.
import UIKit
/**
* Represents a general 'cell' type to provide conformance for UITableViewCell and UICollectionViewCell
*/
public protocol ReusableCell: class {
static var reuseIdentifier: String { get }
}
extension ReusableCell {
@cprovatas
cprovatas / Data+PrettyPrint.swift
Created May 23, 2018 15:52
Pretty print JSON string from Data in Swift 4.1 (especially useful printing to Xcode console)
import Foundation
extension Data {
var prettyPrintedJSONString: NSString? { /// NSString gives us a nice sanitized debugDescription
guard let object = try? JSONSerialization.jsonObject(with: self, options: []),
let data = try? JSONSerialization.data(withJSONObject: object, options: [.prettyPrinted]),
let prettyPrintedString = NSString(data: data, encoding: String.Encoding.utf8.rawValue) else { return nil }
return prettyPrintedString
}

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

Полиморфизм — возможность объектов с одинаковой спецификацией иметь различную реализацию. Пример: Класс или интерфейс геометрических фигур (эллипс, многоугольник) может иметь методы для геометрических трансформаций (вычисление площади, смещение, поворот, масштабирование).

инкапсуляция - языковой механизм ограничения доступа к определённым компонентам объекта

@arturlector
arturlector / ios-questions-interview.md
Last active February 25, 2024 18:44
Вопросы на собеседование iOS разработчика.

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

General:

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

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

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

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

### Совершенный код
* [Идеальный программист](http://www.ozon.ru/context/detail/id/7360633/) (Роберт Мартин)
* [Совершенный код](http://www.ozon.ru/context/detail/id/5508646/) (С. Макконнелл)
* [Программист-прагматик. Путь от подмастерья к мастеру](http://www.ozon.ru/context/detail/id/3353337/) (Э.Хант, Д.Томас)
* [Паттерны проектирования](http://www.ozon.ru/context/detail/id/6108824/) (Э. Фримен, Э. Фимен, К. Сьерра, Б. Бейтс)
* [Приемы объектно-ориентированного проектирования. Паттерны проектирования](http://www.ozon.ru/context/detail/id/2457392/) (Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес)
* [Чистый код](http://www.ozon.ru/context/detail/id/6733562/) (Роберт Мартин)
* [Принципы, паттерны и методики гибкой разработки на языке C#](http://www.ozon.ru/context/detail/id/5800704/) (Р.С.Мартин, М.Мартин)
* [Рефакторинг с использованием шаблонов](http://www.ozon.ru/context/detail/id/2909721/) (Джошуа Кериевски)
@nickbauman
nickbauman / ios_imperatives_for_approval.md
Last active November 1, 2019 12:10
Condensed iOS Human Interface Guidelines, formulated as imperatives.

Condensed iOS Human Interface Guidelines

Imperatives for AppStore approval

For iPhone app developers. Emphasis on getting the fastest app store approval. Everything stated as suggestion made into an imperative. When "violating" these imperatives, you can check for yourself what the caveats are. Generally speaking, deviating will more likely cause your app to be hung up in approval.

You can read this entire document in about 20 minutes. This is faster than reading and understanding the entire Human Interface Guidelines.

Overview

@luvtechno
luvtechno / cocoapods_rank.md
Last active June 11, 2019 14:40
CocoaPods Rank
@hpique
hpique / OSX10.9-notifications.h
Created December 31, 2013 15:13
List of all public notifications in OSX 10.9 (or at least those whose constants are properly named).
// Accounts.framework/Headers/ACAccountStore.h
ACCOUNTS_EXTERN NSString * const ACAccountStoreDidChangeNotification NS_AVAILABLE(10_8, 5_0);
// AddressBook.framework/Headers/ABGlobals.h
extern NSString * const kABDatabaseChangedNotification;
extern NSString * const kABDatabaseChangedExternallyNotification;
// AddressBook.framework/Headers/ABPeoplePickerView.h
extern NSString * const ABPeoplePickerGroupSelectionDidChangeNotification AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER;
extern NSString * const ABPeoplePickerNameSelectionDidChangeNotification AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER;
@nasirkhan
nasirkhan / git command.markdown
Last active May 12, 2022 03:17
`git` discard all local changes/commits and pull from upstream

git discard all local changes/commits and pull from upstream

git reset --hard origin/master

git pull origin master

@dautermann
dautermann / ObjCLinkedList
Created November 13, 2012 19:11
LinkedList implementation in Objective C
// instructions for actually running & trying this out are at the bottom of this file...
@interface LList : NSObject
{
NSInteger _currentValue;
LList * _next;
}
- (void) insert: (NSInteger) valueToInsert;
- (void) printValue;