SlideShare a Scribd company logo
1 of 28
Разработка для Sailfish OS на
примере мессенджера для
социальной сети Вконтакте
Петр Вытовтов
osanwe@protonmail.ch
Содержание
● Устройство операционной системы Sailfish
● Обзор Qt Creator и Sailfish SDK
● Создание приложений для Sailfish OS на
практике
Архитектура Sailfish OS
Архитектура Sailfish OS
Архитектура Sailfish OS
● Аппаратное обеспечение
● Ядро Linux (включая драйвера)
● Mer
– Базовые функции операционной системы
● Пользовательский интерфейс
– Функциональные особенности
● Приложения
Архитектура Sailfish OS
Qt Creator
Qt Creator
Qt Creator
SDK. Основные типы
● Clipboard
● Screen
● StandardPaths
● ApplicationWindow
● PageStack
● Theme
SDK. Элементы управления
● BackgroundItem
● BusyIndicaor
● Button
● ColorPicker
● ColumnView
● ComboBox
● DatePicker
● DockedPanel
● Drawer
SDK. Элементы управления
● IconButton
● IconTextSwitch
● Keypad
● OpacityRampEffect
● ProgressBar
● RemorseItem
● RemorsePopup
● SearchField
● Separator
SDK. Элементы управления
● Slider
● Switch
● TextSwitch
● TimePicker
● TouchBlocker
● ValueButton
SDK. Ввод-вывод текста
● DetailItem
● EnterKey
● Label
● TextArea
● TextField
SDK. Контейнеры
● HorizontalScrollDecorator
● ListItem
● Page
● PageHeader
● ScrollDecorator
● SilicaFlickable
● SilicaGridView
● SilicaListView
● SilicaWebView
SDK. Контейнеры
● SlideshowView
● VerticalScrollDecorator
● ViewPlaceholder
SDK. Анимации
● AddAnimation
● FadeAnimation
● RemoveAnimation
SDK. Меню
● ContextMenu
● MenuItem
● MenuLabel
● PullDownMenu
● PushUpMenu
SDK. Диалоги
● Dialog
● DialogHeader
● ColorPickerDialog
● DatePickerDialog
● TimePickerDialog
SDK. Обложки
● CoverAction
● CoverActionList
● Cover
● CoverBackground
● CoverPlaceholder
Kat — что это?
● Публикация
– 17 марта 13:15
● В интернете
– http://bit.ly/198YALW
– http://bit.ly/1MPj0IX
● v0.1.0 (текущая)
– Базовый
функционал
● v0.2.0 (следующая)
– Кеширование
– Обработка
вложений
Практика. Обложка
CoverAction {
iconSource: "image"
onTriggered: {
// ...
}
}
CoverActionList {
id: coverAction
CoverAction {
// ...
}
}
Практика. Диалоги
SilicaListView {
// ...
model: ListModel {}
delegate: DialogItem {}
header: PageHeader {
// ...
}
footer: Button {
// ...
}
VerticalScrollDecorator{}
}
Практика. Диалоги
PullDownMenu {
// ...
MenuItem {
text: "Обновить"
onClicked:
}
}
Page {
// ...
onStatusChanged:
Component.onCompleted:
}
Практика. Диалог
SilicaFlickable {
PageHeader {}
SilicaListView {
clip: true
}
TextArea {
EnterKey.enabled:
EnterKey.iconSource:
EnterKey.onClicked:
}
PushUpMenu {}
}
Практика. Новое сообщение
Dialog {
DialogHeader {
acceptText: "Написать"
cancelText: "Отменить"
}
SilicaListView {
Component {
ContextMenu {}
}
}
onAccepted:
}
Практика. О программе
SilicaListView {
delegate: Item {
Label {
textFormat:
Text.StyledText
linkColor:
Theme.highlightColor
wrapMode: TextEdit.Wrap
onLinkActivated:
Qt.openUrlExternally(link)
}
}
}
Спасибо за внимание!
Петр Вытовтов
osanwe@protonmail.ch

More Related Content

What's hot

