Цитата: как дизайнер изучил код и выпустил эпп за 4 месяца
Интерфейсный дизайнер из Венгрии Золтан Хоссу (Zoltan Hosszu) рассказал о том, как выучил язык программирования Swift с нуля и выпустил приложение для OS X за 4 месяца.
«Окей, буду честным. Я начал изучать Swift 4 месяца назад, когда уже знал некоторые языки программирования. Однако никогда не делал родного приложения для какой-либо платформы. Сейчас понимаю, что понятия не имел, с чем мне придётся столкнуться... <...>
В 2011 году мой [личный] сайт здорово поднялся. Макет попал на DeviantArt (вероятно, в подборку Daily Deviations. — Прим. ред.), и я с волнением проверял посещаемость каждый день. Но немного расстроился. Не из-за посещаемости, а из-за того, что не могу быстро её проверить. Тут есть два варианта: либо возиться с Google Analytics, либо найти простое приложение, которое мне поможет. Я начал искать.
Но решения были либо слишком занудными и уродливыми, либо не давали нужных данных. Будучи дизайнером, я нарисовал макет лучшего решения и выложил его на Dribbble. Пара дюжин лайков заставили меня копаться в теме дальше. Я узнал, что виджеты [для OS X] это по сути приложения на HTML и JavaScript, поэтому решил поработать серьёзнее, поскольку знал оба этих языка.
Рабочий прототип запустился в панели управления через пару дней. Я назвал его GAget, как акроним от виджета Google Analytics (Google Analytics widget). Вышел виджет примерно через две недели, в августе 2011 года. Число отзывов просто ошеломляло: MacStories, SwissMiss, куча блогов поменьше рекомендовали GAget. Про меня даже написали в венгерской версии журнала PC World.
Руководства из книг вели
в никуда
ЗОЛТАН ХОССУ
Дизайнер интерфейсов
Но когда Apple выпустила Yosemite и закрыла Dashcode, GAget ожидало весьма мрачное будущее. <...> [Тогда] я начал читать документацию Apple по тому, что сегодня называется расширениями. Но все они были на Objective-C. Тьфу! Работать с компилирующей программой, потерями памяти и многопотоковыми процессами не хотелось. Это звучит пугающе, если вы никогда раньше таким не занимались. Самой большой проблемой было то, что я понятия не имел, с чего начать.
Я купил книгу о разработке для iPhone на Objective-C, но сдался, прочитав пару глав. Буду честным, для того, кто знаком с фроненд-языками и немного с PHP, Objective-C кажется слишком запутанным. Посмотрите на этот код:
@interface ReminderViewController()
@property (nonatomic, weak) IBOutlet UIDatePicke
r *datePicker;
@end
Что может “interface”? Чем является “property”? Что значат “nonatomic” и “weak”? Что, чёрт возьми, здесь делают @ и *? Я понял, что это конец!
Руководства из книг вели в никуда. После нескольких недель борьбы я не стал ближе к родному приложению. Тогда вспомнил, что Apple вместе с Yosemite представила новый язык программирования Swift. Он был новым для всех, поэтому многие гуру начали писать о нём, обсуждать, почему он отстойный и как нужно изучить Objective-C прежде, чем трогать Swift. Весь этот шум заставил меня обратить на него внимания. Я скачал и начал читать документацию.
Это было как лёгкий бриз. Код начал выглядеть знакомо, как чуть более сложный JavaScript. Я запустил Xcode и начал копировать то, что люди показывали в инструкциях.
Моей целью был виджет для OS X. Но большинство руководств были или о самом Swift, или о приложениях для iPhone. Я собрал и выложил подборку ссылок, которые нашёл полезными. Они могут помочь и вам, если начинаете программировать для iOS и OS X. <...>
[Во время] работы я узнал, что конкретный дэдлайн может дать много мотивации. Каждый Новый год мы с женой садимся и делаем список того, чего хотим достичь в следующем году. В последний раз я указал, что хочу выпустить новую версию GAget в конце января. Это был мой дэдлайн. Несмотря на то, что я вышел из него на месяц (спасибо процессу одобрения в App Store и сторонним проектам), я всё равно напряжённо трудился в январе и вычеркнул пункт из списка. Записанный на листе бумаги, он является мощным мотиватором.
Я также выяснил, что во время обучения циклично наступают три фазы: волнение, борьба и решение.
Фаза волнения: все начинают с неё. Есть новые идеи, изучаете новые штуки, это выглядит многообещающе и интересно, что из него получиться дальше. Вы мотивированы и хотите экспериментировать с тем, что знаете, но, в конце концов, достигаете предела знаний.
Фаза борьбы: вы сталкиваетесь с первой проблемой, волнение и мотивация начинают падать. Понятия не имеете, что и как нужно искать. В отчаянии, каждый раз, когда ищете ответ на третьей странице Google.
Фаза решения: наконец-то! Вы решили противную проблему. Начинаете работать быстрее, снова чувствуете себя взволнованным и мотивированным. Возвращаетесь к первой фазе. Каждый раз, когда начинаете, помните: этап борьбы может быть долгим и разочаровывающим, но решение есть. Найти его — часть всего веселья».
Комментарии
Подписаться