ShareKit — сделайте мне красиво: интеграция iOS-приложений с социальными сетями

автор Виктор Котов

2 Июл 2013

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

Способы интеграции с социальными сетями

Несмотря на то, что компания Apple явно осознает важность интеграции с социальными сетями, добавив поддержку на системном уровне сначала для Twitter, а потом и для Facebook, этот процесс идёт не очень быстро, а с учетом большого количества универсальных или специализированных соцсетей — недостаточно быстро. Это вынуждает разработчиков заниматься изучением SDK каждой из сетей, а также реализовывать интерфейс для взаимодействия с ними.

Однако в некоторых случаях проще и эффективнее использовать «универсальное решение», такое, например, как фреймворк ShareKit, позволяющий достаточно легко добавить в приложение возможность интеграции с различными соцсетями — более 10, в том числе ВКонтакте).

ShareKit

Фреймворк имеет несколько удобных для пользователей возможностей, например, запоминает и сортирует список сервисов в зависимости от выбора пользователя, фильтрует список сервисов в зависимости от типа объекта, которым пользователь собирается поделиться, поддерживает отложенную публикацию, если нет доступа в интернет, и т. д.

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

Современные же приложения, да и стандартный для iOS 6 интерфейс операции с данными UIActivityViewController, как правило стараются выделиться дизайном (после анонса iOS 7 — это утверждение может принять немного иной смысл!). Поэтому хочу поделиться собственным опытом по замене стандартного списка сервисов ShareKit специально разработанным интерфейсом.

Разработка, как всегда, состоит из двух частей:

  • Интерфейс — реализуем всё в соответствии с задумками заказчика/дизайнера.
  • Код — добавляем фреймворк ShareKit как обычно, в соответствии с описанием на его сайте.

В контроллере, где собираемся использовать фреймворк, добавляем импорт следующих классов:

#import "SHK.h"
#import "SHKItem.h"
#import "SHKSharer.h"

В нужном методе:

// создаем нужного типа объект для «расшаривания»

SHKItem *item = [SHKItem image:image title:_child.name];

// создаем нужного типа «шарильщик»

SHKSharer* sharer = [[NSClassFromString(@"SHKVkontakte") alloc] init];

// отдаем объект «шарильщику»
[sharer loadItem:item];

// «шарим» 🙂
[sharer share];

Дальше фреймворк сделает всё самостоятельно, при условии, что все нужные учётные записи соцсетей настроены. Для Facebook и Twitter автоматически будет либо использоваться «родной» интерфейс iOS, если её версия позволяет это сделать, либо SDK этих соцсетей.

Основные типы объектов:

  • ссылка;
  • текст;
  • картинка;
  • файл.

Список типов «шарильщиков» можно найти в папке ShareKit/Classes/ShareKit/Sharers/Services.

Удачной интеграции!

P.S.

Pros & Сons

Разработчики ShareKit не рекомендуют вносить значительные изменения в работу фреймворка. Например, в «родном» списке используется сортировка сервисов в зависимости от частоты использования, а в переработанном интерфейсе эта возможность может потеряться или потребовать дополнительной разработки.

Также в некоторых случаях потребуется добавить поддержку проверки доступности того или иного сервиса: например, установлено ли приложение Instagram, которые используется фреймворком через URL-схему. Поэтому, как и всегда, выбирая то или иное решение, необходимо оценить его целесообразность для каждого конкретного случая.

  • 0 Репосты

Комментарии

Фильтр

Закрыть

Технологии

Индустрии