Майкл Холл (Michael Hall) в своей статье "There is no Touch, only Ubuntu" начинает новое веяние от Canonical - унификацию имени Ubuntu. Раз целью является конвергенция и скоро будет реально единая кодовая база и платформа, то и имя будет одно. К Майклу в этом вопросе присоединяется и солидарен с его мнением другой разработчик и автор многих книг Стюарт Лангридж (Stuart Langridge), но он считает, что статья Майкла это крик из будущего, так как Ubuntu будет единственной и конвергенция будет достигнута, но пока это не так.
Майкл приводит графические схемы и указывает, что отличие только в Unity 8, которая сейчас трудится в мобильном секторе, а десктоп получит её в релизах 14.10 или 15.04. Для большинства людей, пишущих приложения, нет разницы между Unity 7 и Unity 8. И там и там Unity работает схожим способом и предлагает примерно тот же API. Вот что реально разни́т прямо сейчас Ubuntu Desktop и Ubuntu Touch, так это огромная куча вещей, которая есть на десктопе и не стала ещё частью API платформы Убунту и, следовательно, не доступна в Ubuntu Phone.
Маленький пример. Всплывающие уведомления (push notifications) до сих пор прекрасно работали и отсутствие их на телефоне для уведомления, к примеру, новой почты, раздражает. Стюарт, как программист, использует их на десктопе и хотел бы видеть в телефоне. Вопрос! Как получить уведомления о новой почте? Стюарт даже готов пожертвовать временем автономной работы от батареи, если это потребуется.
Не подскажите как это сделать? Крон говорите?
К сожалению, нельзя использовать cron в Ubuntu Phone. Можно зайти по SSH в Ubuntu Phone, но crontab -e
для создания пользовательского задания не сработает, так как cron не сможет сохранить его в файловой системе примонтированной в read-only. В системе инициализации Upstart нет функционала time-based scheduling. Но есть в Systemd, который пока не часть Ubuntu. Нужно писать своего демона и запускать его через Upstart, но это плохое решение.
Нет ещё советов? Сделать файловую систему read-write?
Да можно так сделать. Но это плохой путь. Если так сделать, то больше не будет работать обновление системы, которое использует механизм "Обновление через образы" (image based updates). Но важнее другое! Если так сделать, то вы уже не разработчик приложений, которых такие вещи не должны касаться в принципе!
Это уровень разработчика платформы, а не уровень прикладного программиста. Если начинать делать такие штуки, как изменять файловую систему на rw, устанавливать пакеты, твикать какие-либо системные конфы, то потеряется самая главная вещь в разработке ПО под мобильную платформу - знать что ваше устройство, такое же как у остальных. Как программист, нельзя быть уверенным, что "работает на моём устройство" означает так же, что "работает везде".
Резюмируя вышесказанное, Ubuntu хорошеет с каждым днём, но есть ещё вещи, которые можно сделать в Ubuntu Desktop, но нельзя сделать в Ubuntu Phone, пока не стабилизируется API платформы.
Кстати, был задан вопрос - Как получить уведомления о новой почте? Он же может звучать так: Как получить уведомление о посте в G+? Как сохранить важную инфу из моего приложения в безопасном месте? Как программно получить список размещённых в Launcher приложений? Как обновить фоновый рисунок при изменениях файла?
Ответ для десктопа: "установить приложение". Ответ для мобильной платформы: "пока нельзя это сделать, но сможете в ближайшем будущем". Стюарт не жалуется и доволен ответом, так как разница между desktop и mobile тает с каждым днём и наступит день когда её не станет.
Родственные души:
Пишем софт и получаем подарки! Новый конкурс Ubuntu App Showdown!
Нет Touch - есть Ubuntu.
Физическое воплощение конвергенции! Так и не вышедший Ubuntu Edge.
Немає коментарів:
Дописати коментар