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

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

Отличная подборка. Must have :)
Отличный подбор статей, спасибо. Надеюсь народ оценит.
Сохранил, на всякий случай. Пятой точкой чую — пригодится.
Я себя почувствую сейчас лентяем.
Только собрался заняться обучением, а тут бах, все разложено по полочкам. А поговорить гуглить? :))
Но все ранов Огромное спасибо!
учитывая мой опыт и знакомых при освоении objective-c и разработки под ios — гуглить всё равно вы будете =)
Еще бы для Android такую же!
Молодцы!
startandroid.ru например.
а первую строчку прочитать вера не позволила?)
Спасибо!
У меня браузер забит папками с ссылками.
Но я все равно открываю Google и ищу в нем, т.к. находятся более свежие
материалы.
Ссылка на Coder89 порадовала. Спасибо!
Сохранил в закладки и подвинул эту закладку на 1 место. Благодарю!
Спасибо, как раз начал изучение, очень пригодится
По кастомизации UI хорошая подборка! Спасибо!
И опять не хватает CocoaPods! Впервые узнал о нем как раз в статье «Крутая подборка различных библиотек...», точнее в комментариях к этой статье.

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

Как говорится, попробовал один раз и уже не представляю себе жизни без cocoapods. Есть свои небольшие недостатки, но они не критичные, к тому же проект очень активно развивается, и все больше и больше разработчиков добавляют podspecs в свои github репозитории, а еще чаще это делает кто-то из сообщества.
Не совсем понял как он работает (почитав на сайте) и что именно делает. Если у меня несколько библиотек в проекте используют reachabillity к примеру (и это приводит к конфликту при компиляции), это программа сможем сама выключить повторяющиеся библиотеки где нужно?
Попробую объяснить.

Как оно работает и что делает.
После установки 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 одновременно. Но и эти ситуации вполне решаемы.
Спасибо большое за подборку. На некоторых сайтах бывал, теперь полезу на незнакомые сайты с подборки.
Спасибо, экономит кучу времени на поиск!
http://cocoacontrols.com — огромное собрание UI (и не только) готовых контролов, классов, библиотек для iOS, большинство бесплатные.
А не для начинающих можете что-то посоветовать?
В качестве языка был выбран Objective-C

А был выбор? :)
Javascript, например :)
А подробнее можно? На JS можно создавать полноценные приложения для iOS?
Возможно. Например, с помощью этих фреймворков:
Sencha Touch
Phonegap
НЛО прилетело и опубликовало эту надпись здесь
Ruby/RubyMotion
еще было что-то на Ruby, Rhomobile или Rhodes, что такое.
Я бы еще добавил замечательный открытый стэндфордский курс «iPad and IPhone application development»
CS193p
есть в iTunes-U и youtube
Курс действительно хороший, ссылка на него уже есть в конце поста
Благодаря вашему чудо-топику теперь каждое утро начинается с приятного чтения про obj-c, вот уже третий день. :)
Статья устроила маленький хабраэффект на мой сайт :)
А мне приятно, что мои статьи вошли в такой StartKit :-)
Приятно видеть в списке свою статью! Давно не писал, правда. В планах продолжить серию статей про создание RestFul приложений на RestKit.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории