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

IT-копирайтер
Время чтения: 5 минут
Социальные сети давно стали неотъемлемой частью жизни современного человека, поэтому многие мобильные приложения интегрируют эти сервисы в том или ином виде, начиная от упрощенной регистрации и заканчивая полноценными мобильными клиентами. Сегодня я хочу немного затронуть возможные способы интеграции и поделиться собственным опытом замены стандартного списка сервисов, создаваемого фреймворком 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-схему. Поэтому, как и всегда, выбирая то или иное решение, необходимо оценить его целесообразность для каждого конкретного случая.
Комментарии