<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.7.2">Jekyll</generator><link href="https://lms.crafted.su/sailfish-os-course/2018-1/feed.xml" rel="self" type="application/atom+xml" /><link href="https://lms.crafted.su/sailfish-os-course/2018-1/" rel="alternate" type="text/html" /><updated>2018-03-07T13:31:12+03:00</updated><id>https://lms.crafted.su/sailfish-os-course/2018-1/</id><title type="html">Разработка приложений под Sailfish OS</title><subtitle>Информация, размещённая на этом сайте доступна под лицензией Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).</subtitle><entry><title type="html">Создание собственных компонентов на C++ и использование QML базы данных</title><link href="https://lms.crafted.su/sailfish-os-course/2018-1/2018/03/07/cpp-and-local-storage.html" rel="alternate" type="text/html" title="Создание собственных компонентов на C++ и использование QML базы данных" /><published>2018-03-07T00:00:00+03:00</published><updated>2018-03-07T00:00:00+03:00</updated><id>https://lms.crafted.su/sailfish-os-course/2018-1/2018/03/07/cpp-and-local-storage</id><content type="html" xml:base="https://lms.crafted.su/sailfish-os-course/2018-1/2018/03/07/cpp-and-local-storage.html">&lt;h2 id=&quot;создание-собственных-компонентов-на-c&quot;&gt;Создание собственных компонентов на C++&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Материалы&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5/qtqml-cppintegration-topic.html&quot;&gt;Базовое введение&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5/qtqml-cppintegration-data.html&quot;&gt;Преобразование данных между C++ и QML&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5/qtqml-cppintegration-exposecppattributes.html&quot;&gt;Предоставление аттрибутов классов C++ в QML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Пример&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Пример, реализованный на паре, можно скачать &lt;a href=&quot;/sailfish-os-course/2018-1/assets/2018-03-07-cpp-attributes.tgz&quot;&gt;по ссылке&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;работа-с-базой-данных-local-storage-в-qml&quot;&gt;Работа с базой данных Local Storage в QML&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Материалы&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5/qtquick-localstorage-qmlmodule.html&quot;&gt;Описание модуля LocalStorage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5/qtquick-localstorage-example.html&quot;&gt;Официальный пример использования LocalStorage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Пример&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Пример приложения, записывающего данные в базу LocalStorage, можно скачать &lt;a href=&quot;/sailfish-os-course/2018-1/assets/2018-03-07-local-storage.tgz&quot;&gt;по ссылке&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><summary type="html">Создание собственных компонентов на C++</summary></entry><entry><title type="html">CRUD-приложение</title><link href="https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/21/crud-app.html" rel="alternate" type="text/html" title="CRUD-приложение" /><published>2018-02-21T00:00:00+03:00</published><updated>2018-02-21T00:00:00+03:00</updated><id>https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/21/crud-app</id><content type="html" xml:base="https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/21/crud-app.html">&lt;p&gt;Любой базис большинства бизнесс-приложений - это CRUD. На паре мы рассмотрели как с использованием Qt MVC и Sailfish Silica можно создать такое приложение для работы со списком контактов.&lt;/p&gt;

&lt;p&gt;Код приложения можно скачать &lt;a href=&quot;/sailfish-os-course/2018-1/assets/2018-02-21-crud-app.tgz&quot;&gt;по ссылке&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><summary type="html">Любой базис большинства бизнесс-приложений - это CRUD. На паре мы рассмотрели как с использованием Qt MVC и Sailfish Silica можно создать такое приложение для работы со списком контактов.</summary></entry><entry><title type="html">Получение оценок по курсу</title><link href="https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/13/automats.html" rel="alternate" type="text/html" title="Получение оценок по курсу" /><published>2018-02-13T00:00:00+03:00</published><updated>2018-02-13T00:00:00+03:00</updated><id>https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/13/automats</id><content type="html" xml:base="https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/13/automats.html">&lt;h1 id=&quot;основной-способ-получения-оценки-по-курсу&quot;&gt;Основной способ получения оценки по курсу&lt;/h1&gt;

&lt;p&gt;Для получения положительной оценки по курсу необходимо разработать приложение для Sailfish OS, опубликовать его в &lt;a href=&quot;https://openrepos.net/&quot;&gt;публичном репозитории OpenRepos.net&lt;/a&gt;, выложить исходный код в свободный доступ под одной из OpenSource-лицензий (GPL, BSD, MIT и т.п.).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Идея приложения не должна быть уникальной, приложение может содержать идеи из других приложений с других мобильных платформ.&lt;/li&gt;
  &lt;li&gt;Приложение может быть клиентом к интернет-сервису, если он предоставляет публично доступный API.&lt;/li&gt;
  &lt;li&gt;Рекомендуется реализовывать бизнесс-приложения, а не игры. Для игр вводятся следующие ограничения:
    &lt;ul&gt;
      &lt;li&gt;В разработке игры участвует 1 человек.&lt;/li&gt;
      &lt;li&gt;Все визуальные элементы оформления должны быть уникальны для данной игры.&lt;/li&gt;
      &lt;li&gt;Игровой процесс должен составлять не менее 10 часов.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Требования к бизнесс-приложению:
    &lt;ul&gt;
      &lt;li&gt;Разработка приложения может вестись группами из двух человек. Будет оцениваться индивидуальный вклад в проект.&lt;/li&gt;
      &lt;li&gt;Для разработки необходимо применять систему контроля версий и публиковать результаты еженедельно.&lt;/li&gt;
      &lt;li&gt;Приложение должно содержать как минимум 5 различных экранов.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Важные даты:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;07.03.2018 - предоставляются приложения, которые будут разрабатываться в рамках курса. После этой даты новые заявки не принимаются.&lt;/li&gt;
  &lt;li&gt;14.03.2018 - 28.03.2018 - демонстрация прогресса в разработке приложений. Необходимо показать как минимум 2 раза.&lt;/li&gt;
  &lt;li&gt;04.04.2018 - защита проектов.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;альтернативный-способ-получения-оценки-по-курсу&quot;&gt;Альтернативный способ получения оценки по курсу&lt;/h1&gt;

