Как стать автором
Обновить

Комментарии 7

в п.9 серьёзная ошибка. Должно быть:
weak var delegate: FireStationDelegate?
ну и
protocol FireStationDelegate: AnyObject
Спасибо большое! Исправил.
А есть такое же, но для Android?
Читать напряжно, но это то что мне сейчас нужно! Спасибо!
Список ни о чем. Надо переименовать в «14 вещей в разработке для ios, про которые знает лично автор».

Системы контроля версий зачем-то приписаны. Ну ок, тогда точно нужен xcode, а еще нужен itunes connect. Можно еще инструменты вроде фастлейна, дженкинса, etc приписать — тоже ведь нужны.

Почему-то нужно знать геолокацию и локализацию, а про сетевые запросы нет.
Почему-то надо знать про протоколы и замыкания, а про дженерики не надо? А вывод типов надо или можно не знать? А про перечисления, кортежы, массивы, словари? ARC/MRC?

То что написано про разницу Swift и ObjC — это ни о чем. Эти языки различаются гораздо серьезнее. Хотя бы про рефлексию, наследование от NSObject/NSProxy, разницу value и reference типов написали бы (да и еще целая куча всего на самом деле). Некоторые вещи в свифте тупо нельзя сделать, хотя на обже они тривиальны. А еще со свифтом можно много удивительного словить, т.к. язык все еще активно меняется и на это будешь время тратить.

Про сториборды чушь написана. Можно хоть на каждый экран по сториборду сделать. Их проблема в том, что их читать в текстовом виде сложно, они почти не конфигурируются (нельзя задать отступы/цвета/шрифты в сториборде переменной, которые из конфига где-то сами вытащатся, надо это через код делать). Переходы между экранами тоже толком через сториборд не настроишь, придется код писать. В итоге плюсов от них в большом проекте остается мало, а ошибок может быть много.
Про SwiftUI ничего нет.
Надеюсь, эта статья была полезна!

Нет. В статье ничего полезного нет. Просто набор некоторых слов и терминов из ios разработки никак толком не раскрытых. Ни сама статья не нужна, ни, тем более, перевод.
Спасибо за критику.
Тем не менее, думаю, что статья будет полезна некоторым начинающим разработчикам (в особенности – тем, кто впервые знакомится с языком через документацию или курсы).
Системы контроля версий зачем-то приписаны. Ну ок, тогда точно нужен xcode, а еще нужен itunes connect.

Будем честны, обойтись без Xcode в процессе изучения Swift нельзя. Но ни в официальной документации, ни в большинстве онлайн-курсов (по личному опыту говорю) не рассказывается о контроле версий и о подходах к нему. Я рад, что вы знаете о системах контроля версий. Но для многих новичков это что-то далекое и непонятное, освоение чего, на их взгляд, можно отложить на потом.
Почему-то нужно знать геолокацию и локализацию, а про сетевые запросы нет.

Спасибо. Не спорю, в статье нет многих важных понятий. Буду рад, если в комментариях список продолжится.
Почему-то надо знать про протоколы и замыкания, а про дженерики не надо? А вывод типов надо или можно не знать? А про перечисления, кортежы, массивы, словари?

Есть базовые знания, базовые конструкты, которые плюс-минус одинаковы в большинстве языков. К ним можно отнести массивы, перечисления, кортежи и словари (хотя уже с оговорками), дженерики тоже. Но это база, которая затрагивается абсолютно в любых источниках, по которым изучают ЯП – будь то Swift, C++, Java, или (почти) любой другой. Особенности работы с протоколами, равно как и упрощения в синтаксисе замыканий, не относятся к настолько базовым знаниям, как приведения типов или алгоритмы сортировки. По крайней мере, на мой взгляд (и, кажется, на взгляд автора).
ARC/MRC?

Опять же, спасибо. Несправедливо упущенный момент.
То что написано про разницу Swift и ObjC — это ни о чем. Эти языки различаются гораздо серьезнее. Хотя бы про рефлексию, наследование от NSObject/NSProxy, разницу value и reference типов написали бы

Забавно, но быстрый поиск в гугле выдал примерно то же, что написано в этой части статьи – про скорость, типобезопасность, читаемость и т.д. Спасибо за информацию.
А еще со свифтом можно много удивительного словить, т.к. язык все еще активно меняется и на это будешь время тратить.

Думаю, по причине постоянного развития Swift автор и не стал упоминать про обратные отличия. Хотя это и дает однобокий взгляд на эти два языка, немалая часть проблем в Swift 3 (актуальной на момент публикации оригинальной статьи) решена к релизу пятой версии.
Про сториборды чушь написана. Можно хоть на каждый экран по сториборду сделать.

Использование сторибордов ударяет не по производительности конечного приложения, а по скорости работы Xcode, а также по скорости разработки приложения: отсутствие реюзабилити и неудобность работы со Storyboards в команде (если честно, о последнем знаю только с чужих слов, но об этой проблеме указано и в статье, «Проблемы слияния возникают гораздо чаще...»). Не понимаю, что из этого является чушью.
Про SwiftUI ничего нет.

Прошу обратить внимание на тег «Swift 3». На момент публикации статьи SwiftUI не был анонсирован. Но прошу извинить, что не указал версию во вступлении, сейчас исправлюсь.
Ни сама статья не нужна, ни, тем более, перевод.

Не сомневаюсь, что, начиная с уровня Middle, программисту будет сложно найти что-то полезное в этой статье. Однако она ориентирована сугубо на тех, кто начинает изучение Swift.

