Wednesday, December 5, 2012

Хочешь быть iOS разработчиком? Будь им! http://habrahabr.ru/post/149090/

http://habrahabr.ru/post/149090/

5 августа 2012 в 22:57

Хочешь быть iOS разработчиком? Будь им! 


На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.
Глава 1. Начало.
Все началось с того, что я, и еще несколько ребят выбрали в качестве учебного проекта разработку приложения под Ipad. В процессе поиска было найдено руководство от Apple, в котором компания подробно расписала основные положения и особенности разработки под свои платформы. 
В качестве языка был выбран Objective-C. Вначале Objective-C вызвал небольшое удивление, но распробовав, он пришелся по вкусу:

Xcode также выглядел угрожающе. Но эти видеоуроки помогли в нем освоиться и разобраться.
Глава 2. Основы.

Глава 3. Базы данных.
Глава 4. Работа со звуком: приготовьтесь, будет громко!

Глава 5. Анимация: делаем это красиво.
Глава 6. Работа с сетью

Глава 7. Кастомизация элементов.


Глава 8. Тестирование: делаем качественный продукт.
Глава 9. Локализация: готовимся к завоеванию мира.
Глава 10. Для дизайнеров.
Глава 11. In-App Purchases: монетизация, монетизация, монетизация!
Глава 12. Разное.

И отдельно стоит упомянуть:

комментарии (38)

6 августа 2012 в 06:20#
И опять не хватает CocoaPods! Впервые узнал о нем как раз в статье «Крутая подборка различных библиотек...», точнее в комментариях к этой статье.

Это нужно добавить или в основы или в разное, или отдельным пунктом «менеджер пакетов», например, с жирной пометкой must have.

Как говорится, попробовал один раз и уже не представляю себе жизни без cocoapods. Есть свои небольшие недостатки, но они не критичные, к тому же проект очень активно развивается, и все больше и больше разработчиков добавляют podspecs в свои github репозитории, а еще чаще это делает кто-то из сообщества.
+1
DedalX,6 августа 2012 в 17:03#
Не совсем понял как он работает (почитав на сайте) и что именно делает. Если у меня несколько библиотек в проекте используют reachabillity к примеру (и это приводит к конфликту при компиляции), это программа сможем сама выключить повторяющиеся библиотеки где нужно?
+3
i4niac,6 августа 2012 в 18:09#
Попробую объяснить.

Как оно работает и что делает.
После установки cocoapods (это ruby gem), в папке с проектом вы создаете Podfile — файл, в котором перечисляете все поды (библиотеки), которые хотите использовать. Например Podfile может быть таким
#Pods
platform :ios, :deployment_target => '4.0'
pod 'FlurrySDK'
pod 'Facebook-iOS-SDK'
pod 'TestFlightSDK'
pod 'Reachability', '~> 3.0.0'
pod 'CocoaLumberjack'

После команды pod install [xcode-project-name] cocoapods вытащит весь нужный код для каждого пода из git репозиториев, создаст в вашем workspace (нужно создать заранее) проект Pods, в котором сгенерирует все что нужно (конфигурации, пути для поиска .h файлов и либ, флаги компиляции и линковки), также добавит необходимые флаги, пути и инструкции в ваш исходный проект.

Вы можете настраивать все нужные вам параметры, например указать что данный под нужен какой-то конкретной версии, как Reachability в этом примере, и т.д.

Проблема зависимостей тоже решена за вас, в этом примере Facebook SDK использует другой под — SBJson, эта зависимость прописана в podspec файле Facebook SDK. SBJson нужной версии будет автоматически добавлен в число подов.

После этого у вас все 3rd party библиотеки будут лежать и собираться отдельно, в результате получается библиотека libPods, которая слинкуется с вашим главным target.

Удобства? Да много их. Забудьте про ручную операцию «скачать последнюю версию, распаковать, добавить файлы в проект, убедиться что старая версия подчищена». Ну или если вы это как-то автоматизировали, cocoapods предлагает новый способ автоматизации, работающий для огромного числа полезных библиотек. Получить последний код теперь можно одной простой командой 'pod install', все. Использовать конкретную версию либы — просто, изменил Podfile, выполнил 'pod install'. Опять же, вопрос зависимостей тоже решен, если один под использует другой под, cocoapods обо всем позаботится.

Насчет вашего конкретного примера, если несколько библиотек прямо внутри себя содержат один и тот же код Reachability, то это, скажем, неправильные библиотеки. Или они все вместе должны использовать отдельную либу Reachability, или по особенному называть свою имплементацию, как, например, в AddThis есть ATReachability, чтобы не было конфликтов при компиляции. В cocoapods вообще есть как минимум 2 либы для reachability, одна из них это чуть доработанный код из примеров Apple, в котором такие же имена классов и методов (эта либа есть в моем примере).

Это более менее поверхностное объяснение, но уже из этого примера видно, насколько можно облегчить себе жизнь.

Есть, конечно, свои заморочки. Например, SBJson уже дорос до версии 3.1, а Facebook SDK до сих пор использует 2.2.3, хотя у Facebook в коде всего один вызов к JSON парсеру. SBJson 3.1 не обладает обратной совместимостью с 2.2.3. Проблемы возникнут если нужно использовать Facebook SDK и SBJson 3.1 одновременно. Но и эти ситуации вполне решаемы.
+1
BreatheInMyVoid,6 августа 2012 в 09:51#
Если кому-то мало этого мало: www.raywenderlich.com/tutorials 
Туториалы на английском, но очень подробные, с них можно тоже начинать.
+2
paco,6 августа 2012 в 10:37#
А еще лучше купить у них вот этот курс! Там 1 урок можно скачать бесплатно www.raywenderlich.com/store/ios-apprentice/
+1

+1

+2
DedalX,6 августа 2012 в 16:55#
http://cocoacontrols.com — огромное собрание UI (и не только) готовых контролов, классов, библиотек для iOS, большинство бесплатные.
+1
+1
AnthonyBY,6 августа 2012 в 19:28#
Я бы еще добавил замечательный открытый стэндфордский курс «iPad and IPhone application development»
CS193p
есть в iTunes-U и youtube
+1
+3

–1
rezwyi,17 сентября 2012 в 01:21#
Может помочь appletunity.ru
0
qazwsx,28 сентября 2012 в 19:33#
Приятно видеть в списке свою статью! Давно не писал, правда. В планах продолжить серию статей про создание RestFul приложений на RestKit.

No comments:

Post a Comment