&lt;p&gt;Вы можете взять на себя решение сложной задачи и продемонстрировать её решение на любом занятии в феврале или марте месяце. Вы также можете параллельно решать задачу в рамках основного процесса. Т.е. это дополнительный способ, который может привести вас к получению положительной оценки.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Вы можете взять одну задачу из списка, который представлен ниже. Зарезервировать такую задачу можно на любом занятия до 28.02.2018.&lt;/li&gt;
  &lt;li&gt;Вы не можете участвовать одновременно в нескольких задачах.&lt;/li&gt;
  &lt;li&gt;Исходный код решения данной задачи выкладывается в свободный доступ под OpenSource-лицензией.&lt;/li&gt;
  &lt;li&gt;Решение задачи может происходить группой из двух человек. Будет оцениваться индивидуальный вклад в решение задачи.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;использование-альтернативных-языков-программирования&quot;&gt;Использование альтернативных языков программирования&lt;/h2&gt;

&lt;p&gt;Для каждого языка программирования выдаётся отдельная задача.&lt;/p&gt;

&lt;p&gt;Платформа Sailfish поддерживает разработку на языках QML, C++. Вам необходимо исследовать возможности по замещению языка C++ с помощью других современных компилируемых языков программирования:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rust-lang.org&quot;&gt;Rust&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://golang.org/&quot;&gt;Go&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ocaml.org/&quot;&gt;OCaml&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crystal-lang.org/&quot;&gt;Crystal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.haskell.org/&quot;&gt;Haskell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dlang.org/&quot;&gt;D Language&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;В рамках этой задачи необходимо решить следующие подзадачи:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Подключение кода, написанного на языке программирования, к Sailfish-приложению. &lt;em&gt;необходимо&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Исключение использования C++-кода для связывания кода на языке программирования с QML-частью, интерфейсом приложения. &lt;em&gt;желательно&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Взаимодействие с базой данных средствами языка. &lt;em&gt;необходимо&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Взаимодействие со службами по протоколу D-Bus. &lt;em&gt;необходимо&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Возможность использования сенсоров, включая камеру на устройстве. &lt;em&gt;дополнительно&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;разворачивание-toolchain-в-виртуальной-машине&quot;&gt;Разворачивание toolchain в виртуальной машине&lt;/h2&gt;

&lt;p&gt;Сейчас SDK предоставляет виртуальную машину для компиляции приложения. Необходимо описать процесс создания своей собственной виртуальной машины с установленным SDK, а также продемонстрировать возможность сборки полноценного приложения с помощью данного инструментария.&lt;/p&gt;

&lt;p&gt;Успешным решением данной задачи является:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Создание и демонстрация своей виртуальной машины со сборочным окружением. &lt;em&gt;необходимо&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Написание пошагового руководства по созданию виртуальной машины. &lt;em&gt;необходимо&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Создание скрипта для автоматической установки сборочного окружения в виртуальную машину. &lt;em&gt;желательно&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;своя-инфраструктурная-задача&quot;&gt;Своя инфраструктурная задача&lt;/h2&gt;

&lt;p&gt;Вы можете самостоятельно предложить задачу по улучшению инфраструктуры по созданию приложений под Sailfish OS. Если ваш проект заслуживает внимание, то его можно будет взять в качестве дополнительного проекта.&lt;/p&gt;</content><author><name></name></author><summary type="html">Основной способ получения оценки по курсу</summary></entry><entry><title type="html">Информационные ресурсы</title><link href="https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/04/docs.html" rel="alternate" type="text/html" title="Информационные ресурсы" /><published>2018-02-04T00:00:00+03:00</published><updated>2018-02-04T00:00:00+03:00</updated><id>https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/04/docs</id><content type="html" xml:base="https://lms.crafted.su/sailfish-os-course/2018-1/2018/02/04/docs.html">&lt;h1 id=&quot;документация-на-библиотеку-qt-и-язык-qml&quot;&gt;Документация на библиотеку Qt и язык QML&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://wiki.qt.io/Books&quot;&gt;Список книг на английском языке по библиотеке Qt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5.6/index.html&quot;&gt;Официальная документация на Qt 5.6&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5.6/qmlapplications.html&quot;&gt;Описание QML-приложений&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-5.6/qmlreference.html&quot;&gt;Описание языка QML&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://qmlbook.github.io/index.html&quot;&gt;Бесплатная книга по Qt/QML&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;[https://qmlbook.github.io/en/ch04/index.html]&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;документация-по-разработке-приложений-под-sailfish-os&quot;&gt;Документация по разработке приложений под Sailfish OS&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://stepik.org/course/2341&quot;&gt;Онлайн-курс по разработке приложений под Sailfish OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://habrahabr.ru/users/fruct/posts/&quot;&gt;Статьи по поводу разработки приложений под Sailfish OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sailfishos.org/wiki/Application_Development&quot;&gt;Официальный ресуср для разработчиков приложений под Sailfish OS&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://sailfishos.org/wiki/Application_SDK&quot;&gt;Скачивание SDK для разработки приложений под Sailfish OS&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://sailfishos.org/develop/docs/silica/&quot;&gt;Документация на Silica API&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><summary type="html">Документация на библиотеку Qt и язык QML</summary></entry></feed>