All Projects → iSa1vatore → vk-mini-app-boilerplate

iSa1vatore / vk-mini-app-boilerplate

Licence: MIT License
Стартовый кит для создания сервиса на платформе VK Mini Apps с использованием React + Redux

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to vk-mini-app-boilerplate

InTouch
👥 InTouch - is a programming SDK build around vk.com API exposing most of the social platform features including messaging, news feed fetching, communities, and media management.
Stars: ✭ 33 (-45.9%)
Mutual labels:  vk, vkontakte, vk-api
Vk Api Schema
JSON Schema of VK API
Stars: ✭ 158 (+159.02%)
Mutual labels:  vk, vkontakte, vk-api
Vk To Telegram Bot
Bot for auto-reposting posts from VK to Telegram channel
Stars: ✭ 103 (+68.85%)
Mutual labels:  vk, vkontakte, vk-api
py-vkontakte
A Python wrapper around the vk.com
Stars: ✭ 17 (-72.13%)
Mutual labels:  vk, vkontakte, vk-api
easyvk-go
Simple way to work with VK API
Stars: ✭ 47 (-22.95%)
Mutual labels:  vk, vkontakte, vk-api
Vkrss
Generates RSS feed of opened/closed vk.com wall or global searched opened posts. Features: post filtering (include/exclude by regexp and/or by owner type), ads skipping, automatic title generation, hash-tags extraction as RSS categories, initial author extraction, HTML formatting
Stars: ✭ 59 (-3.28%)
Mutual labels:  vk, vkontakte, vk-api
vk-spammer
Спаммер сообщений для вк
Stars: ✭ 47 (-22.95%)
Mutual labels:  vk, vkontakte, vk-api
vbio
Python модуль для написания скриптов, использующих Bots API для социальной сети Вконтакте (vk.com)
Stars: ✭ 10 (-83.61%)
Mutual labels:  vk, vkontakte, vk-api
VK-Scraper
Scrapes VK user's photos
Stars: ✭ 42 (-31.15%)
Mutual labels:  vk, vkontakte, vk-api
Node Vk Bot Api
🤖 VK bot framework for Node.js, based on Bots Long Poll API and Callback API.
Stars: ✭ 195 (+219.67%)
Mutual labels:  vk, vkontakte, vk-api
Vk api
Модуль для создания скриптов для ВКонтакте | vk.com API wrapper
Stars: ✭ 1,070 (+1654.1%)
Mutual labels:  vk, vkontakte, vk-api
kasthack.osp
Генератор сырых дампов пользователей VK.
Stars: ✭ 15 (-75.41%)
Mutual labels:  vk, vkontakte, vk-api
Vk.py
Extremely-fast, easy-to-use, [not] ready for production. The asyncio based library for Python and Humans written to be efficient and reliable. [Unmaintained]
Stars: ✭ 38 (-37.7%)
Mutual labels:  vk, vkontakte, vk-api
VideoforVk
Video for Vk (or VT) is client for Vk video API.
Stars: ✭ 27 (-55.74%)
Mutual labels:  vk, vkontakte, vk-api
Vkb
Bot for vk.com competitions
Stars: ✭ 24 (-60.66%)
Mutual labels:  vk, vkontakte, vk-api
Sketal
Бот для ВКонтакте. Беседы / группы / развлечения.
Stars: ✭ 119 (+95.08%)
Mutual labels:  vk, vkontakte, vk-api
Vk Requests
vk.com requests for humans. API library for vk.com
Stars: ✭ 162 (+165.57%)
Mutual labels:  vk, vkontakte, vk-api
Swiftyvk
Easy and powerful way to interact with VK API for iOS and macOS
Stars: ✭ 247 (+304.92%)
Mutual labels:  vk, vkontakte, vk-api
vk-api
VK SDK | VKontakte wrapper for standalone apps
Stars: ✭ 30 (-50.82%)
Mutual labels:  vk, vkontakte, vk-api
pyscrapers
Scrapers for vk, facebook, instagram and more
Stars: ✭ 18 (-70.49%)
Mutual labels:  vk, vkontakte

VK Mini App Boilerplate

Стартовый кит для создания сервиса на платформе VK Mini Apps.

Чтобы понимать, что здесь происходит вы должны знать что такое VK Mini Apps, ReactJS и React Redux.

Документация по VK Mini Apps

Документация по ReactJS

Документация по React Redux

Установка:

git clone git://github.com/iSa1vatore/vk-mini-app-boilerplate.git <folder name>

Перейдите в созданную папку и выполните команды: npm install и npm start, последняя запустит сервер для разработки на localhost:10888

Отлично, теперь перед нами демонстративное приложение, можно править код и все изменения сразу будут видны на нашем сервере при помощи "Hot Reloading".

KIT:

Что реализовано:

  • Поддержка темы нативного клиента
  • Поддержка iOS swipe back для панелей
  • Обработка хардверной кнопки "назад" для Android
  • Сохранение позиции скролла для панелей и элементов
  • Scroll To Top при нажатии на иконку в Epic`e
  • Получение токена пользователя
  • Запросы к API ВКонтакте
  • Сохранение данных в форме при смене панели
  • Роутер

Роутер:

Действия которые роутер может выполнить:

  • setStory(story, initial_panel) - Устанавливает активную Story у Epic'a, View и активную панель.
  • setPage(view, panel) - Устанавливает активный View и Panel
  • goBack(from) - Совершает действие назад, будь то закрытие модального окна, переход на прошлую панель, закрытие попапа и т.п;
  • openPopout(popout) - Открывает поппап.
  • closePopout() - Закрывает поппап.
  • openModal(id) - Открывает модальную страницу по её ID.
  • closeModal() - Закрывает модальную страницу или открывает прошлую страницу.

Примеры того как это все работает смотрите в исходниках ¯_(ツ)_/¯, там все просто.

Сохранение позиции скролла:

Для сохранения позиции горизонтального скоролла нужно:

  • Указать ID для элемента HorizontalScroll
<HorizontalScroll id="EXAMPLE_TABS_LIST">
...
</HorizontalScroll>
  • Сохранить позицию при демонтировании
componentWillUnmount() {
    const {setScrollPositionByID} = this.props;

    setScrollPositionByID("EXAMPLE_TABS_LIST");
}
  • Восстановить позицию при монтировании
componentDidMount() {
    restoreScrollPosition();
}

Пример находится в файле: /src/js/panels/more/base.js

Важно:

В файле index.js на 24 стороке указывается стартовая панель приложения:

store.dispatch(setStory('home', 'base'));

В данном случае это значит, что приложение запустится с:

activeStory: home

activeView: home

activePanel: base

Как вы поняли значение ID у Root и стартового View должны совпадать.

В проекте есть 2 файла: "App" и "AppWithoutEpic", первый идет с навигационной панелью Epic, второй без, он подойдет для простых приложений.

import App from './App';

По умолчанию для примера выбран вариант с Epic навигацией.

В файле по пути /src/js/services/VK.js нужно заменить значение константы APP_ID на ID вашего приложения

Демо: vk.com/app6984089

Мой VK (вопросы, предложения): Ivan Salvatore

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].