@Tishka17
Tishka17
17 Dec 2015

Теперь мне надо собеседовать iOS разработчиков. Срочно надо что-то почитать про разработку под неё.

17 Dec 2015

Спрашивай, чем iOS хуже, чем Andriod.

17 Dec 2015

mahury, давно уж. просто теперь решили гуевых айосовцев взять

#ickya/3 в ответ на /1
17 Dec 2015

да чо там читать то. вопросы везде стандартные:) ARC, модификаторы у пропертей и retain cycle, GCD, можно ли добавить свойство в категорию, вопросы про устройство Core Data, вопросы про пуши, их разновидности и подводные камни. ну и стандартные опять же задачки + тестовое задание

17 Dec 2015

Вот мне как человеку, который это не писал никогда, ни слова не понятно. Например, что у пушей есть разновидности я узнал только сейчас

#ickya/5 в ответ на /4
17 Dec 2015

если хочешь - могу тебе вкратце ликбез провести:) голосом или ссылками на почитать:)

#ickya/6 в ответ на /5
17 Dec 2015

пни меня после 8 вечера, я тебе накидаю ссылок:) щас просто весь в работе)

#ickya/8 в ответ на /7
18 Dec 2015

про ARC aka Automatic Reference Count лучше, чем вот в этой книге не наисано нигде https://yadi.sk/i/KOrGho1cdXGNq Сабж раскрывает всю подноготную, описывает как работают блоки (closures), что такое autorelease pool. Очень много мякотки, книгу читать можно вообще не имея больших познаний в обжцэ. Там же показаны примеры как это делалось с MRC aka Manual Reference Counting.
Про retain cycle там же можно прочесть, если вкратце, то это ситуация, когда память никогда не освобождается из за удержания ссылки на самого себы (обычно)

#ickya/10 в ответ на /9
18 Dec 2015

кстати там же и про CGD смачно расписано. CGD - это Grand Central Dispatch, технология яббла, абстрагирующая разработчика от работы с потоками. Вводится понятие dispatch queue, разработчику достаточно сложить в эту очередь блок, а дальше libdispatch сам разрулит его выполнение в одном из освободившемся потоке из пула. Так же содержит ряд апи по синхронизации между очередями и ресурсами (timers, I/O и т.д.)

#ickya/11 в ответ на /10
18 Dec 2015

щас поищу где получше инфу почитать про Core Data, но могу точно сказать, что есть набор джентельмена для яббл разрабов:
https://developer.apple.com - как ни смешно звучит, тут тонна инфы. Примеры кода, справка, лично я предпочитаю смотреть лекции с wwdc ( https://developer.apple.com/videos ), у них охуительно преподносится инфа, я её усваиваю оттуда лучше, чем от сухих доков.
https://www.objc.io/issues/ - грамотно пишут на самые разные тематики, книги хорошие, но продают)
http://nshipster.com - тут просто огромное количество высококачественной инфы от Matt Thompson, создателя одной из самых известных либ для ябблоразрабов - AFNetworking
http://www.raywenderlich.com/ - тут туториалы для самых маленьких
http://digest.mbltdev.ru - рассылка с линками на интересные статьи и проеты

с wwdc настоятельно советую отсмотреть 4-5 лекций по autolayout, если не поленюсь - скину линки в хронологическом порядке, какое когда смотреть. люди, понимающие autolayout будут верстать быстро и эффективно. ретроградов, делающих всё кодом сразу шли нахуй, это путь в никуда

#ickya/12 в ответ на /11
18 Dec 2015

блин, что-то я забыл, что читал по Core Data. По идее, поискать у рея, на хабре, инфы по идее тонна, выжимку дать ща не смогу. не помню)
Могу точно сказать, что кроме чистого Core Data обязательно следует посмотреть MagicalRecord и mogenerator. ну и NSFetchedResultsController ясен хуй

#ickya/14 в ответ на /13
18 Dec 2015

По пушам лучше библии инфы нет. https://developer.apple.com...pplePushService.html

Если вкратце - пуши в целом одинаковы. Это json payload размером в 256 байт <= ios7, 2KB в ios8 и 4 KB в ios9. У пушей можно указать время протухания и приоритет.
Дьявол в мелочах. Есть пуши с alert - они показываются юзеру на локскрине. Есть silent пуши, которые прилетают в апп и дают квант времени до 30 секунд, чтобы успеть стартовать фоновую загрузку. А есть начиная с ios8 ещё voip пуши - по сути обычные пуши, но у них уже на иос8 был размер в 4 кб, они практически с гарантированной доставкой и ещё у них, в отличие от обычных пушей, есть такая особенность, иос запускает апп в неинтерактивном режиме, если апп был схлопнут - идеально для звонилочных аппов.
Кроме вышеозвученных кейсов есть ещё один, который сейчас мало кто знает, но сам факт. Есть у яббла такая технология, как CloudKit, можно на яблосерверах замутить облачную бд. Так вот, уведомления об изменениях также приходят через пуши. Но яббл тут схитрил капитально: пуши (не voip) ябблом провозглашаются, как негарантированный канал передачи. Любой пуш может быть проёбан по ряду причин. Чтобы не проебать последовательность изменений, яббл на стороне системы копит эти самые пуши, пока апп не запущен и складывает их в Subscription Collection. И кормит в приложение уже пачечкой потом.

#ickya/15 в ответ на /14
18 Dec 2015

что ещё. по языку - тут я тебе ссылок покидать не покидаю особо. Всё по крупицам обычно собирается с wwdc, stackoverflow, да статеек разных. Могу посоветовать ресурс, https://mikeash.com/pyblog/. Майк Эш - это гуру 80 уровня, у него можно читать и читать, каждый выпуск в блоге - это жемчужина.

Про что могу посоветовать почитать: что такое class cluster, чем NSNumber отличается от других, обычных классов. Что делает модификатор dynamic у свойства (очень полезно для понимания работы Core Data). Что такое method swizzling, когда он нужен. Что ещё полезного есть в рантайме. Как можно использовать objc_getAssociatedObject в категориях.

#ickya/16 в ответ на /15
18 Dec 2015

Ну ещё соискателей можно погонять по SOLID, MVC, MVVM, VIPER. И это всё ещё не учитывая swift =) Для swift есть библия (переведена на русский если что) и уже тонна ресурсов. Если соискатель не интересуется свифтом сейчас - есть повод задуматься. Вроде всё пока, что вспомнил написал)

#ickya/17 в ответ на /16
18 Dec 2015

поскольку я давно никого не собеседовал, то сразу и не вспомню весь набор каверзных вопросов свой. спрашивай свои ответы, если где-то непонятно будет, попробую раскрывать сабж

#ickya/18 в ответ на /17
18 Dec 2015

Ух е. Мне это на полгода чтения

#ickya/19 в ответ на /18

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.