@RetroCR

Рекомендации по созданию приложения на C++?

Всем добрый день!

Появилось желание сделать программку на языке C++. Сразу хочу сказать, что хороших знаний языка у меня нет, поэтому буду его доучивать сразу в процессе.

Замысел следующий:
Хочу сделать прогу, где я смогу делать список разных необходимых покупок или того, что я хотел бы купить. Т.е. просто вписывать названия и ставить напротив них галочки. Ничего особенно сложного.
Соль в том, что я хочу потом сделать порт на мобилку. Ну и обязательно должна быть база данных, где я буду хранить все свои "Покупки". В идеале чтобы я мог выбирать, сохранять в Облако или в память устройства.

Из всего этого, складываются вопросы.
1) Нужно выбрать библиотеку для интерфейса. Какую выбрать? Подойдёт ли Windows Forms? Мне ведь потом на мобилку порт делать.
2) Или на мобилку лучше не на C++ делать? Что посоветуете?
3) Может кому-то известны нюансы при постройке такой программы?
4) На что в первую очередь обратить внимание?

В общем, буду рад любому адекватному фидбэку :)
Спасибо!
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Подойдёт ли Windows Forms? Мне ведь потом на мобилку порт делать.

Формы - это .Net и только для винды. Причем это уже очень старое легаси, которое имеет смысл использовать только для поддержки Windows XP - а у нас тут уже поддержка 10 заканчивается так-то. А .Net - это прежде всего C#. И вот на C# есть более новый WPF и кроссплатформенный MAUI. Для мобилки все равно придется переписывать с нуля или искать какие-то варианты решений, которые могут C# в мобилки.

Или на мобилку лучше не на C++ делать? Что посоветуете?

Не самое лучшее решение - там родная платформа Java и Swift. Qt умеет: https://doc.qt.io/qt-6/mobiledevelopment.html - но как оно там в результате будет работать сложно сказать и можно ожидать каких-нибудь слабопрогнозируемых глюков и сложностей. Спасибо Adamos.

Может кому-то известны нюансы при постройке такой программы?

Известны и т.к. вы нуб - для вас весь ваш процесс разработки будет нюансом и тут уже попахивает как минимум долгосрочной регулярной консультацией или менторство.

В общем, у вас несколько вариантов. Вариант раз: если хотите именно плюсы - то вам следует использовать Qt и писать код сразу с учетом дальнейших доработок для работы в Linux, Mac и на мобилках - не знаю, как и на сколько хорошо Qt умеет в мобилки, но могут быть какие-то сложности/баги. Ну, в кроссплатформе от этого не уйти - придётся мириться и местами писать разный код для разных платформ.

Вариант два: если хотите сразу писать приложение сразу для всех платформ с единой кодовой базой и минимальными услиями - то можно использовать веб-платформы типа NWJS, Cordova и прочие браузерные платформы. Минус - приложение будет тяжёлым и ощутимо более медленным, чем нормальное нативное.

В целом, могу рекомендовать для начала просто сделать на плюсах с Qt хоть какое-то приложение для винды, далее внести доработки для работы в линуксе и маке. При наличии/доступности мака - можно сразу и для мака делать. Линукс прекрасно ставится и работает в VirtualBox и прочих виртуализаторах. Далее сделать поддержку сетевых фич, БД и прочего, а уже только потом переключаться на разработку для мобилок. При этом, вам надо будет организовать свой план разработки от меньшего к большему. Т.е., сначала самые простые функции делаете, а уже потом к ним добавляете что-то более сложное по мере изучения.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега C++
software engineer
Напиши веб-приложение, которое будет возвращать html/css/js страничку.
Можно даже на хостинге его через php вызывать. Будет кроссплатформенно.
Ответ написан
Комментировать
TrueBers
@TrueBers
Гуглю за еду
Плюсы и гуй в 2024-м это уже не смешно.

Графические интерфейсы на плюсах развиваются сейчас как полудолхая кляча. Баги по 15 лет не могут пофиксить в Кьюте, который тебе советуют. К тому же, Qt был на плюсах лет так 15 назад. Сейчас там всё на QML пишется и чистые плюсы самой компанией уже давно не поощряются. Нужно понять главное: каждой задаче -- свой инструмент. Если будешь писать такую программу на плюсах, будешь страдать. Много страдать. Не начало нулевых так-то, уже столько всего под эти задачи есть удобного, что стоило бы изучить эту сферу.

Например, посмотри на Flutter. Очень приятный у шустрый фреймворк для создания графических приложений. Язык Dart учится с нуля за 2-3 дня. Написал на одном языке один раз, а работать это всё будет начиная от мобил и ПК, заканчивая вебом, Raspberry Pi, бортовым компьютером Теслы и Тойоты, телевизорами, фоторамками и прочими экзотическими устройствами.

C++ сейчас учить нужно только для общего развития, писать на нём новые проекты не советую. Есть множество современных, куда более адекватных и не таких затратных по времени и силам языков, как Rust -- отличная замена C++, Zig -- крутая замена Си.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы