Отличного пятничного настроения, друзья!
Сегодня мы приготовили для вас полезный перевод поста основателя Ecler Studios Pawel Bialecki, в котором он предлагает нашему вниманию 33 open source проекта для iOS разработчиков.
С помощью своего аккаунта в GitHub он открыл для себя множество перспективных инструментов и отобрал, по его мнению, лучшие из них для своих читателей.



1. IGListKit от InstagramEngineering




Созданный разработчиками Instagram, IGListKit представляет собой управляемый данными фреймворк для UICollectionView, с помощью которого можно быстро создавать гибкие списки. Также он помогает обойтись без MassiveViewControllers в приложении. Ознакомьтесь с туториалом от Ray Wenderlich, в котором объясняется, как внедрить эту библиотеку в проект, или прочитайте статью Rodrigo Cavalcante о переносе существующих UITableView в IGListCollectionView.

2. Realm от realm.io




Realm – это мобильная база данных, которая работает прямо внутри телефонов, планшетов и носимых девайсов, причем не только на iOS. Если хотите попробовать что-то существенно отличающееся от CoreData, отдайте предпочтение Realm. Многие считают его современной, готовой к запуску альтернативой нативному решению от Apple.

3. Moya от Ash Furrow




Moya — это недостающий сетевой уровень для вашего приложения. Больше вам не придется ломать голову, куда (и как) помещать сетевые запросы, Moya об этом позаботится.


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




Это решение, разработанное (ну, или выкупленное) компанией Google, пожалуй, можно назвать лучшим аналитическим инструментом для iOS. Отслеживайте, как используется приложение, насколько вовлечены пользователи, какие события происходят; задавайте пользовательские характеристики, создавайте индивидуально настроенные аудитории и многое другое.

7. AsyncDisplayKit


Команда Facebook создала этот UI SDK для своего приложения Paper. Если хотите, чтобы рендер вашего приложения всегда происходил со скоростью 60 фреймов в минуту, обязательно обратите внимание на эту библиотеку. Здесь можно почитать об опыте команды Buffer.

8. DZNEmptyDataSet



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

9. Chameleon от Vicc Alexander




Chameleon — это компактный, но мощный фреймворк для работы с цветом на iOS. В его основе лежит идея о том, что приложения должны работать с легкостью и при этом сохранять приятный для глаз интерфейс.

С Chameleon вам не нужно будет возиться со значениями RGB, часами подбирать наилучшее сочетание оттенков для приложения и переживать, хорошо ли будет читаться текст на разных цветах фона.



10. PermissionScope от Nick O'Neill




PermissionScope — фреймворк на Swift, позволяющий по-умному запрашивать разрешение у пользователей. Он содержит не только простой UI для отправления запросов, но и API для разрешений, который может сообщить вам статус любого системного разрешения или легко запросить его.


11. FileKit от NikolaiVazquez




FileKit — это фреймворк для Swift, который обеспечивает простую и выразительную систему управления файлами. Посмотрите примеры того, как она используется.

12. SwiftyUserDefaults от RadekPietruszewski


SwiftyUserDefaults делает user defaults приятными в использовании, сочетая выразительные API от Swiftly с преимуществами static typing. Определяйте все ключи в одном месте, легко применяйте типы-значения и вдобавок бесплатно получайте дополнительную безопасность и проверку на этапе компиляции.

13. Kingfisher от ??(Wei Wang)




Kingfisher — это компактная библиотека для асинхронного скачивания и кэширования картинок из Сети, специально для Swift.

14. Hero от Luke Zhao




Hero — это библиотека для построения переходов между ViewController-ами на iOS. Она дополняет неудобные API для переходов от UIKit и упрощает процесс настройки переходов.

15. Hedwig от ?? (Wei Wang)




Hedwig — это пакет Swift, предоставляющий набор API высокого уровня, которые позволяют легко отправлять письма на SMTP-сервер. Если вы планируете рассылать сообщения из своего будущего сногсшибательного клиент-серверного приложения, возможно, Hedwig — как раз то, что вам нужно.

16. DeviceKit от DennisWeissmann


DeviceKit — это замена типов-значений дляUIDevice. Без проблем получайте информацию о состоянии девайса и уровне зарядки.

17. Charts



Библиотека красивых диаграмм самых разных типов: столбчатых, круговых, точечных, трехмерных, радиальных и так далее.

18. MGSwipeTableCell



Простой в использовании подкласс UITableViewCell, который позволяет отображать кнопки-слайдеры с разными видами переходов.




19. RandomKit от NikolaiVazquez




Простой и понятый генератор случайных данных.

20. ResponseDetective



ResponseDetective — фреймворк, который, минимально вмешиваясь в процесс, перехватывает все исходящие запросы и входящие ответы между приложением и сервером для отладки.

21. Onboard




Без лишних усилий создавайте красивые и захватывающие презентации всего несколькими строчками кода.

22. Quick + Nimble от ?????



Quick — это фреймворк для тестирования BDD на Swift и Objective-C. К нему прилагается Nimble — фреймворк, расширяющий возможности сравнения данных.

23. Natalie от Marcin Krzyzanowski



Natalie генерирует код Swift на основании сторибордов, тем самым делая работу со Storyboard и Segue проще. Сгенерированные файлы сокращают использование строк в качестве идентификаторов Storyboard и Seguе.

24. RxSwift от ReactiveExtensions*




Интересуетесь реактивным программированием на Swift? RxSwift к вашим услугам.

25. GDPerformanceView от Daniil Gavrilov







GDPerformanceView показывает FPS, процент загрузки CPU, версии приложения и iOS над статус баром и предоставляет отчеты о FPS и загрузке CPU через делегат.

