Как стать автором
Обновить

Разработка для Sailfish OS: архитектура FLUX в QML на примере приложения для запоминания литературных терминов

Время на прочтение 8 мин
Количество просмотров 7.3K
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 36

Комментарии 36

Не вижу перспектив этой ОС для рынка России.
Единственно куда может «стрельнуть» это госсектор, а там разработка уже давно «схвачена нужными людьми».
Буду рад контраргументам.
Не вижу перспектив этой ОС для рынка России.

А зачем так селективно, напишите сразу для «мирового рынка»?

А что касается контраргументов, я бы и сам с удовольствием прочитал. И это не смотря на то, что у меня были Nokia N9, Jolla a сейчас Jolla C. К сожалению, единственное что ей можно поставить в преимущества — это интерфейс. Всё остальное — нишевые плюсы.
Насчет нишевых плюсов не согласен, что работает дольше (по сравнению с андроид устройствами с такой же батареей) — это нишевый плюс?
Да, именно так. У тех кто пользуется смартфонами ежедневная зарядка уже не считается чем-то неприемлемым.
Дожили…
Мне Jolla 1 хватало обычно почти на 2 полных дня. Jolla C в моем случае работает чуть меньше, чем «почти 2 полных дня». Т. е. здесь речи об зарядке телефона раз в днь не идет…
У меня типично с утра час — полтора навигатор из-под андройда, днём звонки, мало смс, вечером полтора — два часа, почитать из-под андройда опять же. Jolla C — держится молодцом, заряжаю только ночью — «умным» кабелем который отрубает заряд когда зарядка окончена. По процентам заряда можно было бы и реже, но тогда посреди дня получится — что неудобно. А на два — боюсь не хватит.

