Приватные методы разработки в iOS
На второй день VK Fest 5 на площадке VK Testers Антон Спивак, руководитель команды iOS-разработки, рассказал о приватных методах разработки в iOS. Мы приготовили для вас расшифровку этого выступления.
Сегодня поговорим про то, как сделать свой проект, как войти в iOS-разработку, как до конца завершить то, что вы начали делать и не потерять мотивацию.
Предположим, что вы хотите стать iOS-разработчиком и создать свой проект.
Не всё так просто.
Для начала давайте сформируем идею. Идея — это то, что будет сопровождать вас на протяжении всего проекта. Без идеи ничего не выйдет.
Идея есть. Можно открыть XCode и начать программировать? Нет, рано. Теперь вам нужна цель. Сперва кажется, что идея и цель идут и находятся вместе, но опять же — нет. На самом же деле это немного разные вещи. Идея — это что-то абстрактное, а цель — это то, зачем вы это делаете, зачем вам нужен этот проект (помимо желания научиться программировать под iOS).
Цель должна быть:
- Конкретной. Например, «Я хочу заработать $1000».
- Измеримой.
- Достижимой (не факт).
Зачем цель? Чем она поможет? Цель поможет:
- Отбросить лишнее.
- Не забросить проект.
- Разделить задачи на куски и получить цельный проект в итоге.
Теперь можно уже открыть XCode и начать программировать? Нет. Далее по списку идёт прототип интерфейса, но зачем?
Пришло время открывать XCode. Поiхали!
Первый вопрос, который перед нами встает: Swift или Objective-C? Это два языка, которые, вроде как, про разное, а вроде — одно.
Swift:
- Прост в изучении
- Богатый синтаксис
- Apple его любит
Objective-C:
- Никогда не будет забыт
- Богатый runtime
- Интересный синтаксис ]]
В общем, абсолютно не важен язык, на котором вы собираетесь что-то делать. Выбирайте тот, который ближе к вашей душе и больше нравится. Просто выберите язык и начните делать.
Storyboards, XIB или код?
ВКонтакте мы пишем всё кодом, но на это есть определенные причины и я бы не советовал делать это так сразу с ходу. Поговорим про них раздельно.



Когда вы всё пишете кодом — это, ясное дело, сложнее, и нужно больше думать. Но при этом вы всегда будете четко понимать, что и где происходит. Именно поэтому мы ВКонтакте использовали именно этот подход, хоть он и более трудоёмок, но может гарантировать лучшие результаты.
Сторонние библиотеки?
Сторонние библиотеки — это очень круто и полезно. Огромный плюс таких библиотек — вы всегда можете посмотреть, как программно реализовывается нужная вам вещь. Если вам нужна какая-то функциональность и она уже написана кем-то, то не нужно писать дважды. Просто возьмите готовое решение и используйте его у себя.
Расскажем про патерны проектирования приложения.
Model-View-Controller (MVC) любят далеко не все, но любит Apple. Многие не согласятся, что он гибкий, но я скажу так. MVC больше про UI.
MVVM
И тут то же самое, как про MVC. Он вроде как гибкий, но тоже имеет свои определённые минусы, потому что очень легко превратить свой код в мешанину из зависимостей и бинбингов. Это тоже хороший подход, но его нужно уметь грамотно использовать.
В какой-то момент говорили, что VIPER — это решение всех ваших проблем. Опять же, он гибкий, но там очень много кода, а это наш первый проект. Конечно, хочется сразу написать всё супер красиво и здорово, но вы просто не допишите свой проект. VIPER — это здорово, но начинать с него не нужно.
По итогу мы всё равно придём к такой картине:
Полную версию выступления вы можете посмотреть ниже:
The Brown Room — независимое интернет-издание про социальные сети и современные технологии.
Автор: Сергей Котов
Редактор: Арсений Метелев
Фото: VK Testers