«Android Data Binding». Вадим Котов
«Android Data Binding». Вадим Котов«Android Data Binding». Вадим Котов
«Android Data Binding». Вадим КотовDataArt
 
UI Kit and design developig workflow
UI Kit and design developig workflowUI Kit and design developig workflow
UI Kit and design developig workflowArtem Molokov
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsNikita Lipsky
 
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...
Вадим Митин - как выстроить техническую платформу для стабильной работы web...sergey doronin
 
Gitify - швейцарский нож для MODX-воина
Gitify - швейцарский нож для MODX-воинаGitify - швейцарский нож для MODX-воина
Gitify - швейцарский нож для MODX-воинаMODX Беларусь
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidSQALab
 
GDG meetup #15: Как построить релиз-инжиниринг на Jenkins
GDG meetup #15: Как построить релиз-инжиниринг на JenkinsGDG meetup #15: Как построить релиз-инжиниринг на Jenkins
GDG meetup #15: Как построить релиз-инжиниринг на JenkinsMikhail Chinkov
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funAlexandr Khotemskoy
 
Enabling Docker Applications on OpenStack (using Murano)
Enabling Docker Applications on OpenStack (using Murano) Enabling Docker Applications on OpenStack (using Murano)
Enabling Docker Applications on OpenStack (using Murano) Mirantis IT Russia
 
"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii HolubievFwdays
 
Wodby - хостинг полного цикла
Wodby - хостинг полного циклаWodby - хостинг полного цикла
Wodby - хостинг полного циклаDrupalSib
 
Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"IT Event
 
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...РИФ-Воронеж
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...DrupalCamp MSK
 
Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Fwdays
 
Sergey Gavruk - Mix11
Sergey Gavruk - Mix11Sergey Gavruk - Mix11
Sergey Gavruk - Mix11beloslab
 
Tizen for Wearable Development Gear2 Danilov
Tizen for Wearable Development Gear2 DanilovTizen for Wearable Development Gear2 Danilov
Tizen for Wearable Development Gear2 DanilovKirill Danilov
 
О разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop developmentО разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop developmentAlexander Granin
 
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Ontico
 

What's hot (20)

«Android Data Binding». Вадим Котов
«Android Data Binding». Вадим Котов«Android Data Binding». Вадим Котов
«Android Data Binding». Вадим Котов
 
UI Kit and design developig workflow
UI Kit and design developig workflowUI Kit and design developig workflow
UI Kit and design developig workflow
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java Applications
 
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...Вадим Митин  -  как выстроить техническую платформу для стабильной работы web...
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
 
Gitify - швейцарский нож для MODX-воина
Gitify - швейцарский нож для MODX-воинаGitify - швейцарский нож для MODX-воина
Gitify - швейцарский нож для MODX-воина
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
GDG meetup #15: Как построить релиз-инжиниринг на Jenkins
GDG meetup #15: Как построить релиз-инжиниринг на JenkinsGDG meetup #15: Как построить релиз-инжиниринг на Jenkins
GDG meetup #15: Как построить релиз-инжиниринг на Jenkins
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Enabling Docker Applications on OpenStack (using Murano)
Enabling Docker Applications on OpenStack (using Murano) Enabling Docker Applications on OpenStack (using Murano)
Enabling Docker Applications on OpenStack (using Murano)
 
"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev
 
Wodby - хостинг полного цикла
Wodby - хостинг полного циклаWodby - хостинг полного цикла
Wodby - хостинг полного цикла
 
Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"
 
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
 
алексей диплом презентация
алексей диплом презентацияалексей диплом презентация
алексей диплом презентация
 
Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"
 
Sergey Gavruk - Mix11
Sergey Gavruk - Mix11Sergey Gavruk - Mix11
Sergey Gavruk - Mix11
 
Tizen for Wearable Development Gear2 Danilov
Tizen for Wearable Development Gear2 DanilovTizen for Wearable Development Gear2 Danilov
Tizen for Wearable Development Gear2 Danilov
 
О разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop developmentО разработке десктопных приложений / About desktop development
О разработке десктопных приложений / About desktop development
 
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
 