Еще раз спасибо за критику.
Будем честны, обойтись без Xcode в процессе изучения Swift нельзя. Но ни в официальной документации, ни в большинстве онлайн-курсов (по личному опыту говорю) не рассказывается о контроле версий и о подходах к нему. Я рад, что вы знаете о системах контроля версий. Но для многих новичков это что-то далекое и непонятное, освоение чего, на их взгляд, можно отложить на потом.

Они правы, это можно отложить на потом. К iOS разработке как таковой это имеет опосредованное отношение.
Да и в заголовке не сказано, что речь про то, что нужно новичку в первую очередь изучить. Заголовок говорит о том, что должен знать iOS разработчик.
Спасибо. Не спорю, в статье нет многих важных понятий. Буду рад, если в комментариях список продолжится.

В рамках такой статьи список будет бесконечным. Вы можете сразу всю документацию к Cocoa Touch фреймворку, к Swift и Objective-C сюда перенести. А еще можно копнуть в паттерны, архитектуры, алгоритмы и структуры данных. Можно CI/CD копнуть. Можно напомнить про SOLID, про DI. Можно пойти по известным фреймворкам (хотя у вас уже про RX есть, а про Swinject, Alamofire, Realm — нет).
Есть базовые знания, базовые конструкты, которые плюс-минус одинаковы в большинстве языков. К ним можно отнести массивы, перечисления, кортежи и словари (хотя уже с оговорками), дженерики тоже. Но это база, которая затрагивается абсолютно в любых источниках, по которым изучают ЯП – будь то Swift, C++, Java, или (почти) любой другой. Особенности работы с протоколами, равно как и упрощения в синтаксисе замыканий, не относятся к настолько базовым знаниям, как приведения типов или алгоритмы сортировки. По крайней мере, на мой взгляд (и, кажется, на взгляд автора).

Так вы напишите, например, статью про особенности протоколов в Swift. В статье вообще никакой особенности протоколов нет. Интерфейсы/протоколы почти во всех языках есть. Замыкания/анонимные функции тоже почти везде есть. И те же массивы в Obj-C и Swift друг от друга отличаются и в других языках разница бывает.
А система контроля версий в других языках не используется? Для каких новичков статья в итоге то? У которых есть бекграунд других языков или нет?
Забавно, но быстрый поиск в гугле выдал примерно то же, что написано в этой части статьи – про скорость, типобезопасность, читаемость и т.д. Спасибо за информацию.

Так это все общие фразы, никакой конкретики. А вы копируете этот информационный мусор, который по сути ничего не говорит.
Думаю, по причине постоянного развития Swift автор и не стал упоминать про обратные отличия. Хотя это и дает однобокий взгляд на эти два языка, немалая часть проблем в Swift 3 (актуальной на момент публикации оригинальной статьи) решена к релизу пятой версии.

А немалая часть — не решена. Из статьи не видно, что вообще проблемы есть. Если брать третий свифт, то статья просто была вредной, т.к. человек мог выбрать глючную технологию и потерять из-за этого деньги/время.
Использование сторибордов ударяет не по производительности конечного приложения, а по скорости работы Xcode, а также по скорости разработки приложения: отсутствие реюзабилити и неудобность работы со Storyboards в команде (если честно, о последнем знаю только с чужих слов, но об этой проблеме указано и в статье, «Проблемы слияния возникают гораздо чаще...»). Не понимаю, что из этого является чушью.

Я про производительность ничего, вроде, не писал :) По скорости работы XCode бьют большие сториборды, но они сами по себе антипаттерн. Реюзабельности можно спокойно добиться с ними, если в них ничего не хардкодить. Проблем с конфликтами слияний с ними минимум (у меня большой опыт в этом плане), если соблюдать порядок в работе с системой контроля версий, выделять под разные цели разные сториборды, синхронизироваться по задачам в команде. Чтобы в сториборде была хорошая визуализация экрана (понятная дизайнеру), нужно дополнительно возиться, обычно, там визуально всякие прямоугольники накиданы.
Еще раз — это не проблемы. Настоящая проблема в том, что они не избавляют от необходимости писать код. Они по факту сокращают код на настройку констреентов (и то все равно руками придется с ними работать на чуть более сложных экранах), добавлении вьюх, на настройке сайз классов. В итоге: на простых экранах сториборды хорошо работают (но их и кодом сверстать просто), а на сложных экранах все равно придется верстку кодом настраивать и мы имеем дополнительный сложночитаемый ресурс с версткой. Вот поэтому в сложных проектах их не используют.
Прошу обратить внимание на тег «Swift 3». На момент публикации статьи SwiftUI не был анонсирован. Но прошу извинить, что не указал версию во вступлении, сейчас исправлюсь.

А я обратил внимание. Только что это меняет? Вот есть сегодняшний день и актуальные технологии и вы публикуете статью (хоть и перевод). Статья, вроде как, практическую ценность должна иметь именно на сегодняшний день. А тут, получается, неактуальная, неполная, несистематизированная информация.
Не сомневаюсь, что, начиная с уровня Middle, программисту будет сложно найти что-то полезное в этой статье. Однако она ориентирована сугубо на тех, кто начинает изучение Swift.

Мой поинт в том, что статья не будет полезна никому. Просто по отношению кол-ва знаков к практической ценности можно легко найти гораздо полезнее материал в гугле. Банально даже дока эпла и свифтбук, какой-нибудь. Приложения на iOS уже многие годы пишут, материала полно, как это делается. Ваша статья все-равно не отвечает толком на вопросы новичков.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории