[Перевод] 27 open-source ништячков для iOS разработчика

В портфолио компании EDISON Software есть 8 проектов, связанных с разработкой под Android и 4 крупных проекта, связанных с разработкой под iOS:
  • Сервис доставки банковских уведомлений на смартфоны
  • Приложение Vivaldi для работы с электронной библиотекой
  • Вирусная рассылка информации
  • Мобильные приложения для доступа к корпоративной инфраструктуре

Хотим поделиться с вами полезной подборкой open-source библиотек для iOS разработчика.

1. DZNEmptyDataSet


Это должно быть стандартом, встроенным в iOS, как способ работы с пустыми таблицами и просмотром коллекций. По умолчанию, если табличное представление пустое, то на экране ничего не отображается. Это не лучший пользовательский опыт, который вы можете получить.

С этой библиотекой вам необходимо всего лишь соответствовать определённым протоколам и iOS сама позаботиться о просмотре коллекций и выделит необходимое особым шрифтом, в виде красивых сообщений для пользователя. Элементарное решение для каждого проекта под iOS.

image

a0094756e9e04d3b8d64032d15249c7d.jpg

2. PDTSimpleCalendar


image

Необходим простой, привлекательный и рабочий календарь для вашего приложения? Теперь есть PDTSimpleCalendar, который является, наверное, лучшим дополнением для календаря в iOS. Вы можете настроить как его внешний вид, так и дополнительные функции.

357d88cb9400451c8a99d07b933b6180.jpg

3. MagicalRecord


Они говорили, что Core Data это просто. Они говорили, что это просто и красиво. Да ну, реально, Apple? Тонны шаблонного кода, добавляемого в каждый проект, не выглядит простым и элегантным. Не говоря уже о добавлении, удалении и обновлении многих объектов, сохраняя контекст, создавать различные стеки Core Data для различных сред и т.д. и т.п. Конечно же, я люблю Core Data, но Apple могла бы действительно упростить его при помощи MagicalRecord.

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

40758f40540744edbe18a2ed5370f308.jpg

4. Chameleon


Если вы читаете эту статью, то, скорее всего, вы больше программист, нежели дизайнер. Тогда это для вас.

image

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

image

d3182cc8172f4cf7a65e37d4965cd240.jpg

5. Alamofire


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

image

Необходимо выполнить какие-либо действия в интернете, как например скачивание, загрузка, получение JSON и т.д.? Alamofire для вас. 8000 человек на GitHub не могут ошибаться.

4a44ee91bb6f4984b4107f1a1f008f04.jpg

6. TextFieldEffects


Вам не кажется, что UITextField слегка скучноват? Мне тоже. Поэтому поприветствуем TextFieldEffects! Я не буду писать о нём много, только покажу пару примеров возможностей этой библиотеки:
image
image
image

Да, это простые вставные контроллеры. Вы также можете использовать IBDesignables в окне редактора.

9831dc97ca1a400193ed0ee51ebdc035.jpg

7. GPUImage


Вы когда-нибудь создавали приложения для камеры? Если нет, то вам обязательно захочется после знакомства с этой библиотекой.
image

GPUImage обеспечивает процессорное ускорение эффектов камеры (как изображения, так и видео) с невероятной скоростью. В AppStore сотни приложений использующих эту библиотеку, среди которых есть и одна моя.

image

8869 звёзд на GitHub и их количество продолжает увеличиваться.

d61001af81b54c81bfa1494c72ea57cd.jpg

8. iRate


Какой самый лучший способ получить больше отзывов в AppStore? У меня нет точных ответов на этот вопрос, но если подумать, я бы предположил что это просто просить пользователя об этом. Может, это немного устаревший способ, большинство разработчиков создают свои собственные оповещения для приложений, но если у вас нет времени на это или вы не хотите создавать это всё с нуля, то лучше использовать iRate, чем не использовать. И вот что из себя представляет iRate: небольшая библиотека, которую вы добавляете к себе в проект и забываете о том, чтобы просить пользователя оставить отзыв. iRate сделает это за вас.

a1ffc6802b5745e49458dcacce9b96c2.jpg

9. GameCenterManager


