Комментарии 84
Уважаемые читатели, когда минусуете статью / карму, то пишите, пожалуйста, причину. Так как этот опыт для меня в целом новый и мне хотелось бы видеть свои ошибки.
Спасибо!
Спасибо!
Думаю минусы за первое предложение.
JPEG
Не понравились «нативная» «скилованность» и прочие англицизмы. Живу в Канаде лет уже 20, английский знаю, но такие перлы как-то неприятно действуют на уровне желудка.
Я минус не ставил, но, тем не менее, рекомендую обратить внимание, что есть зафиксированные названия для элементов, которые и в приложении «Руководство» обозначены: экран блокировки, домашний экран, лента событий, сетка приложений, верхнее меню.
Почему нельзя плотно интегрировать ART в эту ось? Один черт все разрабы переехали на две платформы и слезать с них не собираются.
Я не разработчик ОС, но мне кажется, что пока тупо руки не доходят. Ресурсы у Jolla довольно ограничены.
Опа, нашел пост на эту тему на together.jolla.com
И что означает «плотно»? Текущее состояние позволяет запускать подавляющее большинство android-приложений.
there doesn't seem to be a technical reason for not updating to android API level ≥ 17. Currently SFOS only supports opengl ES 2 but version 3 is just supported but not mandatory for 4.4-KitKat The same is true with bluetooth LE. There is 'support' in KitKat but it is not required… ART is a technology preview in API 19 and not mandatory either (it shouldn't be implemented in SFOS because it produces code that demands more main memory which is bad for jolla1 and the advantage of starting apps faster is not good enough to impement this)
И что означает «плотно»? Текущее состояние позволяет запускать подавляющее большинство android-приложений.
Стоит добавить, что ОМП лицензировали SailfishOS у Jolla, и занимаются её доработкой и локализацией (т.е. интеграцией никому не нужных российских сервисов). Российские смартфоны будут работать именно на ней (http://sailfish-club.ru/2016/06/russian-sailfish-announced/). Также очень скоро запустят производство неубиваемого Turing Phone.
Новое окно events очень напоминает BlackBerry Hub.
Посмотрим, может, в следующем году возьму себе аппарат на sailfish'e, а пока что руки не дошли…
Спасибо за обзор!
Посмотрим, может, в следующем году возьму себе аппарат на sailfish'e, а пока что руки не дошли…
Спасибо за обзор!
А в чём и на каких языках под эту ОС предполагается писать приложения? Неужели только архаичный C++?
SDK основан на QT Creator, пишется в основном все на QML/C++. Не вижу архаичности, довольно современный и быстроразвивающийся стек. :)
Вообще говоря технологии в области языков программирования уже ушли существенно вперёд, смотрите Swift, Rust и т. п. Почему-то почти все мобильные платформы, упорно использовавшие C++ «а мне всё норм, отличный язык», уже почили [кто там минусит — минуси, не минуси — а так оно и есть].
Потому что помимо языка существует ещё и среда программирования, тот набор инструментов, при помощи которого происходит сборка проекта. У C++ она если не худшая в мире, то одна из худших. Ни один другой язык не создаёт столько проблем при сборке приложений. Шанс, что скачанный с Github'а проект внезапно откажется собираться на машине пользователя, вынуждая заниматься многочасовым шаманством, в случае C++ просто зашкаливает, таких проблем на ровном месте ни одно другое окружение не создаёт.
C++ не привязан к какой-то системе сборки, можно использовать CMake, qmake и все остальное. То же самое и со средами разработки.
Оооо, это вы зря. Может и не привязан, но код написанный и протестированный на одной ОС может не собраться, а иногда собраться, но сегфолтить на другой. С Qt я получал такое в 100% случаев в институте, дома писал и тестировал под Linux, в институте сдавал на Windows, около часа приходилось выискивать где же что не так… Я не говорю, что язык или библиотеки плохие, но платформонезависимым я C/C++ не назову никогда.
И да, сам язык к системе сборки не привязан, но скачанный с Github'а проект как правило жестко привязан и написать правила для другой системы сборки проблемно, а иногда и настройки среды разработки тоже тянутся с проектом и практически нереально с ходу заменить ее на свою любимую, но это для всех языков так, так что к минусам языка я бы относить это не стал.
PS Swift вроде бинарно совместим с C/C++/Obj-C, так что не сказал бы я, что Swift — уход от «Сей», только надстройка.
И да, сам язык к системе сборки не привязан, но скачанный с Github'а проект как правило жестко привязан и написать правила для другой системы сборки проблемно, а иногда и настройки среды разработки тоже тянутся с проектом и практически нереально с ходу заменить ее на свою любимую, но это для всех языков так, так что к минусам языка я бы относить это не стал.
PS Swift вроде бинарно совместим с C/C++/Obj-C, так что не сказал бы я, что Swift — уход от «Сей», только надстройка.
К слову, насчет 100% кроссплатформенности, на той же Java, в принципе, можно тоже писать так, что на Linux будет работать, а на Windows нет. Но это я так, ради объективности :)
Честно говоря ни разу не писал на Java, когда-нибудь до нее доберусь вероятно. Вообще мне казалось, что весь Java-код исполняется на уровне их же виртуальной машины, а следовательно если виртуальная машина одинакова (версия, разработчик), то и выполняться будет одинаково, но видимо я не совсем прав.
Я чаще использую Python, с ним пока проблем не возникало. GUI на Kivy, os.path для путей, Django для web, хотя надо бы попробовать что-то более легковесное в плане вэба. Разработка на маке, деплой некоторых GUI-проектов на Win, web на Linux и ни одной ошибки относительно переносимости пока не было, под мобилки правда пока не тестировал.
Я чаще использую Python, с ним пока проблем не возникало. GUI на Kivy, os.path для путей, Django для web, хотя надо бы попробовать что-то более легковесное в плане вэба. Разработка на маке, деплой некоторых GUI-проектов на Win, web на Linux и ни одной ошибки относительно переносимости пока не было, под мобилки правда пока не тестировал.
[Говорю на основе опыта программирования на Java чуть меньше 1 года в универе + для себя]
Код Java исполняется в своей виртуальной машине, да. Но тут недавно был случай, писали систему управления контентом и я использовал метод для переименования файла. Сам сижу на Linux, написал, протестировал — все ок. Сделал коммит и тут команда, которая сидит на Windows, начала «плеваться», почему твой код не работает?
Тот день был ооочень веселый, так как я раньше много слышал, что «Java: написал один раз, работает везде», а тут прям мистика творится…
В итоге оказалось, что тот самый метод, который я использовал из стандартной поставки НЕ(!) кроссплатформенный! Для кроссплатформенности был другой… Да, то время было для меня настоящим шоком… Революцией… Срывом шаблонов… :)))
Да, слышал, что Python няшный :) Сам хочу как-нибудь его освоить.
Код Java исполняется в своей виртуальной машине, да. Но тут недавно был случай, писали систему управления контентом и я использовал метод для переименования файла. Сам сижу на Linux, написал, протестировал — все ок. Сделал коммит и тут команда, которая сидит на Windows, начала «плеваться», почему твой код не работает?
Тот день был ооочень веселый, так как я раньше много слышал, что «Java: написал один раз, работает везде», а тут прям мистика творится…
В итоге оказалось, что тот самый метод, который я использовал из стандартной поставки НЕ(!) кроссплатформенный! Для кроссплатформенности был другой… Да, то время было для меня настоящим шоком… Революцией… Срывом шаблонов… :)))
Да, слышал, что Python няшный :) Сам хочу как-нибудь его освоить.
В том-то и прелесть Swift, что он почти так же близок к железу, как C.
Я пишу Qt-код на Linux и он не сегфолтится на Windows. И наоборот. Более того, код даже работает :) Бывали ингода проблемы с разделителями в путях — '\' и '/'.
Плюсую, я не самый прошаренный программист, но писал достаточно объемную утилиту на Qt под Linux и за исключением разницы в путях к файлам она без проблем собралась и заработала под Windows. Я был весьма удивлен на сколько все легко и без проблем прошло.
Ну с путями во многих языках проблемы, а вот в плане механики работы компиляторов и исполнения в C++ творятся интересные вещи. Да, это были мои ошибки либо использование конструкций с «неопределенным поведением» по документации, как правило использовалось такое случайно, да и было это около пяти лет назад, но это не отменяет того, что я не могу полностью протестировать все в одной ОС, пара виртуалок просто необходимы для кроссплатформенного ПО.
Так же недавно столкнулся с проблемами сборки некоторых вещей в NDK андроида и плавающими падениями при исполнении в один поток, при этом при тестировании того же кода на macOS падений нет вообще, а на Windows есть, но другие. Угадайте, на какой ОС я тестирую?
Вообще я C++ люблю за производительность и обилие возможностей, но многих вещей в стандартной библиотеке не хватает, а предсказать работу на другой ОС практически невозможно, поэтому для себя чаще использую Python, с ним проблем не было ни разу. Ну а в продакшене сейчас C++, Obj-C, Swift с продолжительным тестированием на разных платформах, благо их не так много.
Так же недавно столкнулся с проблемами сборки некоторых вещей в NDK андроида и плавающими падениями при исполнении в один поток, при этом при тестировании того же кода на macOS падений нет вообще, а на Windows есть, но другие. Угадайте, на какой ОС я тестирую?
Вообще я C++ люблю за производительность и обилие возможностей, но многих вещей в стандартной библиотеке не хватает, а предсказать работу на другой ОС практически невозможно, поэтому для себя чаще использую Python, с ним проблем не было ни разу. Ну а в продакшене сейчас C++, Obj-C, Swift с продолжительным тестированием на разных платформах, благо их не так много.
QStandardPaths юзать и не будет проблем с путями ;)
> Вообще, противоречивая фича, с одной стороны они по новой открыли режим «без звука», с другой стороны, это место можно было занять той же панелью уведомлений. Это все реализуется патчем «Quick settings on power menu» из openrepos.
В openrepos два аналогичных патча на эту тему. Один заменяет атмосферы «панелью уведомлений» (какой-то неточный все-таки термин, как мне кажется), другой добавляет эту панель к атмосферам. Я использую первый.
> Правда на последней версии ОС у меня этот патч отвалился, возможно, что нужно было откатить его перед обновлением телефона…
Так вроде перед обновлением настоятельно рекомендуется откатить все патчи. Да и патч часто должен вроде как версии соответствовать.
В openrepos два аналогичных патча на эту тему. Один заменяет атмосферы «панелью уведомлений» (какой-то неточный все-таки термин, как мне кажется), другой добавляет эту панель к атмосферам. Я использую первый.
> Правда на последней версии ОС у меня этот патч отвалился, возможно, что нужно было откатить его перед обновлением телефона…
Так вроде перед обновлением настоятельно рекомендуется откатить все патчи. Да и патч часто должен вроде как версии соответствовать.
Один заменяет атмосферы «панелью уведомлений» (какой-то неточный все-таки термин, как мне кажется),
Вот, кстати, долго думал как назвать, в итоге ничего лучше «панели уведомлений»не придумал… Есть идеи как корректней это окошко обозвать?
Так вроде перед обновлением настоятельно рекомендуется откатить все патчи. Да и патч часто должен вроде как версии соответствовать.
Значит это моя ошибка. Сейчас не могу удалить и переустановить патч. Может быть что-то посоветуете?
> Вот, кстати, долго думал как назвать, в итоге ничего лучше «панели уведомлений»не придумал… Есть идеи как корректней это окошко обозвать?
Честно говоря, нет. Все, что в голову приходит (панель настроек, панель быстрого доступа, панель переключателей) — как-то не то все. Так что пока она для меня безымянная.
> Значит это моя ошибка. Сейчас не могу удалить и переустановить патч. Может быть что-то посоветуете?
Сам пока на эти грабли не наступал, потому могу только немного теоретизировать.
В последнем комментарии на openrepos к упомянутому в статье патчу приводится некая «спасительная» последовательность.
Я так понимаю, грубо сносятся все патчи и переустанавливаются пакеты, затронутые патчами. Но тот же человек в том же комментарии пишет, что не помогло.
Еще можно попробовать поискать ответы и поспрашивать на TMO (talk.maemo.org). Там тоже что-то обсуждалось на эту тему.
Честно говоря, нет. Все, что в голову приходит (панель настроек, панель быстрого доступа, панель переключателей) — как-то не то все. Так что пока она для меня безымянная.
> Значит это моя ошибка. Сейчас не могу удалить и переустановить патч. Может быть что-то посоветуете?
Сам пока на эти грабли не наступал, потому могу только немного теоретизировать.
В последнем комментарии на openrepos к упомянутому в статье патчу приводится некая «спасительная» последовательность.
Я так понимаю, грубо сносятся все патчи и переустанавливаются пакеты, затронутые патчами. Но тот же человек в том же комментарии пишет, что не помогло.
Еще можно попробовать поискать ответы и поспрашивать на TMO (talk.maemo.org). Там тоже что-то обсуждалось на эту тему.
Хм, спасибо! На досуге попробую.
Да и многие авторы патчей на TMO «обитают».
Ну и последний способ — восстановить систему из чистого аварийного образа. Что-то вроде такого:
http://maemo.su/forum/viewtopic.php?id=7398
Но это уже совсем последний вариант, поскольку будет потеряно все, что было когда-либо установлено. Система будет совсем чистая.
Ну и последний способ — восстановить систему из чистого аварийного образа. Что-то вроде такого:
http://maemo.su/forum/viewtopic.php?id=7398
Но это уже совсем последний вариант, поскольку будет потеряно все, что было когда-либо установлено. Система будет совсем чистая.
Это окошко можно назвать «hub», по аналогии с blackberry hub?
Хотелось бы вообще больше статей видеть по разработке мобильных приложений на QML/C++ ибо как минимум еще две платформы используют этот-же стек — Blackberry OS и Ubuntu Touch
Некоторое количество полезностей по этому поводу, но пока не в виде статей.
https://www.youtube.com/playlist?list=PLF1PcGjuYZkZJ3PsonSigKLMFeypTqd_2
https://www.youtube.com/playlist?list=PLF1PcGjuYZkZJ3PsonSigKLMFeypTqd_2
НЛО прилетело и опубликовало эту надпись здесь
См. «OS architecture» здесь: https://sailfishos.org/about/
На Ваш вопрос лучше всего отвечает вот эта картинка:
Официальный аккаунт на github.
UPD: У меня картинка чуть старше, более актуальная в ответе выше.
Заголовок спойлера
Официальный аккаунт на github.
UPD: У меня картинка чуть старше, более актуальная в ответе выше.
НЛО прилетело и опубликовало эту надпись здесь
По-моему, неоправданное ощущение, с учётом того, что не открытыми являются только компоненты Silica и некоторые приложения. Бэкграунд открыт.
НЛО прилетело и опубликовало эту надпись здесь
Если посмотреть на историю коммитов в Mer, то выяснится, что многое в нём сделано людьми из Jolla.
НЛО прилетело и опубликовало эту надпись здесь
Наследие Harmattan имхо…
Почему писали «с нуля», очень даже понятно.
На момент начала создания все наработки Nokia ушли в Microsoft, в том числе патенты по UI.
А такой штуки, как унифицированные QtComponents, просто ещё не существовало.
Вопрос по поводу закрытости появляется довольно часто.
Jolla его время от времени комментируют.
Например, тем, что нет ресурсов для обработки всех коммитоа от сообщества, если бы исходники были открыты. А пускать процесс разработки на самотёк — значит потерять над ним контроль, что приведёт к фрагментации.
Сейчас все свои собственные пожелания можно делать в виде патчей и выкладывать на openrepos.
На момент начала создания все наработки Nokia ушли в Microsoft, в том числе патенты по UI.
А такой штуки, как унифицированные QtComponents, просто ещё не существовало.
Вопрос по поводу закрытости появляется довольно часто.
Jolla его время от времени комментируют.
Например, тем, что нет ресурсов для обработки всех коммитоа от сообщества, если бы исходники были открыты. А пускать процесс разработки на самотёк — значит потерять над ним контроль, что приведёт к фрагментации.
Сейчас все свои собственные пожелания можно делать в виде патчей и выкладывать на openrepos.
Насчет интерфейса, где-то видел инициативу по разработке открытого UI для Sailfish OS, даже были (если не путаю) релизы. Но ссыль не готов сейчас дать, надо гуглить…
Возможно вас заинтересует ещё одна полностью открытая мобильная ОС — LuneOS (форк Open webOS).
Она ОЧЕНЬ сырая, но развивается потихоньку.
UI вообще написан на qml и его «можно» запустить в qtcreator без кросс-компиляции и эмулятора.
Она ОЧЕНЬ сырая, но развивается потихоньку.
UI вообще написан на qml и его «можно» запустить в qtcreator без кросс-компиляции и эмулятора.
Хм, интересно… А может быть Вы как-нибудь напишите небольшой обзорчки по данной ОС?
Возможно когда нибудь попробую написать, но для этого она должна стать намного стабильней. На данный момент я думаю что просто всех интересующихся распугаю.:)(но думаю разработчиков эта ОС может заинтересовать прямо сейчас).
НЛО прилетело и опубликовало эту надпись здесь
Ну, просто можно хотя бы небольшой очерк, чтобы узнать, что за фрукт это.
Если совсем коротко: http://maemo.su/forum/viewtopic.php?id=7403.
"-Fairphone 2
-Intex Aqua Fish (официальная поддержка)
-порты: Nexus, OnePlus X (говорят, что не плохой порт)"
А Oysters?
-Intex Aqua Fish (официальная поддержка)
-порты: Nexus, OnePlus X (говорят, что не плохой порт)"
А Oysters?
-Спасибо вам QML/C++, что продлеваете жизнь моего телефона от одного заряда
А есть какие исследования на эту тему? Все же логика там по большей части пишется на JavaScript, а разметка (вроде) динамическая. Помню когда писал небольшое QML приложение — памяти оно съедало немало. Сомневаюсь, что разработчики приложений будет сильно увлекаться C++ — это сильно скажется на скорости разработки.
А есть какие исследования на эту тему?
Исследований нет, это на уровне ощущений. Телефон на андроид с аналогичными характеристиками и батареей столько не живет. И памяти все кушает довольно мало — я же как-то спокойно уживаюсь на 1 гигабайте оперативной памяти.
Сомневаюсь, что разработчики приложений будет сильно увлекаться C++ — это сильно скажется на скорости разработки.
Ахах, да со мной такая же «беда» приключилась, думал, так-с пора внести свой вклад в платформу, так есть няшный С++… В итоге, GoAlexander проматерился по началу из-за не знания всех этих стеков + не знания как линкуется QML и C++… и… в конце концов написал все на QML :)))
месяц на Nexus5 с сейфишом. Система устраивает полностью. Именно система, а вот приложения… есть некоторый недостаток. Вибера нет и не будет в ближайшее время, вконтактовский kat ущербный — пользуюсь мобильной версией. Клиент инстаграма написал сам :) https://github.com/neochapay/Prostogram/ эх славные времена, когда мужчины писали драйвера сами для себя :))))
Вибера нет и не будет в ближайшее время
А у Вас ведь нет поддержки андроид приложений?
вконтактовский kat ущербный — пользуюсь мобильной версией
Да, ущербный, но лично мне хватает. Плюс готов Вас порадовать разработка kat продолжена, правда в довольно медленно темпе. Сейчас разработчик синхронизирует кодовую базу с Titanim. Так что я надеюсь, что все будет хорошо :)
Клиент инстаграма написал сам :)
+1 Вам в карму за клиент. Сам не использую инстаграмм, но клиент довольно неплох :)
А у Вас ведь нет поддержки андроид приложений?
Нет, да и смысл пересаживаться на ось если используешь куски другой?
+1 Вам в карму за клиент. Сам не использую инстаграмм, но клиент довольно неплох :)
Спасибо
НЛО прилетело и опубликовало эту надпись здесь
Можно начать с того, что Adnroid, даже с «кастомным лаунчером», не сможет добраться до интерфейса Sailfish OS.
А в остальном, Sailfish OS менее требовательна к ресурсам: память, процессор, батарейка.
Плюс, не нужно делать никакого рутирования, ломая гарантию — всё сразу есть «из коробки», если активировать режим разработчик: bash, ssh и т.п. В общем, вполне себе Linux, только в мобильном устройстве.
Да, и у Android нет такой фишки, как openrepos.
А в остальном, Sailfish OS менее требовательна к ресурсам: память, процессор, батарейка.
Плюс, не нужно делать никакого рутирования, ломая гарантию — всё сразу есть «из коробки», если активировать режим разработчик: bash, ssh и т.п. В общем, вполне себе Linux, только в мобильном устройстве.
Да, и у Android нет такой фишки, как openrepos.
Установить на Nokia N9 ещё возможно?
Сейчас реально купить смартфон на SailfishOS? Ничего не нашел…
Если честно, серьезно не интересовался этой темой, но если хотите «прямо сейчас», то лучше всего, наверное, купить что-то типо nexus/oneplus x и накатить на него Sailfish OS (пользователь neochapay так и сделал) или покупать Fairphone 2 и тоже накатывать Sailfish OS.
Но на Вашем месте я подождал бы этот год, пока в продаже не появится Intex Aqua Fish (не факт, что будет в продаже в России) / Oysters SF.
Но на Вашем месте я подождал бы этот год, пока в продаже не появится Intex Aqua Fish (не факт, что будет в продаже в России) / Oysters SF.
Лично я покупал свой Jolla 1 (снятый с производства) у официального представителя в России -> shop.jolla.ru, но сейчас он переадресует на https://buyon.ru/361131/jolla-belyy-16gb/
В конце месяца будет летняя школа по Sailfish OS:
https://habrahabr.ru/company/innopolis_university/blog/305120/
https://habrahabr.ru/company/innopolis_university/blog/305120/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как дела у Jolla + запоздалый обзор Sailfish OS 2.0