Я люблю открытый исходный код и ещё больше люблю разработчиков, которые тратят своё драгоценное свободное время на создание чудес. Спасибо им за то, что они свободно делятся плодами своего труда со всеми. Авторы и участники открытых проектов, вы поистине удивительны, и спасибо за весь ваш вклад.
Поскольку я из тех людей, кто не может успокоиться, пока не соберёт всё, здесь я отобрал несколько iOS-библиотек с открытым исходным кодом по своему личному вкусу. Порядок этих проектов совершенно случаен, и каждый из них абсолютно потрясающий. Подавляющее большинство поддерживает CocoaPods, поэтому добавить их в ваш проект Xcode — проще простого.
В конце этой статьи вы найдёте версию «лонгрид, читайте с осторожностью» — простой список, содержащий только заголовки и ссылки на проекты. Если эта статья оказалась вам полезной, поделитесь ею с другими iOS-разработчиками. Даже лучшему вину нужна вывеска.
DZNEmptyDataSet — довольно стандартный для iOS подход к обработке пустых табличных представлений и коллекций. По умолчанию, если ваше табличное представление пусто, экран пуст, что нельзя назвать хорошим пользовательским опытом.

С этой библиотекой вам достаточно реализовать несколько протоколов, и iOS автоматически правильно обработает представления коллекций и отобразит пользовательские сообщения подходящим и привлекательным образом. Любой iOS-проект может обрабатывать это автоматически, не нужно тратить усилия на каждый из них.
Вашему приложению нужен простой, красивый и надёжный компонент календаря? Теперь он есть — PDTSimpleCalendar, пожалуй, лучший компонент календаря для iOS. Вы можете настроить его как угодно — и в поведении, и во внешнем виде.

Говорят, Core Data прост и лёгок в использовании. Потом говорят, что он великолепен и работает чудесно. Хм? Серьёзно, Apple? Огромное количество шаблонного кода, добавляемого в каждый проект, вряд ли соответствует стандарту простоты и лёгкости использования. Не говоря уже о добавлении, удалении и обновлении целой кучи сущностей, сохранении контекстов, создании разных стеков Core Data для разных сред и так далее. Конечно, мне очень нравится Core Data, но Apple определённо могла бы упростить его гораздо лучше — с помощью подхода MagicalRecord.

MagicalRecord — это что-то вроде обёртки вокруг Core Data, скрывающей все несущественные части. Если вы когда-нибудь использовали шаблон active record (как в Ruby on Rails), вы поймёте, что я имею в виду. Настоятельно рекомендую — если вы используете Core Data в своих приложениях, вам действительно стоит попробовать.
4. Chameleon
Если вы дочитали до этого места, полагаю, вы скорее код-мартышка, чем дизайн-лев. Вот кое-что идеально подходящее для вас.

Chameleon — это цветовой фреймворк для iOS. Он расширяет UIColor современными плоскими цветами по-настоящему красивым образом. Вы также можете использовать его для создания палитр с пользовательскими цветами. У него есть много других применений, поэтому ознакомьтесь с readme. Если вы хотите, чтобы ваше приложение выглядело отлично, обязательно добавьте эту библиотеку в свой проект.

5. Alamofire
Alamofire — это чистая библиотека для работы с сетью, написанная на Swift. Вы когда-нибудь использовали AFNetworking? Alamofire — его младший брат. Младший и более современный, конечно (AFNetworking написан на Objective-C).

Если вам нужно выполнять сетевую работу, такую как скачивание, загрузка, получение JSON-ов и так далее, Alamofire — именно то, что вам нужно. У него более 8,000 звёзд на GitHub, так что вы не ошибётесь.
Разве стандартный UITextField не кажется вам немного скучным? Я тоже так думаю — знакомьтесь, TextFieldEffects! Хватит разговоров, просто посмотрите несколько примеров:



Да, все они — простые drop-in контроллеры. Вы даже можете использовать IBDesignables в своём storyboard.
К сожалению, эта библиотека не поддерживает CocoaPods (если вы из будущего и это когда-нибудь изменится, обязательно сообщите мне в Twitter), но она поддерживает Carthage. Просто скачайте проект с GitHub и перетащите его в своё рабочее пространство.
7. GPUImage
Вы когда-нибудь писали приложение для камеры? Если нет, то вскоре вам наверняка встретится эта библиотека.

GPUImage обеспечивает ускоренный с помощью GPU эффект камеры (как для фото, так и для видео) и обрабатывает с молниеносной скоростью. В App Store есть сотни приложений, использующих эту библиотеку. У меня тоже есть приложение, использующее GPUImage. У GPUImage 8,869 звёзд на GitHub, и их число всё ещё растёт.

8. iRate
Как лучше всего получить больше отзывов в App Store? У меня нет надёжных данных, чтобы ответить на этот вопрос, но если бы пришлось угадывать, я бы посоветовал попросить пользователей. Возможно, это немного старомодно — большинство разработчиков сейчас создают собственные оповещения внутри приложения.
Но если у вас нет времени или вы не хотите реализовывать это с нуля, лучше использовать iRate. Это iRate — небольшая библиотека — вы можете добавить её в свой проект, забыть о приглашениях пройти опрос и тому подобном, и iRate решит проблему за вас в нужный момент.
Нравится вам паттерн singleton или нет, управлять одним GameCenter гораздо лучше, чем другими, противоположными паттернами, которые нам известны. (В вашей игре только один GameCenter, верно?)

Честно говоря, управлять стандартным GameCenter на iOS не так уж сложно, но с этой библиотекой это ещё проще и быстрее. Разве не лучше сделать хорошую вещь ещё лучше?