26. Alamofire




Alamofire — это сетевая HTTP библиотека, написанная на Swift.

27. SwiftyStoreKit от Andrea Bizzotto




SwiftyStoreKit — это небольшой фреймворк для работы с встроенными покупками на iOS (версии 8.0 и выше), TvOS (версии 9.0 и выше) и macOS (версии 10.10 и выше).

28. Timepiece от AnyType


Интуитивная работа с данными на Swift.

29. CryptoSwift от Marcin Krzyzanowski


Функции и помощники для Swift, связанные с криптографией, реализованные на Swift.

30. FSCalendar



Библиотека настраиваемых календарей для iOS, совместимая с Objective-C и Swift.



31. ImageViewer от KristianAngyal


Решение для просмотра картинок в стиле Twitter.

32. PromiseKit




PromiseKit — это вдумчивое и полное внедрение promises на любую платформу при помощи swiftc. Он отлично адаптирован для использования в ObjectiveC и предлагает превосходные специализации для iOS, TvOs, macOS и watchOS.

33. Ensembles от Drew McCormack




Ensembles — это фреймворк для Objective-C с поддержкой Swift, который расширяет фреймворк CoreData от Apple, добавляя пиринговую синхронизацию для macOS и iOS. Многочисленные постоянные хранилища SQLite могут быть связаны посредством любой платформы для синхронизации файлов, например, iCloud или Dropbox. Фреймворк можно при первой необходимости расширить для поддержки любого сервиса, который обладает способностью перемещать файлы между девайсами, включая настраиваемый сервер.
Поделиться с друзьями
-->

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


  1. J_K
    28.01.2017 00:30

    которые будут популярны

    Почему в будущем времени? Многие уже весьма популярны.


    1. EverydayTools
      28.01.2017 06:39

      Ну тогда пришлось бы писать, которые продолжат быть популярными и станут популярными в 2017 :)


      1. J_K
        28.01.2017 08:23

        Пишите проще. "Популярные библиотеки с открытым исходным кодом". И все понятно.


  1. PapaBubaDiop
    28.01.2017 01:12
    +1

    Спасибо за

    SwiftyJSON


  1. iWheelBuy
    28.01.2017 05:14

    Valet? Почему не KeychainAccess?


    1. EverydayTools
      28.01.2017 06:49

      Вот аккаунт автора. Он открыт для дискуссии. Также можно оставить комментарий под статьей-оригиналом


  1. slutsker
    28.01.2017 10:14

    Большое спасибо, много интересных библиотек. Иногда сложно понять, какая из библиотек не теряет свою актуальность.


  1. IGHOR
    28.01.2017 13:42

    Qt SDK тоже open source проект для iOS разработчиков (и всех других ОС заодно).


  1. AlexWoodblock
    29.01.2017 08:17

    FileKit, насколько я знаю, не самый лучший выбор. Он удобный, но в нем есть несколько проблем — к примеру, лично столкнулся с такой проблемой: при использовании FileKit внутри блока, отправленного через dispatch_async, использование памяти растёт неограниченно из-за создания новых потоков. Плюс в нем не используется NSFileCoordinator, что тоже не есть хорошо.


  1. aetozu
    29.01.2017 08:17

    Если чей-то юридический отдел не устраивает AsyncDisplayKit, то замечательная альтернатива — LayoutKit от LinkedIn. Собственно из-за претензий юротдела он и был сделан.


    1. egormerkushev
      30.01.2017 10:10

      А можете кратко пояснить суть проблемы, пожалуйста?


      1. aetozu
        30.01.2017 11:00

        В LinkedIn не дали большего пояснения, кроме как лёгкой ремарки в Твиттере про патентование, но попробую сам:
        AsyncDisplayKit использует BSD 3-clause лицензию, в то время как LayoutKit — Apache-2.0. Основное отличие между ними заключается в том, что Apache даёт защиту в виде автоматического патентования кода авторами и соавторами, в то время как BSD лицензия требует ручного патентования, что, в свою очередь, насколько я могу судить, даёт возможность для патентных троллей в том случае, если права на код не были установлены. То есть в случае с BSD для защиты прав на код каждый отдельный соавтор должен пойти в соответствующую инстанцию сразу после коммита, и так каждый раз, что представляет угрозу для дальнейшего использования, особенно в крупных проектах.


        1. egormerkushev
          30.01.2017 16:35

          В такой трактовке вы хотите сказать, что ушлый тролль может потребовать отчислений за использование AsyncDisplayKit в проектах третьих лиц? Фейсбук вряд ли себе такую мину мог подложить…


          1. aetozu
            30.01.2017 16:43

            Я только пытаюсь сделать вывод на основании твита и разницы в лицензиях. Насколько я понимаю, Фейсбук вполне мог запатентовать конкретную версию кода и пользоваться ею, а небольшие коммиты его могут мало интересовать. В лицензии есть дыра с правами, но конкретно себя Фейсбук защитил, я в этом уверен. Возможно, их юротдел вообще потоком штампует патенты на новые коммиты, пусть даже и небольшие, но это неизвестно. В целом есть теоретическая угроза, что, я думаю, не очень устраивает все коммерческие (и не только) проекты. Вот в LinkedIn и решили сделать своё решение.


  1. kpower
    05.02.2017 14:45

    В статье хвалят Firebase как аналитику. Долгое время пользовался Flurry, сейчас больше Fabric. Просьба к сообществу: поделитесь, пожалуйста, опытом и личными ощущениями — есть ли что-то принципиальное, почему стоит пробовать Firebase?