В портфолио компании EDISON Software есть 8 проектов, связанных с разработкой под Android и 4 крупных проекта, связанных с разработкой под iOS:
- Сервис доставки банковских уведомлений на смартфоны
- Приложение Vivaldi для работы с электронной библиотекой
- Вирусная рассылка информации
- Мобильные приложения для доступа к корпоративной инфраструктуре
Хотим поделиться с вами полезной подборкой open-source библиотек для iOS разработчика.
1. DZNEmptyDataSet
Это должно быть стандартом, встроенным в iOS, как способ работы с пустыми таблицами и просмотром коллекций. По умолчанию, если табличное представление пустое, то на экране ничего не отображается. Это не лучший пользовательский опыт, который вы можете получить.
С этой библиотекой вам необходимо всего лишь соответствовать определённым протоколам и iOS сама позаботиться о просмотре коллекций и выделит необходимое особым шрифтом, в виде красивых сообщений для пользователя. Элементарное решение для каждого проекта под iOS.
2. PDTSimpleCalendar
Необходим простой, привлекательный и рабочий календарь для вашего приложения? Теперь есть PDTSimpleCalendar, который является, наверное, лучшим дополнением для календаря в iOS. Вы можете настроить как его внешний вид, так и дополнительные функции.
3. MagicalRecord
Они говорили, что Core Data это просто. Они говорили, что это просто и красиво. Да ну, реально, Apple? Тонны шаблонного кода, добавляемого в каждый проект, не выглядит простым и элегантным. Не говоря уже о добавлении, удалении и обновлении многих объектов, сохраняя контекст, создавать различные стеки Core Data для различных сред и т.д. и т.п. Конечно же, я люблю Core Data, но Apple могла бы действительно упростить его при помощи MagicalRecord.
MagicalRecord является оболочкой для Core Data, которая скрывает от разработчика ненужный хлам. Если вы когда-нибудь работали с динамичными шаблонами записи (например Ruby on Rails), то вы почувствуете себя как дома. Рекомендую эту библиотеку, если вы используете Core Data в вашем приложении.
4. Chameleon
Если вы читаете эту статью, то, скорее всего, вы больше программист, нежели дизайнер. Тогда это для вас.
Chameleon — это фреймворк с цветовой палитрой для iOS. Он расширяет UIColor красивыми, современными матовыми цветами. Он также позволяет создавать палитры цветов, которые вы можете определить сами. Он может выполнять и другие функции, ознакомьтесь с ними в README. Если вам необходимо красивое приложение, обязательно добавьте эту библиотеку в ваш проект.
5. Alamofire
Alamofire — элегантная сетевая библиотека написанная на Swift. Вы когда-нибудь использовали AFNetworking? Alamofire его младший брат. Более молодой и более стильный, конечно же (AFNetworking написан на Objective-C).
Необходимо выполнить какие-либо действия в интернете, как например скачивание, загрузка, получение JSON и т.д.? Alamofire для вас. 8000 человек на GitHub не могут ошибаться.
6. TextFieldEffects
Вам не кажется, что UITextField слегка скучноват? Мне тоже. Поэтому поприветствуем TextFieldEffects! Я не буду писать о нём много, только покажу пару примеров возможностей этой библиотеки:
Да, это простые вставные контроллеры. Вы также можете использовать IBDesignables в окне редактора.
7. GPUImage
Вы когда-нибудь создавали приложения для камеры? Если нет, то вам обязательно захочется после знакомства с этой библиотекой.
GPUImage обеспечивает процессорное ускорение эффектов камеры (как изображения, так и видео) с невероятной скоростью. В AppStore сотни приложений использующих эту библиотеку, среди которых есть и одна моя.
8869 звёзд на GitHub и их количество продолжает увеличиваться.
8. iRate
Какой самый лучший способ получить больше отзывов в AppStore? У меня нет точных ответов на этот вопрос, но если подумать, я бы предположил что это просто просить пользователя об этом. Может, это немного устаревший способ, большинство разработчиков создают свои собственные оповещения для приложений, но если у вас нет времени на это или вы не хотите создавать это всё с нуля, то лучше использовать iRate, чем не использовать. И вот что из себя представляет iRate: небольшая библиотека, которую вы добавляете к себе в проект и забываете о том, чтобы просить пользователя оставить отзыв. iRate сделает это за вас.
9. GameCenterManager
Любите вы, или нет singltons, но в этом случае управление Game Center`ом станет легче с небольшой помощью известного анти-паттерна (у вас же только один Game Center в игре, не так ли?).
По правде говоря, управление Game Centre’ом в iOS не так уж и сложно, но с этой библиотекой это станет еще проще и быстрее. А лучшее — враг хорошего.
Я использовал эту библиотеку в одной из своих игр и остался доволен.
10. PKRevealController
PKRevealController 2 — жемчужина этого списка и одна из моих самых любимых способов манипуляций в iOS. Это боковое скользящее меню (левое, правое или двустороннее), которое выскальзывает с помощью пальца (или при нажатии на кнопку, что не так круто, в отличие от слайдинга).
Я пробовал использовать другие похожие библиотеки, но PKRevealController лучшая. Лёгкая для установки, множество настроек и распознавания жестов, что очень хорошо. Её стоило бы добавить в iOS SDK как стандарт.
11. SlackTextViewController
Вы когда-нибудь использовали приложение Slack iOS? Если вы работаете в крупной фирме, которая специализируется на программном обеспечении, скорее всего да. Для тех же, кто не пользовался им, скажу вот что: Slack рулит! Как и Slack iOS, особенно для большого, вводимого пользователем текста — код готов для использования в вашем приложении!
Растущая область текста? Есть. Распознавание жестов, автозаполнение, вставка мультимедийных файлов? Есть. Простое встроенное решение? Есть. Что вам еще может быть нужно?
12. RETableViewManager
RETableViewManager поможет вам динамически создавать и управлять своими представлениями таблиц при помощи кода. Это предоставляет заранее определённые ячейки (для текста, дат и т.д. — см. скриншоты ниже), но вы также можете создавать пользовательские виды и использовать их с теми, что определены по умолчанию.
Всё это вы можете сделать в окне редактора без использования этой библиотеки, но иногда лучше использовать простой код, нежели визуальный редактор.
13. PermissionScope
Полезная библиотека для обеспечения более комфортного использования, путём объяснения необходимых системных разрешений, прежде чем запрашивать пользователя о них. Более быстрое восприятие -> больше пользователей активно используют приложение -> больше постоянных пользователей -> лучше статистика -> больше скачиваний. Довольно полезное дополнение.
14. SVProgressHUD
«Это изображение загружается должным образом, подождите дольше и не обновляйте страницу». Это именно то, как SVProgressHUD выглядит в вашем приложении. Если вам нужен пользовательский индикатор ожидания, это один (и, наверное, лучший) из них.
15. FontAwesomeKit
Font Awesome — шикарен, а с этой библиотекой вы с легкостью сможете добавить его к себе в проект и использовать его любыми способами.
16. SnapKit
Любите автоматические макеты? А следует!
По крайней мере, при создании его в раскадровке.
Создание ограничений при помощи кода довольно сложно без сторонней помощи, но к счастью есть SnapKit и с его помощью вы можете вы можете программировать свои ограничения легким, декларативным образом. Попробуйте.
17. MGSwipeTableCell
Другой компонент пользовательского интерфейса, который так часто встречается во многих приложениях, что Apple, вероятно, следует задуматься о добавлении чего-то подобного в стандартной іOS SDK. Перелистываемые ячейки таблицы — лучшее описание этого дополнения. Один из лучших.
Это всего лишь 3 вида анимации, есть больше. Почитайте файл README.
18. Quick
Модульное тестирование в Swift, для Swift (ок, для Objective-C тоже), интегрированной с Xcode. Если вы фанат Objective-C, я бы рекомендовал Specta вместо этого, но для Swift, Quick будет, вероятно, лучшим.
habrastorage.org/getpro/habr/post_images/c64/7c1/d06/c647c1d061fc9b964fd0537a0dee4f7c.png
19. IAPHelper
Покупки в приложениях приносят нам огромное количество шаблонного кода, от которого эта библиотека помогает избавиться и предоставляет оболочку для наиболее распространённых задач связанных с переводом денег от пользователя в ваш (или вашей компании) кошелёк.
20. ReactiveCocoa
Итак, у нас есть маленький монстр.
ReactiveCocoa совсем не маленький проект, в отличие от тех, что упомянуты в этом списке. ReactiveCocoa это совершенно другой стиль/архитектура программирования на основе значений сигналов и потоков. Это нечто совершенно сногсшибательное и вам необходимо сначала научиться этому, что бы понимать, как это работает. Это непростая работа, но стоящая.
Это не подходящее место, что бы учить вас ReactiveCocoa, но вот вам ссылки на полезные ресурсы, если вы заинтересовались:
21. SwiftyJSON
Делает проще синтаксический анализ JSON в Swift.
22. Spring
Делает анимацию простой, цепной и декоративной.
23. FontBlaster
Упрощает загрузку пользовательских шрифтов в приложение.
24. TAPromotee
Перекрестное продвижение ваших приложений является одной из лучших маркетинговых стратегий, которую вы можете реализовать бесплатно. А с этой библиотекой это становиться так просто, что вы больше не сможете оправдываться, чтобы не делать этого: добавьте TAPromotee в ваш профиль, настройте и наслаждайтесь большим количеством скачиваний, совсем бесплатно.
25. Concorde
Загружаете много JPEG изображений в приложение? С Concorde вы можете сделать это в более привлекательном виде. Прогрессивным способом.
26. KeychainAccess
Маленькая вспомогательная библиотека для управления доступа в Keychain.
27. iOS-charts
И последняя по порядку, но не по важности – библиотека диаграмм в iOS! Она настолько полезна и красива, что я не буду писать многое. Просто посмотрите ниже что вы сможете сделать в своём проекте при помощи этой библиотеки.
Да, это всё доступно как вставляемый компонент. К сожалению, ещё не существует поддержки CocoaPods, так что вам нужно вручную перетащить проект из вашего Xcode на рабочую область.
TL;DR
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
Вот так мы рассказываем заказчику, какой способ оплаты выбрать:
А вот так мы заботимся об информационной безопасности на рабочем месте:
Подробнее в блоге — «Организация пространства типового центра разработки»
Автор: Edison