Любите вы, или нет singltons, но в этом случае управление Game Center`ом станет легче с небольшой помощью известного анти-паттерна (у вас же только один Game Center в игре, не так ли?).

image

По правде говоря, управление Game Centre«ом в iOS не так уж и сложно, но с этой библиотекой это станет еще проще и быстрее. А лучшее — враг хорошего.

image

Я использовал эту библиотеку в одной из своих игр и остался доволен.

1b620aade7e84a2bb28d9fa338e50fa6.jpg

10. PKRevealController


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

image

Я пробовал использовать другие похожие библиотеки, но PKRevealController лучшая. Лёгкая для установки, множество настроек и распознавания жестов, что очень хорошо. Её стоило бы добавить в iOS SDK как стандарт.

941dc13a6eae468bad36812f7d6b243d.jpg

11. SlackTextViewController


Вы когда-нибудь использовали приложение Slack iOS? Если вы работаете в крупной фирме, которая специализируется на программном обеспечении, скорее всего да. Для тех же, кто не пользовался им, скажу вот что: Slack рулит! Как и Slack iOS, особенно для большого, вводимого пользователем текста — код готов для использования в вашем приложении!

Растущая область текста? Есть. Распознавание жестов, автозаполнение, вставка мультимедийных файлов? Есть. Простое встроенное решение? Есть. Что вам еще может быть нужно?

bff9adb02f77413cadf8f05da12c7af7.jpg

12. RETableViewManager


RETableViewManager поможет вам динамически создавать и управлять своими представлениями таблиц при помощи кода. Это предоставляет заранее определённые ячейки (для текста, дат и т.д. — см. скриншоты ниже), но вы также можете создавать пользовательские виды и использовать их с теми, что определены по умолчанию.
image

Всё это вы можете сделать в окне редактора без использования этой библиотеки, но иногда лучше использовать простой код, нежели визуальный редактор.

a90b2fd9e1e24613a82823ab5667d998.jpg

13. PermissionScope


Полезная библиотека для обеспечения более комфортного использования, путём объяснения необходимых системных разрешений, прежде чем запрашивать пользователя о них. Более быстрое восприятие → больше пользователей активно используют приложение → больше постоянных пользователей → лучше статистика → больше скачиваний. Довольно полезное дополнение.
image

12ccdb23f16841498517ea87d2dfe02e.jpg

14. SVProgressHUD


«Это изображение загружается должным образом, подождите дольше и не обновляйте страницу». Это именно то, как SVProgressHUD выглядит в вашем приложении. Если вам нужен пользовательский индикатор ожидания, это один (и, наверное, лучший) из них.
image

39ab079ca0e84650a8217f99ba860764.jpg

15. FontAwesomeKit


Font Awesome — шикарен, а с этой библиотекой вы с легкостью сможете добавить его к себе в проект и использовать его любыми способами.
image

596b78100a414550aad2fa88ee8b03d3.jpg

16. SnapKit


Любите автоматические макеты? А следует!

По крайней мере, при создании его в раскадровке.

Создание ограничений при помощи кода довольно сложно без сторонней помощи, но к счастью есть SnapKit и с его помощью вы можете вы можете программировать свои ограничения легким, декларативным образом. Попробуйте.

image

54f1daa4ccce4fad9206fa91cb58d538.jpg

17. MGSwipeTableCell


Другой компонент пользовательского интерфейса, который так часто встречается во многих приложениях, что Apple, вероятно, следует задуматься о добавлении чего-то подобного в стандартной іOS SDK. Перелистываемые ячейки таблицы — лучшее описание этого дополнения. Один из лучших.
image
image
image

Это всего лишь 3 вида анимации, есть больше. Почитайте файл README.

d0bc110d034041d08c3a2a92dd9b1f6e.jpg

18. Quick


Модульное тестирование в Swift, для Swift (ок, для Objective-C тоже), интегрированной с Xcode. Если вы фанат Objective-C, я бы рекомендовал Specta вместо этого, но для Swift, Quick будет, вероятно, лучшим.

image

imagehabrastorage.org/getpro/habr/post_images/c64/7c1/d06/c647c1d061fc9b964fd0537a0dee4f7c.png

012b473e5866458ea6f752e4d934bcbe.jpg

19. IAPHelper


Покупки в приложениях приносят нам огромное количество шаблонного кода, от которого эта библиотека помогает избавиться и предоставляет оболочку для наиболее распространённых задач связанных с переводом денег от пользователя в ваш (или вашей компании) кошелёк.

8789b2a8c7914ae896c6e7ea113b466e.jpg

20. ReactiveCocoa


Итак, у нас есть маленький монстр.

image

ReactiveCocoa совсем не маленький проект, в отличие от тех, что упомянуты в этом списке. ReactiveCocoa это совершенно другой стиль/архитектура программирования на основе значений сигналов и потоков. Это нечто совершенно сногсшибательное и вам необходимо сначала научиться этому, что бы понимать, как это работает. Это непростая работа, но стоящая.

Это не подходящее место, что бы учить вас ReactiveCocoa, но вот вам ссылки на полезные ресурсы, если вы заинтересовались:

e736bd3370ec4263a127476e439d73b0.jpg

c165c4d68e244d6e905cde678ff779a9.jpg

7738d3012e1d4ccabfb71cd044e6716b.jpg

42809b638e034195b937035c883f22c6.jpg

21. SwiftyJSON


Делает проще синтаксический анализ JSON в Swift.

cb51d075c74d416a918085871c015dde.jpg

22. Spring


Делает анимацию простой, цепной и декоративной.
image

a6689164b08b41409a9c42728d8fedca.jpg

23. FontBlaster


Упрощает загрузку пользовательских шрифтов в приложение.

f2c0e92c6ddf4c7294a88e3ffd46b5c4.jpg

24. TAPromotee


Перекрестное продвижение ваших приложений является одной из лучших маркетинговых стратегий, которую вы можете реализовать бесплатно. А с этой библиотекой это становиться так просто, что вы больше не сможете оправдываться, чтобы не делать этого: добавьте TAPromotee в ваш профиль, настройте и наслаждайтесь большим количеством скачиваний, совсем бесплатно.
image

d77d46f3785640f69fa8dc146d34ce01.jpg

25. Concorde


Загружаете много JPEG изображений в приложение? С Concorde вы можете сделать это в более привлекательном виде. Прогрессивным способом.

image

be2a1091767049eeaaca2167e9d96b62.jpg

26. KeychainAccess


Маленькая вспомогательная библиотека для управления доступа в Keychain.

b8be786dcd7f427ab12e2c41ec12486f.jpg

47c5a65fc87a4f7ca437053126bd37e4.jpg

27. iOS-charts


И последняя по порядку, но не по важности — библиотека диаграмм в iOS! Она настолько полезна и красива, что я не буду писать многое. Просто посмотрите ниже что вы сможете сделать в своём проекте при помощи этой библиотеки.
image

ec0674551aa94057b44a0e469d3cd4d3.jpg

много красивых примеров
image

image

image

image

image

image

image

image

image

image

image

image

image

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

TL; DR


список библиотек
DZNEmptyDataSet [UI, пустые таблицы]
PDTSimpleCalendar [UI, календарь]
MagicalRecord [помощь с Core Data]
Chameleon [UI, работа с цветом]
Alamofire [Swift networking]
TextFieldEffects [UI, текст]
GPUImage [ускорение картинок]
iRate [рейтинги]
GameCenterManager [простое управление Game Center]
PKRevealController [UI, менюшки]
SlackTextViewController [UI, настройка полей]
RETableViewManager [динамический просмотр таблиц]
PermissionScope [UI, запросы]
SVProgressHUD [UI, индикатор ожидания]
FontAwesomeKit [easily add Font Awesome to your project]
SnapKit [easy auto layout in code]
MGSwipeTableCell [UI, swipeable table view cells]
Quick [Swift unit testing framework]
IAPHelper [In-App Purchases helper wrapper]
ReactiveCocoa [FRP]
SwiftyJSON [библиотека]
Spring [анимация]
FontBlaster [шрифты]
TAPromotee [cross promote your apps with drop-in view]
Concorde [прогрессивный JPEG]
KeychainAccess [manage keychain easily]
iOS-charts [графики]


Разработка приложений в EDISON Software


Вот так мы рассказываем заказчику, какой способ оплаты выбрать:

А вот так мы заботимся об информационной безопасности на рабочем месте:

image
Подробнее в блоге — «Организация пространства типового центра разработки»

Комментарии (0)

© Habrahabr.ru