Александр Титула-Бойченко "Приложения для соцсетей....

75
Я.Субботник, Киев, 5 мая 2012 года Разработчик интерфейсов Александр Титула-Бойченко Приложения для соцсетей. Универсальные приложения на БЭМ

description

Рассказывается, как с помощью БЭМ-методологии и инструментов создать приложение, которое легко встраивается в разные социальные сети, такие как Facebook, ВКонтакте и Мой Мир.

Transcript of Александр Титула-Бойченко "Приложения для соцсетей....

Page 1: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Я.Субботник, Киев, 5 мая 2012 года

Разработчик интерфейсовАлександр Титула-Бойченко

Приложения для соцсетей.Универсальные приложения на БЭМ

Page 2: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Зачем?

2

Page 3: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Зачем?

2

— Аудитория свыше 25 млн. пользователей

Page 4: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Зачем?

2

— Аудитория свыше 25 млн. пользователей

— Реклама товаров и услуг

Page 5: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Зачем?

2

— Аудитория свыше 25 млн. пользователей

— Реклама товаров и услуг

— Способ заработка денег

Page 6: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Зачем?

2

— Аудитория свыше 25 млн. пользователей

— Реклама товаров и услуг

— Способ заработка денег

— Способ взаимодействия с пользователями

Page 7: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Как?

3

Page 8: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Как?

3

— iFrame

Page 9: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Как?

3

— iFrame

— Любые технологии, поддерживаемые браузером

Page 10: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Как?

3

— iFrame

— Любые технологии, поддерживаемые браузером

— JavaScript API для взаимодействия с соцсетью

Page 11: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Яндекс.Фотки

4

Page 12: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Яндекс.Фотки

4

— Хостинг фотографий от Яндекса

Page 13: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Яндекс.Фотки

4

— Хостинг фотографий от Яндекса

— Без ограничений на размер фотографии

Page 14: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Яндекс.Фотки

4

— Хостинг фотографий от Яндекса

— Без ограничений на размер фотографии

— Без ограничений на количество фотографий

Page 15: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Яндекс.Фотки

4

— Хостинг фотографий от Яндекса

— Без ограничений на размер фотографии

— Без ограничений на количество фотографий

— Альбомы, метки, геотеги, комментарии, EXIF и тд.

Page 16: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Яндекс.Фотки

4

— Хостинг фотографий от Яндекса

— Без ограничений на размер фотографии

— Без ограничений на количество фотографий

— Альбомы, метки, геотеги, комментарии, EXIF и тд.

— Бесплатно

Page 17: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Фото дня

5

Page 18: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Фото дня на Яндекс.Фотках

6

clck.ru/1-r_X

Page 19: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Задача

7

Page 20: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Задача

7

— Показывать Фото дня на Яндекс.Фотках

Page 21: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Задача

7

— Показывать Фото дня на Яндекс.Фотках

— Подстраивание под текущую социальную сеть

Page 22: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Задача

7

— Показывать Фото дня на Яндекс.Фотках

— Подстраивание под текущую социальную сеть

— дизайном

Page 23: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Задача

7

— Показывать Фото дня на Яндекс.Фотках

— Подстраивание под текущую социальную сеть

— дизайном

— функциональностью

Page 24: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Пожелания разработчиков

8

Page 25: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Пожелания разработчиков

8

— Наличие ядра проекта, в котором реализована базовая функциональность

Page 26: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Пожелания разработчиков

8

— Наличие ядра проекта, в котором реализована базовая функциональность

— Быстро создавать новые приложения для других социальных сетей

Page 27: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Пожелания разработчиков

8

— Наличие ядра проекта, в котором реализована базовая функциональность

— Быстро создавать новые приложения для других социальных сетей

— Легко модифицировать все приложение или его отдельные модули

Page 28: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Реализация

9

Page 30: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Уровни переопределения

11

Уровень переопределения — это набор реализаций блоков, сгруппированных в одну директорию

Page 31: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Уровни переопределения

12

На проекте может быть несколько

Page 32: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Уровни переопределения

13

Подключив код с разных уровней переопределения получаем готовый продукт

Page 33: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

BEM-tools

14

clck.ru/Pb65

Инструменты для работы с файлами, написанными по БЭМ методу

Page 34: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Фоторама

15

Симпатичная javascript-галерея

fotoramajs.com

Page 35: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

BEM-bl

16

Библиотека блоков, написанная по БЭМ методу

clck.ru/Kuu4

Page 36: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Технологии

17

Page 37: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Технологии

17

— bemjson

Page 38: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Технологии

