Sunday, January 27, 2013

Еще с десяток полезных opensource-библиотек для iOS-разработчика http://habrahabr.ru/company/luxoft/blog/154331/

http://habrahabr.ru/company/luxoft/blog/154331/

Еще с десяток полезных opensource-библиотек для iOS-разработчика

После того, как я в прошлый раз написал статью об основах CocoaPods, мне пришла в голову идея, что библиотеку подов можно и нужно использовать как отличный источник opensource iOS-проектов как для новичков, так и для опытных программистов. После установки ruby-пакета cocoapods (все в той же статье), вам станет доступна возможность искать полезные библиотеки по ключевым словам прямо из командной строки:

И вот что сейчас сообщество использует.


Работа с изображениями:

1) SDWebImage Асинхронная загрузка изображений, поддержка политик кеширования. Имеется функционал для предварительного декодирования изображения, помогает про скролле.
2) GPUImage Мощная библиотека для обработки изображений, возможность накладывать эффекты прямо на выход камеры в режиме реального времени. Думаю, не менее половины участников недавнего конкурса (http://vk.com/photo_contest) вконтакте использовали именно ее.
3) NYXImagesKit Библиотека общего назначения, добавляет много полезный методов для обработки: фильтры, изменение размеров, вращение и многое другое.
4) XBImageFilters В какой-то мере альтернатива GPUImage.

Работа данными на диске:

1) NLCoreData Обертка вокруг Core Data для более простых и читаемых операций.
2) VPPCoreData Обертка вокруг Core Data, поддерживает паттерн ActiveRecord (http://ru.wikipedia.org/wiki/ActiveRecord).
3) iActiveRecord А это реализация паттерна ActiveRecord, но уже без поддержки Core Data.
4) FileMD5Hash Вычисляет MD5 содержимого файлов, потребляет сравнительно мало оперативной памяти.
5) FMDB Обертка вокруг sqlite.

Работа с сетью, http-запросы:

1) ASIHTTPRequest Удобная обертка вокруг CFNetwork API для HTTP-запросов.
2) AFNetworking Альтернатива первой, даже разработчик ASIHTTPRequest рекомендовал ее одно время.
3) RestKit Отличное решение для работы с сетью и RESTful-сервисами. Предоставляет решение для маппинга данных на объекты CoreData.

Проигрывание аудио:

1) BeamMusicPlayerViewController Контроллер для iPhone для проигрывания музыки (с элементами управления).
2) GVMusicPlayerController Как пишут разработчики: мощь AVPlayer с простотой MPMusicPlayerController.

Работа с известными web-сервисами:

1) Facebook-iOS-SDK Взаимодействие с Facebook.
2) unoffical-twitter-sdk Взаимодействие с twitter.
3) AFAmazonS3Client Взаимодействие с Amazon S3 API.
4) HCYoutubeParser Получение видео из Youtube.
5) Vkontakte-iOS-SDK Пока так себе.

Для удобной работы с помощью блоков:

1) UIAlertView-Blocks
2) MTBlockTableView Таблица, которая использует блоки вместо стандартного подхода с протоколами.
3) BlocksKit Это классика «блоколизации».

Карты:

1) YandexMapKit Яндекс-карты.
2) MapBox Open source альтернатива MapKit. 
3) VPPMap Упрощает управление MKMapView.

Сервисы тестирования:

1) TestFlightSDK
2) HockeySDK и HockeyKit

Это и многое другое вы сможете одной строчкой подключать к своему проекту, добавив в него поддержку CocoaPods.
+48
11815
431
Silf 46,5 G+

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

+4
b0bby,10 октября 2012 в 15:36#
Уберите ASIHTTPRequest — она уже год не поддерживается.
–2
Silf,10 октября 2012 в 15:38#
Не поддерживается, но крайне популярна. Да и я там написал про AFNetworking как рекомендованную автором замену
+3
rule,10 октября 2012 в 15:43#
это кто вам сказал, что она «крайне» популярна?
+1
Zelgadis,10 октября 2012 в 21:21#
Есть же github.com/MugunthKumar/MKNetworkKit в разы удобнее всего прочего.
+3
rule,10 октября 2012 в 15:42#
Вы бы сначала проверили адекватность ваших рекомендаций.
Например ASIHTTPRequest вообще нет смысла сейчас ипользовать. Он был полезен, пока не появились блоки. А это значит что его следует использовать для поддержки iOS3. Кто сейчас его поддерживает?
Просто набор вот фреймворков бесполезен. Полезной информацией было бы их описание и технический анализ. А так список посмотреть можно и на cocoacontrols.
0
Silf,10 октября 2012 в 15:46#
Вы правы, но ASIHTTPRequest блоки поддерживает
+1
rule,10 октября 2012 в 15:48#
Вы не поняли, смысл в том что ASI не поддерживает блоки, смысл в том, что GCD убил весь смысл существования ASI, именно поэтому его и перестали поддерживать. GCD работает на системном уровне а вся логика ASI реализована на высоком уровне, да еще с большим количеством ошибок и недочетов.
–1
Silf,10 октября 2012 в 15:57#
Ладно вам, до Xcode 4.5 люди прекрасно собирали под ios 3. Да и я просто люблю ASIHTTPRequest, простите мою слабость
rule,10 октября 2012 в 22:11#
Основная задача, которую решает вся эта конструкция — это очередь асинхронных запросов. Конечно в итоге это разрослось в кучу разных вспомогательных методов. С появлением GCD эту очередь очень просто и быстро стало возможным организовать с помощью dispatch_queue. Причем количество кода уменьшилось просто в десятки раз, вопросы синхронизации и блокировки отпали сами (в ASI для этого использовались достаточно сложные механизмы).
Теперь для решения практически всех задач, для которых была создана эта библиотека, сгодится и набор системных фреймворков. И это будет проще, надежней и быстрее.
rule,10 октября 2012 в 22:14#
То что механизм GCD поддерживается на уровне ядра, а механизмы синхронизации и многопоточности ASI были реализованы на уровне кода приложения. Подробней я объяснил тут.
0

No comments:

Post a Comment