Сегодня я прозрел как разработчик iOS приложений, спустя год после начала разработки под эту платформу, и решил с вами поделиться этим. Наверное, это прозрение, этот момент, наступает, когда разработчик уже ознакомился в целом почти со всеми возможностями нативных(родных) фреймворков от Apple.
Повторное использование кода существенно ускоряет разработку. Вообще, ООП (объектно-ориентированное программирование) изначально создавалось с такой идеей, чтобы разработчики могли так же, как инженеры, создавать программы из готовых блоков, либо, по крайней мере, создавать блоки, которые были бы reusable, то есть повторно используемыми. Это одна из причин, почему просмотр Open Source проектов важен. Он позволяет увеличить собственную библиотеку повторно используемых компонентов и ускорить процесс разработки не только за счет нативных фреймворков и собственного кода, но и за счет плодов программистов со всего мира. Кроме того, за тот же срок можно сделать более интересный и качественный продукт, если использовать готовый код. А чем ты профессиональнее и чем быстрее и качественнее ты создаешь продукты, тем больше и твоя компенсация.
В тесте Yandex’а для iOS-разработчиков есть вопрос – есть ли у Вас GitHub аккаунт. Я некоторое время не мог понять, почему он так важен и обязателен.
Кроме этого, моему прозрению предшествовали многочисленные собеседования, которые я проходил. На одном из них у меня спросили, использую ли я Three20 – бесплатную Open Source библиотеку от создателя приложения для Facebook. Потом, спустя 4 месяца, я ее скачал с GitHub и изучил. Также я скачал и стал применять библиотеку MBProgressHUD, которая позволяет показывать волчок, а сам долгий процесс запускать в параллельном потоке. Также я только по необходимости скачивал оттуда MailCore.
Все это привело меня к тому, чтобы завести себе в нем аккаунт и серьезно его изучить. После этого я понял, что в нем есть много всего полезного для разработчика и разработчик, который там не зарегистрирован и постоянно его не просматривает, не может считаться продвинутым в полном смысле.
В GitHub выкладывают очень много Open Source проектов, в том числе и на Objective-C (там их целых 2 процента и этот язык там на 10 месте по популярности). Многие проекты представляют огромную ценность, так как в них реализованы интересные фичи, приемы, контролы и т.д.
Например, я скачал с GitHub 4 проекта, которые были популярны сегодня. Первый позволяет отображать PDF c кучей контролов и читать его с удобством (Reader), второй – показывает различные View как Pop up с разной анимацией (MJPopupViewController), третий позволяет легко записывать видео из приложения (cam), четвертый представляет из себя по сути горизонтальный Table View (FantasyView).
В GitHub есть разделы по разным языкам и кроме этого, есть сортировка по количеству бранчей и закачек. Также, в GitHub можно посмотреть самые популярные по просмотрам проекты за день, неделю, месяц и все время. А еще – самые популярные по бранчам.
Я решил теперь для себя, что буду просмотривать раздел, связанный с Objective C, регулярно, даже без необходимости, просто чтобы увидеть, что делают другие и как делают. Ну и по возможности выложу что-нибудь свое. Пока из существенного я выложил только свою программу на C# для заполнения Excel данными из википедии (ExcelFiller).
По аналогии, буду также просматривать Open Source раздел Google, Apple и других компаний. Все, что я здесь написал, относится не только к GitHub и не только к Objective C. Просто с них я начал.
Еще, хотелось бы добавить, для разработчика iOS важны OpenSource проекты не только на Objective C, но и на C++/C. Например, я как-то использовал ZXing и ZBar для распознования штрих-кодов.
Напоследок несколько ссылок для быстрого доступа:
Раздел GitHub на Objective C
Топовые GitHub проекты под iOS
Мой собственный аккаунт на GitHub
Google Open Source
Sample Code для разработчиков Apple
Проекты на SourceForge под iOS, наиболее популярные