Отличного пятничного настроения, друзья!
Сегодня мы приготовили для вас полезный перевод поста основателя Ecler Studios Paweł Białecki, в котором он предлагает нашему вниманию 33 open source проекта для iOS разработчиков.
С помощью своего аккаунта в GitHub он открыл для себя множество перспективных инструментов и отобрал, по его мнению, лучшие из них для своих читателей.
![](https://habrastorage.org/r/w1560/files/4aa/500/eee/4aa500eee6ea4c7c81f4b5f2a99ce183.png)
![](https://habrastorage.org/files/364/f13/b56/364f13b565dc4191ab063db012119fb0.gif)
Созданный разработчиками Instagram, IGListKit представляет собой управляемый данными фреймворк для UICollectionView, с помощью которого можно быстро создавать гибкие списки. Также он помогает обойтись без MassiveViewControllers в приложении. Ознакомьтесь с туториалом от Ray Wenderlich, в котором объясняется, как внедрить эту библиотеку в проект, или прочитайте статью Rodrigo Cavalcante о переносе существующих UITableView в IGListCollectionView.
![](https://habrastorage.org/r/w1560/files/62e/76d/7c2/62e76d7c266a4814abcf277c9973c1c7.png)
Realm – это мобильная база данных, которая работает прямо внутри телефонов, планшетов и носимых девайсов, причем не только на iOS. Если хотите попробовать что-то существенно отличающееся от CoreData, отдайте предпочтение Realm. Многие считают его современной, готовой к запуску альтернативой нативному решению от Apple.
![](https://habrastorage.org/r/w1560/files/1ae/9a9/ac1/1ae9a9ac15014f25ae4c9a99154c0dc8.png)
Moya — это недостающий сетевой уровень для вашего приложения. Больше вам не придется ломать голову, куда (и как) помещать сетевые запросы, Moya об этом позаботится.
![](https://habrastorage.org/r/w1560/files/630/264/e25/630264e2504d4722b3ab45a5b21494b1.png)
Король парсинга JSON на Swift.
Преобразуйте это:
вот в это:
Оборачивание, если оно нужно, производится автоматически.
Valet обеспечивает безопасное хранение данные в iOS или OS X Keychain, даже если вы не имеете никакого представления, как работает Keychain. Он позволяет передавать данные между несколькими приложениями (от того же самого разработчика) на одном девайсе, а также передавать данные в пределах одного приложения на нескольких девайсах при помощи iCloud. Поддержка Touch ID? Легко!
![](https://habrastorage.org/r/w1560/files/f14/fe7/0ff/f14fe70ff52d423594399a416b181a4f.png)
Это решение, разработанное (ну, или выкупленное) компанией Google, пожалуй, можно назвать лучшим аналитическим инструментом для iOS. Отслеживайте, как используется приложение, насколько вовлечены пользователи, какие события происходят; задавайте пользовательские характеристики, создавайте индивидуально настроенные аудитории и многое другое.
7. AsyncDisplayKit
Команда Facebook создала этот UI SDK для своего приложения Paper. Если хотите, чтобы рендер вашего приложения всегда происходил со скоростью 60 фреймов в минуту, обязательно обратите внимание на эту библиотеку. Здесь можно почитать об опыте команды Buffer.
![](https://habrastorage.org/r/w1560/files/28a/b28/b87/28ab28b879f24bf58381cd54005aba3d.png)
Пользователь устанавливает ваше приложение и видит пустой UITableView. DZNEmptyDataSet помогает избежать этой проблемы, предлагая внедряемый по умолчанию паттерн для случая, когда данные в таблице отсутствуют.
![](https://habrastorage.org/r/w1560/files/d9c/bd4/1ab/d9cbd41ab6f847819c86441459e25c7f.png)
Chameleon — это компактный, но мощный фреймворк для работы с цветом на iOS. В его основе лежит идея о том, что приложения должны работать с легкостью и при этом сохранять приятный для глаз интерфейс.
С Chameleon вам не нужно будет возиться со значениями RGB, часами подбирать наилучшее сочетание оттенков для приложения и переживать, хорошо ли будет читаться текст на разных цветах фона.
![](https://habrastorage.org/r/w1560/files/238/10e/db6/23810edb6d6c4bae9aacef0f9df4bc80.png)
![](https://habrastorage.org/r/w1560/files/abc/d69/022/abcd6902223d4c548338cd7fc8cbbe08.png)
![](https://habrastorage.org/r/w1560/files/714/721/c56/714721c5612e4fd3afb5fbd6ef0ac1ad.png)
PermissionScope — фреймворк на Swift, позволяющий по-умному запрашивать разрешение у пользователей. Он содержит не только простой UI для отправления запросов, но и API для разрешений, который может сообщить вам статус любого системного разрешения или легко запросить его.
![](https://habrastorage.org/r/w1560/files/eb2/9cd/a9f/eb29cda9f19c4abfa5c7bfba790462ae.png)
![](https://habrastorage.org/r/w1560/files/c86/46c/0f8/c8646c0f844e448dbbceb517bee450d7.png)
FileKit — это фреймворк для Swift, который обеспечивает простую и выразительную систему управления файлами. Посмотрите примеры того, как она используется.
SwiftyUserDefaults делает user defaults приятными в использовании, сочетая выразительные API от Swiftly с преимуществами static typing. Определяйте все ключи в одном месте, легко применяйте типы-значения и вдобавок бесплатно получайте дополнительную безопасность и проверку на этапе компиляции.
![](https://habrastorage.org/r/w1560/files/66a/f26/7f4/66af267f405c4addb7c650466d8f519e.png)
Kingfisher — это компактная библиотека для асинхронного скачивания и кэширования картинок из Сети, специально для Swift.
![](https://habrastorage.org/r/w1560/files/14a/abb/32f/14aabb32f5414d808397686895503da8.png)
Hero — это библиотека для построения переходов между ViewController-ами на iOS. Она дополняет неудобные API для переходов от UIKit и упрощает процесс настройки переходов.
![](https://habrastorage.org/r/w1560/files/32d/775/b4a/32d775b4a06446019e7e31653d643282.png)
Hedwig — это пакет Swift, предоставляющий набор API высокого уровня, которые позволяют легко отправлять письма на SMTP-сервер. Если вы планируете рассылать сообщения из своего будущего сногсшибательного клиент-серверного приложения, возможно, Hedwig — как раз то, что вам нужно.
DeviceKit — это замена типов-значений дляUIDevice. Без проблем получайте информацию о состоянии девайса и уровне зарядки.
![](https://habrastorage.org/r/w1560/files/3d3/0a0/7be/3d30a07be7cb4b7786b83b9ede85b967.png)
Библиотека красивых диаграмм самых разных типов: столбчатых, круговых, точечных, трехмерных, радиальных и так далее.
Простой в использовании подкласс UITableViewCell, который позволяет отображать кнопки-слайдеры с разными видами переходов.
![](https://habrastorage.org/r/w1560/files/7f6/1f7/fcf/7f61f7fcf16249219136f3144072a1dc.png)
![](https://habrastorage.org/r/w1560/files/5e9/4c0/739/5e94c0739a804186851ea509e87ba3d0.png)
![](https://habrastorage.org/r/w1560/files/70e/410/f11/70e410f1187c48838f4df87dfae4d751.png)
![](https://habrastorage.org/r/w1560/files/76c/a0b/e8f/76ca0be8f620449cb539ff99bf0ff7d9.png)
Простой и понятый генератор случайных данных.
![](https://habrastorage.org/r/w1560/files/090/87b/e24/09087be2402e461d8c19b6fd70cc4e74.png)
ResponseDetective — фреймворк, который, минимально вмешиваясь в процесс, перехватывает все исходящие запросы и входящие ответы между приложением и сервером для отладки.
![](https://habrastorage.org/files/4e8/725/744/4e872574485c4b50b0f969a56716ed98.gif)
Без лишних усилий создавайте красивые и захватывающие презентации всего несколькими строчками кода.
![](https://habrastorage.org/r/w1560/files/0a0/dec/bf0/0a0decbf0ff24bddba892d90e8e8ef01.png)
Quick — это фреймворк для тестирования BDD на Swift и Objective-C. К нему прилагается Nimble — фреймворк, расширяющий возможности сравнения данных.
Natalie генерирует код Swift на основании сторибордов, тем самым делая работу со Storyboard и Segue проще. Сгенерированные файлы сокращают использование строк в качестве идентификаторов Storyboard и Seguе.
![](https://habrastorage.org/r/w1560/files/8ef/267/1cf/8ef2671cfc5e49e790c1a254724ce41c.png)
Интересуетесь реактивным программированием на Swift? RxSwift к вашим услугам.
![](https://habrastorage.org/r/w1560/files/375/3e9/ab6/3753e9ab6a2e44bf807d2800f8480c97.png)
![](https://habrastorage.org/r/w1560/files/339/feb/5df/339feb5df221423d9a6d38801aa8cc60.png)
![](https://habrastorage.org/r/w1560/files/8f8/df4/3ed/8f8df43ed4fb46498b82b1521c877f40.png)
![](https://habrastorage.org/r/w1560/files/f4f/732/617/f4f732617e74457cbe93cc23661f1e9e.png)
GDPerformanceView показывает FPS, процент загрузки CPU, версии приложения и iOS над статус баром и предоставляет отчеты о FPS и загрузке CPU через делегат.
![](https://habrastorage.org/r/w1560/files/a7c/3ac/1a2/a7c3ac1a22da474cb4ef1292a7520f07.png)
Alamofire — это сетевая HTTP библиотека, написанная на Swift.
![](https://habrastorage.org/r/w1560/files/e9b/e05/7bd/e9be057bd709419bb1691d37f0c8757c.png)
SwiftyStoreKit — это небольшой фреймворк для работы с встроенными покупками на iOS (версии 8.0 и выше), TvOS (версии 9.0 и выше) и macOS (версии 10.10 и выше).
Интуитивная работа с данными на Swift.
Функции и помощники для Swift, связанные с криптографией, реализованные на Swift.
![](https://habrastorage.org/r/w1560/files/20c/18b/2d2/20c18b2d2e134fbaafe9e69074c5f589.png)
Библиотека настраиваемых календарей для iOS, совместимая с Objective-C и Swift.
![](https://habrastorage.org/r/w780q1/files/357/d23/bf8/357d23bf8f814145a7087bb826592d76.jpeg)
![](https://habrastorage.org/r/w1560/files/aac/a9d/4ad/aaca9d4ad9894a28a970462e52006633.png)
Решение для просмотра картинок в стиле Twitter.
![](https://habrastorage.org/r/w1560/files/f7b/180/2b8/f7b1802b83c54124aed7b6316959a0a5.png)
PromiseKit — это вдумчивое и полное внедрение promises на любую платформу при помощи swiftc. Он отлично адаптирован для использования в ObjectiveC и предлагает превосходные специализации для iOS, TvOs, macOS и watchOS.
![](https://habrastorage.org/r/w1560/files/f31/fef/0df/f31fef0df3074f2fbef5cc14fbee3a09.png)
Ensembles — это фреймворк для Objective-C с поддержкой Swift, который расширяет фреймворк CoreData от Apple, добавляя пиринговую синхронизацию для macOS и iOS. Многочисленные постоянные хранилища SQLite могут быть связаны посредством любой платформы для синхронизации файлов, например, iCloud или Dropbox. Фреймворк можно при первой необходимости расширить для поддержки любого сервиса, который обладает способностью перемещать файлы между девайсами, включая настраиваемый сервер.
Сегодня мы приготовили для вас полезный перевод поста основателя Ecler Studios Paweł Białecki, в котором он предлагает нашему вниманию 33 open source проекта для iOS разработчиков.
С помощью своего аккаунта в GitHub он открыл для себя множество перспективных инструментов и отобрал, по его мнению, лучшие из них для своих читателей.
![](https://habrastorage.org/files/4aa/500/eee/4aa500eee6ea4c7c81f4b5f2a99ce183.png)
1. IGListKit от InstagramEngineering
![](https://habrastorage.org/files/364/f13/b56/364f13b565dc4191ab063db012119fb0.gif)
Созданный разработчиками Instagram, IGListKit представляет собой управляемый данными фреймворк для UICollectionView, с помощью которого можно быстро создавать гибкие списки. Также он помогает обойтись без MassiveViewControllers в приложении. Ознакомьтесь с туториалом от Ray Wenderlich, в котором объясняется, как внедрить эту библиотеку в проект, или прочитайте статью Rodrigo Cavalcante о переносе существующих UITableView в IGListCollectionView.
2. Realm от realm.io
![](https://habrastorage.org/files/62e/76d/7c2/62e76d7c266a4814abcf277c9973c1c7.png)
Realm – это мобильная база данных, которая работает прямо внутри телефонов, планшетов и носимых девайсов, причем не только на iOS. Если хотите попробовать что-то существенно отличающееся от CoreData, отдайте предпочтение Realm. Многие считают его современной, готовой к запуску альтернативой нативному решению от Apple.
3. Moya от Ash Furrow
![](https://habrastorage.org/files/1ae/9a9/ac1/1ae9a9ac15014f25ae4c9a99154c0dc8.png)
Moya — это недостающий сетевой уровень для вашего приложения. Больше вам не придется ломать голову, куда (и как) помещать сетевые запросы, Moya об этом позаботится.
![](https://habrastorage.org/files/630/264/e25/630264e2504d4722b3ab45a5b21494b1.png)
4. SwiftyJSON от Pinglin Tang
Король парсинга JSON на Swift.
Преобразуйте это:
if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],
let user = statusesArray[0]["user"] as? [String: Any],
let username = user["name"] as? String {
// Finally we got the username
}
вот в это:
let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
// Now you got your value
}
Оборачивание, если оно нужно, производится автоматически.
5. Valet от Square
Valet обеспечивает безопасное хранение данные в iOS или OS X Keychain, даже если вы не имеете никакого представления, как работает Keychain. Он позволяет передавать данные между несколькими приложениями (от того же самого разработчика) на одном девайсе, а также передавать данные в пределах одного приложения на нескольких девайсах при помощи iCloud. Поддержка Touch ID? Легко!
6. FirebaseAnalytics от GoogleDevelopers
![](https://habrastorage.org/files/f14/fe7/0ff/f14fe70ff52d423594399a416b181a4f.png)
Это решение, разработанное (ну, или выкупленное) компанией Google, пожалуй, можно назвать лучшим аналитическим инструментом для iOS. Отслеживайте, как используется приложение, насколько вовлечены пользователи, какие события происходят; задавайте пользовательские характеристики, создавайте индивидуально настроенные аудитории и многое другое.
7. AsyncDisplayKit
![](https://habrastorage.org/r/w1560/files/2bf/7a8/cec/2bf7a8cecb8b4b079a06fe436d564a54.png)
Команда Facebook создала этот UI SDK для своего приложения Paper. Если хотите, чтобы рендер вашего приложения всегда происходил со скоростью 60 фреймов в минуту, обязательно обратите внимание на эту библиотеку. Здесь можно почитать об опыте команды Buffer.
8. DZNEmptyDataSet
![](https://habrastorage.org/files/28a/b28/b87/28ab28b879f24bf58381cd54005aba3d.png)
Пользователь устанавливает ваше приложение и видит пустой UITableView. DZNEmptyDataSet помогает избежать этой проблемы, предлагая внедряемый по умолчанию паттерн для случая, когда данные в таблице отсутствуют.
9. Chameleon от Vicc Alexander
![](https://habrastorage.org/files/d9c/bd4/1ab/d9cbd41ab6f847819c86441459e25c7f.png)
Chameleon — это компактный, но мощный фреймворк для работы с цветом на iOS. В его основе лежит идея о том, что приложения должны работать с легкостью и при этом сохранять приятный для глаз интерфейс.
С Chameleon вам не нужно будет возиться со значениями RGB, часами подбирать наилучшее сочетание оттенков для приложения и переживать, хорошо ли будет читаться текст на разных цветах фона.
![](https://habrastorage.org/files/238/10e/db6/23810edb6d6c4bae9aacef0f9df4bc80.png)
![](https://habrastorage.org/files/abc/d69/022/abcd6902223d4c548338cd7fc8cbbe08.png)
10. PermissionScope от Nick O'Neill
![](https://habrastorage.org/files/714/721/c56/714721c5612e4fd3afb5fbd6ef0ac1ad.png)
PermissionScope — фреймворк на Swift, позволяющий по-умному запрашивать разрешение у пользователей. Он содержит не только простой UI для отправления запросов, но и API для разрешений, который может сообщить вам статус любого системного разрешения или легко запросить его.
![](https://habrastorage.org/files/eb2/9cd/a9f/eb29cda9f19c4abfa5c7bfba790462ae.png)
11. FileKit от NikolaiVazquez
![](https://habrastorage.org/files/c86/46c/0f8/c8646c0f844e448dbbceb517bee450d7.png)
FileKit — это фреймворк для Swift, который обеспечивает простую и выразительную систему управления файлами. Посмотрите примеры того, как она используется.
12. SwiftyUserDefaults от RadekPietruszewski
SwiftyUserDefaults делает user defaults приятными в использовании, сочетая выразительные API от Swiftly с преимуществами static typing. Определяйте все ключи в одном месте, легко применяйте типы-значения и вдобавок бесплатно получайте дополнительную безопасность и проверку на этапе компиляции.
13. Kingfisher от 王巍(Wei Wang)
![](https://habrastorage.org/files/66a/f26/7f4/66af267f405c4addb7c650466d8f519e.png)
Kingfisher — это компактная библиотека для асинхронного скачивания и кэширования картинок из Сети, специально для Swift.
14. Hero от Luke Zhao
![](https://habrastorage.org/files/14a/abb/32f/14aabb32f5414d808397686895503da8.png)
Hero — это библиотека для построения переходов между ViewController-ами на iOS. Она дополняет неудобные API для переходов от UIKit и упрощает процесс настройки переходов.
15. Hedwig от 王巍 (Wei Wang)
![](https://habrastorage.org/files/32d/775/b4a/32d775b4a06446019e7e31653d643282.png)
Hedwig — это пакет Swift, предоставляющий набор API высокого уровня, которые позволяют легко отправлять письма на SMTP-сервер. Если вы планируете рассылать сообщения из своего будущего сногсшибательного клиент-серверного приложения, возможно, Hedwig — как раз то, что вам нужно.
16. DeviceKit от DennisWeissmann
DeviceKit — это замена типов-значений дляUIDevice. Без проблем получайте информацию о состоянии девайса и уровне зарядки.
17. Charts
![](https://habrastorage.org/files/3d3/0a0/7be/3d30a07be7cb4b7786b83b9ede85b967.png)
Библиотека красивых диаграмм самых разных типов: столбчатых, круговых, точечных, трехмерных, радиальных и так далее.
18. MGSwipeTableCell
Простой в использовании подкласс UITableViewCell, который позволяет отображать кнопки-слайдеры с разными видами переходов.
![](https://habrastorage.org/files/7f6/1f7/fcf/7f61f7fcf16249219136f3144072a1dc.png)
![](https://habrastorage.org/files/5e9/4c0/739/5e94c0739a804186851ea509e87ba3d0.png)
![](https://habrastorage.org/files/70e/410/f11/70e410f1187c48838f4df87dfae4d751.png)
19. RandomKit от NikolaiVazquez
![](https://habrastorage.org/files/76c/a0b/e8f/76ca0be8f620449cb539ff99bf0ff7d9.png)
Простой и понятый генератор случайных данных.
20. ResponseDetective
![](https://habrastorage.org/files/090/87b/e24/09087be2402e461d8c19b6fd70cc4e74.png)
ResponseDetective — фреймворк, который, минимально вмешиваясь в процесс, перехватывает все исходящие запросы и входящие ответы между приложением и сервером для отладки.
21. Onboard
![](https://habrastorage.org/files/2b8/78b/d2f/2b878bd2fbaf4125abd89429145f3008.gif)
![](https://habrastorage.org/files/b92/af9/333/b92af9333d994573879f98f6ccfb2a8d.gif)
![](https://habrastorage.org/files/4e8/725/744/4e872574485c4b50b0f969a56716ed98.gif)
Без лишних усилий создавайте красивые и захватывающие презентации всего несколькими строчками кода.
22. Quick + Nimble от もどかしい
![](https://habrastorage.org/files/0a0/dec/bf0/0a0decbf0ff24bddba892d90e8e8ef01.png)
Quick — это фреймворк для тестирования BDD на Swift и Objective-C. К нему прилагается Nimble — фреймворк, расширяющий возможности сравнения данных.
23. Natalie от Marcin Krzyzanowski
Natalie генерирует код Swift на основании сторибордов, тем самым делая работу со Storyboard и Segue проще. Сгенерированные файлы сокращают использование строк в качестве идентификаторов Storyboard и Seguе.
24. RxSwift от ReactiveExtensions*
![](https://habrastorage.org/files/8ef/267/1cf/8ef2671cfc5e49e790c1a254724ce41c.png)
Интересуетесь реактивным программированием на Swift? RxSwift к вашим услугам.
25. GDPerformanceView от Daniil Gavrilov
![](https://habrastorage.org/files/375/3e9/ab6/3753e9ab6a2e44bf807d2800f8480c97.png)
![](https://habrastorage.org/files/339/feb/5df/339feb5df221423d9a6d38801aa8cc60.png)
![](https://habrastorage.org/files/8f8/df4/3ed/8f8df43ed4fb46498b82b1521c877f40.png)
![](https://habrastorage.org/files/f4f/732/617/f4f732617e74457cbe93cc23661f1e9e.png)
GDPerformanceView показывает FPS, процент загрузки CPU, версии приложения и iOS над статус баром и предоставляет отчеты о FPS и загрузке CPU через делегат.
26. Alamofire
![](https://habrastorage.org/files/a7c/3ac/1a2/a7c3ac1a22da474cb4ef1292a7520f07.png)
Alamofire — это сетевая HTTP библиотека, написанная на Swift.
27. SwiftyStoreKit от Andrea Bizzotto
![](https://habrastorage.org/files/e9b/e05/7bd/e9be057bd709419bb1691d37f0c8757c.png)
SwiftyStoreKit — это небольшой фреймворк для работы с встроенными покупками на iOS (версии 8.0 и выше), TvOS (версии 9.0 и выше) и macOS (версии 10.10 и выше).
28. Timepiece от AnyType
Интуитивная работа с данными на Swift.
29. CryptoSwift от Marcin Krzyzanowski
Функции и помощники для Swift, связанные с криптографией, реализованные на Swift.
30. FSCalendar
![](https://habrastorage.org/files/20c/18b/2d2/20c18b2d2e134fbaafe9e69074c5f589.png)
Библиотека настраиваемых календарей для iOS, совместимая с Objective-C и Swift.
![](https://habrastorage.org/files/357/d23/bf8/357d23bf8f814145a7087bb826592d76.jpeg)
![](https://habrastorage.org/files/aac/a9d/4ad/aaca9d4ad9894a28a970462e52006633.png)
31. ImageViewer от KristianAngyal
Решение для просмотра картинок в стиле Twitter.
32. PromiseKit
![](https://habrastorage.org/files/f7b/180/2b8/f7b1802b83c54124aed7b6316959a0a5.png)
PromiseKit — это вдумчивое и полное внедрение promises на любую платформу при помощи swiftc. Он отлично адаптирован для использования в ObjectiveC и предлагает превосходные специализации для iOS, TvOs, macOS и watchOS.
33. Ensembles от Drew McCormack
![](https://habrastorage.org/files/f31/fef/0df/f31fef0df3074f2fbef5cc14fbee3a09.png)
Ensembles — это фреймворк для Objective-C с поддержкой Swift, который расширяет фреймворк CoreData от Apple, добавляя пиринговую синхронизацию для macOS и iOS. Многочисленные постоянные хранилища SQLite могут быть связаны посредством любой платформы для синхронизации файлов, например, iCloud или Dropbox. Фреймворк можно при первой необходимости расширить для поддержки любого сервиса, который обладает способностью перемещать файлы между девайсами, включая настраиваемый сервер.