Нативные приложения меньше потребляют. НО их пока мало, и требуется запускать прожорливые андройдовские. Поэтому по честному это тоже нишевый плюс.
И кем там схваченно все? Sailfish OS`ом? :) Sailfish OS RUS, если мне не изменяет память, единственная мобильная ОС, которая есть в РосРеестре + недавно получила сертификат от ФСБ.
1) Почитайте мой комментарий ниже(https://habrahabr.ru/post/312418/#comment_9857308)
2) https://geektimes.ru/post/275406/ «Общая сумма такого проекта составляет около 2,2 млрд рублей»
3) так же где-то здесь проскакивала информация о внедрении этих смартов работникам госсектора, цена около $2000 за аппарат. Естественно всё из бюджета.
Теперь Вы хоть немного понимаете моё негодование?
Общая сумма такого проекта составляет около 2,2 млрд рублей

Конечно, проект не дешёвый. Ну и что? Открытая Мобильная Платформа работает не на бюджетные деньги.

проскакивала информация о внедрении этих смартов работникам госсектора, цена около $2000 за аппарат

Может, есть ещё и ссылка на первоисточник, а не домыслы не пойми кого?
«Открытая Мобильная Платформа работает не на бюджетные деньги.»
«Может, есть ещё и ссылка на первоисточник, а не домыслы не пойми кого?»

За бюджетные деньги Платформа будет продавать аля «андроид» со своим лаунчером по $2000
https://geektimes.ru/post/277092/

Вы вообще себе цифру в 2,2 млрд рублей представляете?
По Пятому каналу регулярно вымаливают деньги очередному ребёнку на операцию,
средний «ценник» 1,5 млн. -> 2,2 млрд / 1,5 млн = 1466 детей умрёт потому что кто-то решил сделать очередной «андроид» с нескучными обоями.
Дорогой собеседник. Сначала к технической статье Вы примешали политику, потом социальные проблемы.
При этом оперируете желтой прессой и абсурдным утверждениями, абсолютно игнорируя суть самой статьи, в которой рассматривается, к слову, довольно интересный пример использования Flux.
Другого от Вас, видимо, не получить. Поэтому я заканчиваю обсуждение со своей стороны.
Лично я считаю, что пути развития следующие: продвигаться в B2B и B2G, «война за сердца гиков», а также рынки развивающихся стран (Индия, ЮАР)
И если посмотреть на деятельность Jolla + Открытой мобильной платформы, то увидим, что они этими путями и стараются идти…
Вы сами твиты читали?

"@nnikiforov так же как с электронным паспортом будет? 4 года сделать не можем и ещё на 2,5 отодвигаем?"
Вопрос остался без ответа

"@nnikiforov Конкурировать с Гугл? Статистика? Кому это нужно? Нет, зачем, давайте просто под это дело попилим бабла..."
Я придерживаюсь этого же мнения, это и печалит :(

"@andrey_snegovik @nnikiforov Вспомни Ubuntu Touch! Опытные разрабы, хорошая идея! Большие деньги! В итоге — сколько смартов на этой ОС?"

"@andrey_snegovik @nnikiforov Идея то хороша, а в итоге получится очередной Bolgin OS"

"@Billi_Gates @nnikiforov "… От специалистов требуется навык портирования Android на новые платформы". Отечественная ОС говорите ?"
Вот это особенно понравилось :)

И еще 100500 насущных вопросов по теме оставленных без ответа.
Да нет, совершенно понятно, почему без ответа. Это же провокации.
Некоторые, причём, совершенно неграмотные.

Конкурировать с Гугл?

Развитие Sailfish OS в РФ не позиционируется, как конкуренция с Google.
Конечно, не позиционируется. Очевидно, не позиционируется.

Вспомни Ubuntu Touch!

При чём здесь Ubuntu Touch? Ubuntu — это целиком управляемая Canonical экосистема. Все вопросы корректно адресовывать именно им.

Идея то хороша, а в итоге получится очередной Bolgin OS

«Диванный аналитик» налицо.
Sailfish OS обладает продуманным дизайном интерфейса, над которым работали те же люди, которые создавали UX для Nikia N9.
https://www.youtube.com/watch?v=qUBTjJ6_WcI
Попробуйте, он реально интересный.

От специалистов требуется навык портирования Android на новые платформы". Отечественная ОС говорите ?"

От людей, работающих с железом, действительно, требуется. Это должно быть очевидно всем, кто знаком с libhybris.
Если Вам понравилось, то Вы, очевидно, не знаете, как устроена аппаратная адаптация. Рекомендую ознакомиться, хотя бы, с этим: https://wiki.merproject.org/wiki/Adaptations/libhybris

Опять же, комментарии в твиттере — это не показатель чего бы то ни было, поскольку могут быть вызваны совершенно другими причинами, не относящимися к основной теме.
Особенно комментарии к сообщениям политиков любой фракции без исключения.
Поэтому я и написал выше, что не люблю подобные ссылки.
Предлагаю исключить из обсуждения все 100500 «насущных» вопросов.
Вопросик такой, для затравки. На каком ЯП пишут под Sailfush?
На QML, который в свою очередь основан на JavaScript.
C++/QML, а также Python, но Python обычно не рекомендуют, т. к. он там какой-то обрезанный (подробностей не знаю)
Можно было сказать проще, то бишь Qt. Ну не знаю, какой-либо обрезанности в PyQt я не заметил.
С PyQt все нормально, но я слышал от активных разработчиков, что с Python есть некоторые сложности. Какие конкретно и насколько большие — оставляю за рамками этого комментария, так как я этим вопросом не интересовался, мне QML + C++ хвататет :)
Не Sailfush, а Sailfish OS.
К слову, это и FRUCT касается. Не SailfishOS, а Sailfish OS.
Просто, ради порядка.
Спасибо за комментарий, поправили название платформы в статье. Учтём на будущее правильное написание ;)
Заинтересовало приложение, установил… А русский язык имеется? В словаре все на английском :(
Словарь, к сожалению, пока только англоязычный с англоязычными терминами. Интерфейс на двух языках, зависит от языка устройства.
А поделитесь опытом:
На сколько удобным оказалось на практике применение Flux в QML?
Обнаружились ли подводные камни при реализации паттерна или библиотеки QuickFlux?
В принципе, достаточно удобным. На подобном небольшом проекте это, наверное, не так заметно. На больших должно быть более заметно. Из положительных моментов можно отметить, что вся логика работы с данными уходит в Store элементы, что позволяет структурировать код. Если бы мы делали все «стандартно», без централизованного хранилища, описывая логику в обработчиках событий, код бы получился довольно размазанным. Ну и, конечно, положительные момент такой, что состояние данных в любой момент доступно из Store в любой точке приложения и оно в силу реализации (Store реализованы как синглтоны) в один момент времени всегда одинаково для любого другого объекта. Такая централизованность всё таки дает ощущение надежности и единообразии. И опять же, если нам что-то нужно поменять в логике работы с данными, мы меняем в одном месте и оно работает так везде.

С QuickFlux никаких проблем не возникло, она просто добавляется в проект и «работает как есть» :) Очень упрощает жизнь, если надо реализовать подобную архитектуру. Единственный момент, но он связан скорее с особенностью Sailfish OS, а не QuickFlux. Нам пришлось покопаться в исходниках QuickFlux, чтобы изменить название библиотеки в QML на harbour.dictionary.trainer.QuickFlux. Это было необходимо для публикации приложения (вот тут есть подробное объяснение).

В целом, основная проблема была, конечно, в понимании архитектуры. В силу того, что у нас не так много опыта разработки вообще, а архитектура заметно отличается от привычного нам MVC, довольно много времени было потрачено на понимание и осознание самого принципа Flux.

Спасибо большое за развернутый ответ.

А что если я не хочу использовать QML, но хочу С\С++ и OpenGL? Вроде там SDL приложения разрешены. Хотелось бы больше примеров в эту сторону.
OoenGL можно. Но встраивать в QML.
Вот не хочется QML, уже есть все готовое, надо только портировать. Если для этого придется отказаться от QT в пользу SDL то это подойдет. Но примеров крайне мало, как я понимаю -lSDL не достаточно, а -lOpenGL там нет, вот и что делать.
От QML отказать не получится, потому что понадобятся ApplicationWindow и Cover.
Но, по идее, использовать всё готовое на C++ это не должно помешать.
К сожалению мешает. Я не могу откомпилировать сишники с GL кодом, нет на заголовков ни либы с которой линковать. Через strace я уже разобрался как происходит загрузка GL so'шки, теоретически могу загрузить ее самостоятельно, взять стандартные иклуды. Но это же костыли, правильно то как?
Вот тут пишут что разрешены SDL2 приложения, в QT врапить не обязательно. Только зачем мне SDL без GL?
Там GL или GLES?
Да, неточность получилась, GLES2 конечно же. Но /usr/include/GLES не наблюдается. Если попробовать поставить mesa-llvmpipe-libGLESv2-devel оно предлагает снести пол системы.
Коллеги, а где есть исходный код приложения?
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории