Я уже неоднократно упоминал, что озаботился модной и современной разработкой софта для всяких электронных девайсов. Когда с веб-разработки переключаешься на железки, такое впечатление, что вернулся лет на 10-15 назад в какой-то ад. Обсирать закостенелость эмбедов можно долго и аргументированно, но это не конструктивно. Поэтому речь пойдет о конкретных прикладных задачах и как с ними быть.
Иногда нужно лепить девайсы с мелкими дисплеями и симпатичными интерфейсами. Для примера - те же reflow-паялки. Так вот, трудоемкость правильного интерфейса может значительно превышать все остальное. И чтобы это не погибло под грузом сложностей, нужно несколько вещей:
Нельзя “лочить” проект на одном человеке. Всегда должна быть возможность “подкрутить” интерфейс со стороны, не вникая в проект целиком.
Нельзя привязывать прототипирование интерфейса к реальному железу. В эмуляторе это делать на порядок быстрее. И этим могут заниматься вовсе не “железячники”.
Не надо пытаться рисовать что-то свое. Серьезные дяди и тети составляют документы под названием “interface design guide”. Просто выбираем design guide по вкусу, и быстро делаем по требованиям, которые в нем описаны.
Софт должен ставиться легко и быстро.
После изучения легковесных GUI-библиотек я остановился на lvgl. Технически там все довольно неплохо, но надо было решить вопрос с простотой установки-сборки. Поэтому создал тикет о скрещивании с platformio, и этот тикет сегодня благополучно решили. Ура!
Осталось понять как красиво напилить код, чтобы собирался под разные платформы, и оформить это дело в качестве примера для новичков.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"39c21abc3df9550077797d18":{"_id":"39c21abc3df9550077797d18","hid":349,"name":"Vitaly","nick":"Vitaly","avatar_id":null,"css":""}},"settings":{"blogs_can_create":false,"blogs_mod_can_delete":false,"blogs_mod_can_hard_delete":false,"blogs_mod_can_add_infractions":false,"can_report_abuse":false,"can_vote":false,"can_see_ip":false,"blogs_edit_comments_max_time":30,"blogs_show_ignored":false,"blogs_reply_old_comment_threshold":30,"votes_add_max_time":168},"entry":{"_id":"5c48be6f99707300771186db","hid":23704,"title":"lvgl (GUI-библиотеку) подкрутили под platformio","html":"<p><a href=\"https://github.com/littlevgl/lvgl/issues/667\" class=\"link link-ext link-auto\" data-nd-link-type=\"autolink\" data-nd-link-orig=\"https://github.com/littlevgl/lvgl/issues/667\" target=\"_blank\" rel=\"nofollow noopener\">github.com/littlevgl/lvgl/issues/667</a></p>\n<p>Я уже неоднократно упоминал, что озаботился модной и современной разработкой софта для всяких электронных девайсов. Когда с веб-разработки переключаешься на железки, такое впечатление, что вернулся лет на 10-15 назад в какой-то ад. Обсирать закостенелость эмбедов можно долго и аргументированно, но это не конструктивно. Поэтому речь пойдет о конкретных прикладных задачах и как с ними быть.</p>\n<!--cut-->\n<p>Иногда нужно лепить девайсы с мелкими дисплеями и симпатичными интерфейсами. Для примера - те же reflow-паялки. Так вот, трудоемкость правильного интерфейса может значительно превышать все остальное. И чтобы это не погибло под грузом сложностей, нужно несколько вещей:</p>\n<ul>\n<li>Нельзя “лочить” проект на одном человеке. Всегда должна быть возможность “подкрутить” интерфейс со стороны, не вникая в проект целиком.</li>\n<li>Нельзя привязывать прототипирование интерфейса к реальному железу. В эмуляторе это делать на порядок быстрее. И этим могут заниматься вовсе не “железячники”.</li>\n<li>Не надо пытаться рисовать что-то свое. Серьезные дяди и тети составляют документы под названием “interface design guide”. Просто выбираем design guide по вкусу, и быстро делаем по требованиям, которые в нем описаны.</li>\n<li>Софт должен ставиться легко и быстро.</li>\n</ul>\n<p>После изучения легковесных GUI-библиотек я остановился на <a href=\"https://github.com/littlevgl/lvgl\" class=\"link link-ext\" data-nd-link-orig=\"https://github.com/littlevgl/lvgl\" target=\"_blank\" rel=\"nofollow noopener\">lvgl</a>. Технически там все довольно неплохо, но надо было решить вопрос с простотой установки-сборки. Поэтому создал тикет о скрещивании с <a href=\"https://platformio.org/\" class=\"link link-ext\" data-nd-link-orig=\"https://platformio.org/\" target=\"_blank\" rel=\"nofollow noopener\">platformio</a>, и этот тикет сегодня благополучно решили. Ура!</p>\n<p>Осталось понять как красиво напилить код, чтобы собирался под разные платформы, и оформить это дело в качестве примера для новичков.</p>\n","user":"39c21abc3df9550077797d18","ts":"2019-01-23T19:20:15.000Z","st":1,"cache":{"comment_count":0},"views":911,"bookmarks":0,"votes":0},"subscription":null},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}