17

— bemjson

— bemhtml

Page 39: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Технологии

17

— bemjson

— bemhtml

— i-bem.js

Page 40: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

bemjson

18

{ block: 'b-gallery', content: { block: 'b-fotorama', elem: 'preloader', content: 'Загрузка данных...'}

Like JSON формат описания БЭМ дерева документа

Page 41: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

bemhtml

19

block b-gallery { attrs: { id: 'fotorama'},}

JavaScript шаблонизатор для преобразования bemjson в HTML

Page 42: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

bemjson+bemhtml=HTML

20

<div class="b-gallery" id="fotorama"> <div class="b-fotorama__preloader"> Загрузка данных...

</div></div>

Наложением bemhtml на bemjson получаем HTML

Page 43: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

i-bem.js

21

Это JavaScript библиотека умеющая работать с документом в БЭМ-терминах.

Page 44: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Более подробно в клубе БЭМ

22

clubs.ya.ru/bem/

Page 45: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Page 46: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Уровни переопределения:

Page 47: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Уровни переопределения:

— bem-bl

Page 48: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Уровни переопределения:

— bem-bl

— blocks

Page 49: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Уровни переопределения:

— bem-bl

— blocks

— fotorama.js

Page 50: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Уровни переопределения:

— bem-bl

— blocks

— fotorama.js

— получение и обработка данных

Page 51: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Ядро

23

Уровни переопределения:

— bem-bl

— blocks

— fotorama.js

— получение и обработка данных

— основной макет приложения

Page 52: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Fotorama.js

24

blocks/ b-fotorama/ b-fotorama.css b-fotorama.js

Page 53: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Получение и обработка данных

25

rss/ rss.xml

blocks/ b-gallery/

b-gallery.bemhtml b-gallery.css b-gallery.js

Page 54: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Основной макет приложения

26

({ block: 'b-page', title: 'Фото дня на Яндекс.Фотках', head: [ { elem: 'css', url: '_index.css'}, { block: 'i-jquery', elem: 'core' }, { elem: 'js', url: '_index.js' } ], content: [{ block: 'b-gallery', content: { block: 'b-fotorama', elem: 'preloader', content: 'Загрузка данных...' } },{ block: 'b-social' }]})

index.bemjson.js

Page 55: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Основной макет приложения

27

Page 56: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Facebook

28

Page 57: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Facebook

28

— blocks-fb

Page 58: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Facebook

28

— blocks-fb

— изменение размера вьюпорта

Page 59: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Facebook

28

— blocks-fb

— изменение размера вьюпорта

— изменение дизайна fotorama.js

Page 60: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Facebook

28

— blocks-fb

— изменение размера вьюпорта

— изменение дизайна fotorama.js

— кнопка Share

Page 61: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Изменение размера вьюпорта

29

blocks-fb/ b-gallery/ b-gallery.bemhtml

block b-gallery { js: { width: '760', height: '520' }}

Page 62: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Изменение дизайна fotorama.js

30

blocks-fb/ b-fotorama/ b-fotorama.css

.fotorama__wrap { background: #fff;}...

Page 63: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Кнопка Share

31

blocks-fb/ b-social/ __like/ b-social__like.css b-social.bemhtml

block b-social { content: [{ elem: 'like' }]}

.b-social__like { position: absolute; top: 3px; right: 3px;}

Page 64: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Facebook

32

clck.ru/1-wuz

Page 65: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Вконтакте

33

clck.ru/1-wxx

Page 66: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Мой Мир@mail.ru

34

Page 67: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

Page 68: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

— Гибкость за счет уровней переопределения

Page 69: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

— Гибкость за счет уровней переопределения

— Легкая модификация приложения

Page 70: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

— Гибкость за счет уровней переопределения

— Легкая модификация приложения

— Понятная файловая структура

Page 71: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

— Гибкость за счет уровней переопределения

— Легкая модификация приложения

— Понятная файловая структура

— Новые возможности раскатываются сразу на всех приложениях

Page 72: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

— Гибкость за счет уровней переопределения

— Легкая модификация приложения

— Понятная файловая структура

— Новые возможности раскатываются сразу на всех приложениях

— Командная работа

Page 73: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Выводы

35

— Гибкость за счет уровней переопределения

— Легкая модификация приложения

— Понятная файловая структура

— Новые возможности раскатываются сразу на всех приложениях

— Командная работа

— Подобный принцип можно применять для многих программных продуктов в вебе

Page 74: Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения на БЭМ"

Фото дня на Яндекс.Фотках

36

clck.ru/1-r_X