Добрый день, всем! У меня возникло желание разработать программу на языке C++. Хочу отметить, что у меня нет значительных знаний в этом языке, поэтому я собираюсь обучаться в процессе создания программы. Вот мой план: Я хочу создать приложение, в котором смогу составлять список различных необходимых покупок или желаемых товаров. То есть, мне нужно будет просто вводить названия и ставить напротив них галочки. Ничего слишком сложного. Основная идея в том, что я собираюсь впоследствии адаптировать эту программу для мобильных устройств. Также мне важна база данных, где я смогу хранить все свои "Покупки". Идеально, если будет возможность выбирать, сохранять данные в Облаке или на устройстве. У меня есть несколько вопросов: 1) Какую библиотеку для интерфейса стоит выбрать? Подойдут ли Windows Forms? Не будет ли это проблемой при портировании на мобильные устройства? 2) Стоит ли делать мобильную версию на C++, или есть другие предпочтительные технологии? Что бы вы посоветовали? 3) Знает ли кто-либо о нюансах разработки подобного приложения? 4) На какие аспекты следует обратить особое внимание в первую очередь? Буду рад любому конструктивному фидбеку! Спасибо!
Добрый день! Ваш проект звучит интересно, и я рад помочь с вашими вопросами. Вот некоторые рекомендации и ответы на ваши вопросы: ### 1. Выбор библиотеки для интерфейса - **Windows Forms**: Эта библиотека хороша для разработки приложений под Windows, но она не подходит для мобильных устройств (Android, iOS). - **Qt**: Я рекомендую использовать Qt для разработки графического интерфейса на C++. Qt позволяет создавать кроссплатформенные приложения, и у него есть поддержка как десктопных, так и мобильных приложений. Вы сможете использовать один и тот же код для создания и настольной, и мобильной версии вашей программы. - **wxWidgets**: Это еще одна кроссплатформенная библиотека для C++, которая может быть полезна для создания GUI. Однако она не так популярна, как Qt, и может иметь некоторые ограничения. ### 2. Мобильная версия на C++ - Действительно, можно использовать C++ для создания мобильных приложений, особенно с помощью таких фреймворков, как Qt или Xamarin C++. Однако часто разработка на Swift для iOS или Kotlin для Android может быть более эффективной. - Если вы хотите максимально использовать ваши знания C++ и не планируете изучать новые языки, Qt будет отличным выбором. ### 3. Нюансы разработки приложения - **Планирование структуры данных**: Перед началом разработки стоит продумать, как вы будете хранить и обрабатывать данные. Возможно, вам потребуется создать классы для представления покупок и списка покупок. - **База данных**: Для хранения данных можно использовать SQLite, которая хорошо интегрируется с C++ и часто используется в приложениях. Это позволяет хранить данные локально. Для облачного хранения можно рассмотреть использование RESTful API для взаимодействия с облачными сервисами. - **Сетевые операции**: Если вы собираетесь делать облачное хранение, изучите, как реализовать HTTP-запросы и работать с JSON. ### 4. Аспекты для внимания - **Проектирование интерфейса**: Используйте простые и интуитивно понятные элементы управления. Размышляйте о том, как пользователи будут взаимодействовать с вашим приложением. - **Обработка ошибок**: Включите адекватную обработку ошибок, чтобы пользователи не сталкивались с неясными сообщениями. - **Тестирование**: Начните тестирование вашего приложения на ранних стадиях разработки, чтобы выявлять и исправлять ошибки по мере их появления. - **Документация**: Пишите документацию по коду и используйте комментарии, чтобы облегчить себе и другим понимание вашего кода. ### Заключение Начало разработки — это всегда сложный, но увлекательный процесс. Не бойтесь задавать вопросы и искать ресурсы (учебники, видео, форумы) для обучения и поддержки. Удачи в вашем проекте!
Подойдёт ли Windows Forms? Мне ведь потом на мобилку порт делать.
Формы - это .Net и только для винды. Причем это уже очень старое легаси, которое имеет смысл использовать только для поддержки Windows XP - а у нас тут уже поддержка 10 заканчивается так-то. А .Net - это прежде всего C#. И вот на C# есть более новый WPF и кроссплатформенный MAUI. Для мобилки все равно придется переписывать с нуля.
Или на мобилку лучше не на C++ делать? Что посоветуете?
И не сделаете на плюсах - там Java/Kotlin и Swift.
Может кому-то известны нюансы при постройке такой программы?
Известны и т.к. вы нуб - для вас весь ваш процесс разработки будет нюансом и тут уже попахивает как минимум долгосрочной регулярной консультацией или менторство.
В общем, у вас несколько вариантов. Вариант раз: если хотите именно плюсы - то вам следует использовать Qt и писать код сразу с учетом дальнейших доработок для работы в Linux и Mac. Для андроида и айфона - придется еще два раза создать то же самое приложение на Kotlin и Swift практически с нуля.
Вариант два: если хотите сразу писать приложение сразу для всех платформ с единой кодовой базой - то вам остается только отказаться от С++ и использовать веб-платформы типа NWJS, Cordova и прочие браузерные платформы. Минус - приложение будет тяжёлым и ощутимо более медленным, чем нормальное нативное.
В целом, могу рекомендовать для начала просто сделать на плюсах с Qt хоть какое-то приложение для винды, далее внести доработки для работы в линуксе и маке. При наличии/доступности мака - можно сразу и для мака делать. Линукс прекрасно ставится и работает в VirtualBox и прочих виртуализаторах. Далее сделать поддержку сетевых фич, БД и прочего, а уже только потом переключаться на разработку для мобилок. При этом, вам надо будет организовать свой план разработки от меньшего к большему. Т.е., сначала самые простые функции делаете, а уже потом к ним добавляете что-то более сложное по мере изучения.