Similar to Разработка для Sailfish OS на примере мессенджера для социальной сети ВКонтакте

Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5DevDay
 
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Store2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Storesandy97
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Fwdays
 
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Badoo Development
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...Kirill Danilov
 
Автоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложенийАвтоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложенийAndrei Pugachev
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17MoscowJS
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Kuban Dzhakipov
 
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на LinuxПавел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на LinuxPlatonov Sergey
 
Введение во фронтенд-разработку
Введение во фронтенд-разработкуВведение во фронтенд-разработку
Введение во фронтенд-разработкуDenis Latushkin
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработкиdevclub
 
Building corporate portals with liferay add-2011
Building corporate portals with liferay   add-2011Building corporate portals with liferay   add-2011
Building corporate portals with liferay add-2011Alexey Kakunin
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответDenis Izmaylov
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Модульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETМодульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETDev2Dev
 
Модульная структура
Модульная структураМодульная структура
Модульная структураDenis Tsvettsih
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 

Similar to Разработка для Sailfish OS на примере мессенджера для социальной сети ВКонтакте (20)

Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
 
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Store2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
 
Автоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложенийАвтоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложений
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?
 
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на LinuxПавел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
 
Введение во фронтенд-разработку
Введение во фронтенд-разработкуВведение во фронтенд-разработку
Введение во фронтенд-разработку
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
 
Building corporate portals with liferay add-2011
Building corporate portals with liferay   add-2011Building corporate portals with liferay   add-2011
Building corporate portals with liferay add-2011
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Модульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETМодульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NET
 
Модульная структура
Модульная структураМодульная структура
Модульная структура
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 

More from udmlug

Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераudmlug
 
Systemd. Структура и применение
Systemd. Структура и применениеSystemd. Структура и применение
Systemd. Структура и применениеudmlug
 
Криптовалюты 2.0: NXT
Криптовалюты 2.0: NXTКриптовалюты 2.0: NXT
Криптовалюты 2.0: NXTudmlug
 
История развития сред разработки в ОС семейства Linux
История развития сред разработки в ОС семейства LinuxИстория развития сред разработки в ОС семейства Linux
История развития сред разработки в ОС семейства Linuxudmlug
 
Меры личной информационной безопасности
Меры личной информационной безопасностиМеры личной информационной безопасности
Меры личной информационной безопасностиudmlug
 
Мобильные операционные системы на ядре Linux
Мобильные операционные системы на ядре LinuxМобильные операционные системы на ядре Linux
Мобильные операционные системы на ядре Linuxudmlug
 
Построение интегрированного рабочего места на базе операционных систем Linux ...
Построение интегрированного рабочего места на базе операционных систем Linux ...Построение интегрированного рабочего места на базе операционных систем Linux ...
Построение интегрированного рабочего места на базе операционных систем Linux ...udmlug
 

More from udmlug (7)

Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервера
 
Systemd. Структура и применение
Systemd. Структура и применениеSystemd. Структура и применение
Systemd. Структура и применение
 
Криптовалюты 2.0: NXT
Криптовалюты 2.0: NXTКриптовалюты 2.0: NXT
Криптовалюты 2.0: NXT
 
История развития сред разработки в ОС семейства Linux
История развития сред разработки в ОС семейства LinuxИстория развития сред разработки в ОС семейства Linux
История развития сред разработки в ОС семейства Linux
 
Меры личной информационной безопасности
Меры личной информационной безопасностиМеры личной информационной безопасности
Меры личной информационной безопасности
 
Мобильные операционные системы на ядре Linux
Мобильные операционные системы на ядре LinuxМобильные операционные системы на ядре Linux
Мобильные операционные системы на ядре Linux
 
Построение интегрированного рабочего места на базе операционных систем Linux ...
Построение интегрированного рабочего места на базе операционных систем Linux ...Построение интегрированного рабочего места на базе операционных систем Linux ...
Построение интегрированного рабочего места на базе операционных систем Linux ...
 

Разработка для Sailfish OS на примере мессенджера для социальной сети ВКонтакте