Я использовал это в одной из своих игр, и впечатления были отличные.
Обратите на это внимание — это действительно здорово! Один из моих любимых элементов управления iOS. PKRevealController — это выдвижное боковое меню (можно выдвигать влево, вправо или в обе стороны одновременно) всего лишь лёгким свайпом пальца (или нажатием кнопки, но это не так круто, как свайп).

Я пробовал некоторые другие библиотеки, предлагающие такой элемент управления, и PKRevealController — лучший. Прост в установке, легко настраивается и обладает отличным распознаванием жестов. Он мог бы сойти за стандартный элемент управления в iOS SDK.
Вы когда-нибудь пользовались приложением Slack для iOS? Если вы работаете в крупной софтверной компании, возможно, пользовались. А для тех, кто не пользовался? — Slack впечатляет. Приложения, использующие Slack, тоже такие, особенно когда он используется как отличный настраиваемый элемент ввода текста. Тогда у вас есть готовый код, который можно добавить в своё приложение.
Текстовое поле, подстраивающееся под размер? Попробуйте.
Распознавание жестов, автозаполнение, объединение медиа? Попробуйте.
Быстрое встраиваемое решение? Попробуйте.
Что ещё можно пожелать?
RETableViewManager помогает динамически создавать табличные представления и управлять ими. Он предоставляет предопределённые ячейки (bool, text, date и так далее — см. скриншот ниже), но вы также можете создавать собственные представления и использовать их вместе со стандартными.

Скриншот слева выглядит очень жёстко! Это всё, что можно сделать в storyboard без этой библиотеки, но иногда код лучше визуального редактора.
13. PermissionScope
С этой библиотекой вы можете сообщать пользователям о необходимых системных разрешениях перед запросом, обеспечивая им лучший опыт. Более высокая вероятность принятия -> больше активных пользователей -> выше показатель удержания -> более качественные данные -> выше показатели загрузок. Настоятельно рекомендую этот pod.
14. SVProgressHUD
Это изображение загружается нормально, без необходимости слишком долго ждать или обновлять страницу. Именно так SVProgressHUD ведёт себя в вашем приложении. Если вам нужен настраиваемый индикатор загрузки, это он (возможно, лучший).
15. FontAwesomeKit
Font Awesome потрясающий. С ним вы можете легко добавить шрифты в свой проект и использовать их множеством способов.

16. SnapKit
Нравится Auto Layout? Конечно, нравится!По крайней мере, вам нравится, когда его создают в storyboard. Создавать ограничения исключительно в коде очень болезненно, но, к счастью, у нас есть SnapKit. Как только вы начнёте его использовать, вы сможете писать ограничения просто и интуитивно.

17. MGSwipeTableCell
Это ещё один UI-компонент, часто встречающийся во многих приложениях. Apple стоит рассмотреть добавление чего-то подобного в стандартный iOS SDK. Сдвигаемые ячейки таблицы — лучшее описание этого pod и, кроме того, лучшее решение.
Это лишь три типа анимации; вариаций гораздо больше. Смотрите readme.
18. Быстрая
Используется для модульного тестирования в Swift (также работает с Objective-C), интегрирован с Xcode. Если вы поклонник Objective-C, я вместо этого рекомендую Specta, но для пользователей Swift лучший выбор — Quick.


19. IAPHelper
Покупки внутри приложений дают нам много примеров кода, а эта библиотека отбрасывает этот код, предоставляя простую обёртку для большинства распространённых задач, связанных с денежными транзакциями.
20. ReactiveCocoa
Ну, этот — маленький монстр.
ReactiveCocoa не похожа на другие библиотеки из этого списка; это не маленький проект, который можно просто подключить. ReactiveCocoa привносит совершенно другой стиль программирования и структуру, основанную на сигналах и потоках данных. Сначала вам нужно забыть всё, что вы знаете, чтобы понять, как она работает. Это очень сложно, но приносит большую награду.

Учить ReactiveCocoa здесь не совсем уместно, но если вам интересно, я дам несколько хороших ресурсов:
- Начало работы с ReactiveCocoa
- Mattt Thompson:ReactiveCocoa
- Урок по ReactiveCocoa – Полное введение: Часть 1/2
Примечание: для наших друзей из сообщества разработчиков iOS это будет немного техническая статья.
21. SwiftyJSON
Сделайте парсинг JSON в Swift простым.
22. Spring
Сделайте анимации лучше с точки зрения простоты, возможности объединения в цепочки и декларативности.

23. FontBlaster
Упростите загрузку пользовательских шрифтов.
24. TAPromotee
Кросс-промоушен — одна из лучших маркетинговых стратегий, которую можно реализовать бесплатно. Использование этой библиотеки делает его чрезвычайно простым — настолько простым, что невозможно не использовать его. Добавьте TAPromotee в свой Podfile, настройте его бесплатно и наслаждайтесь большим количеством загрузок.

25. Concorde
Загружаете кучу JPEG-файлов в своём приложении? С Concorde это можно решить гораздо лучше — это огромное улучшение.

26. KeychainAccess
Небольшой помощник для управления доступом к Keychain.

27. iOS-charts
И последнее, но не менее важное — библиотека графиков для iOS! Очень полезная и красивая, здесь мне не нужно говорить больше. Прокрутите вниз, и вы увидите, что можно с ней сделать.

Верно, всё стало drop-in-компонентами (или, может быть, «code-in-компонентами»).


К сожалению, он пока не поддерживает CocoaPods, поэтому вам придётся вручную перетащить его в рабочее пространство Xcode.