• Какие сейчас есть основные тенденции и принципы создания программ с GUI?

    @Pardych
    почти все укладывается в три гайдлайна по популярности:
    1. https://m3.material.io/
    2. https://developer.apple.com/design/human-interface...
    3. https://fluent2.microsoft.design/
    Ответ написан
    Комментировать
  • На чём писать клиентское приложение с GUI?

    @Pardych
    JavaFX
    Не советую, он уже почти мертв. Можно из него получить что-то удобоваримое на связке TornadoFX + KFoenix + MaterialFX, на котлине, само собой, но там одного конфигурирования дофига и результат хуже и запутаннее чем Compose.

    Compose Desktop (Multiplatform)
    Снова котлин. Если все же хочется под JVM, то лучший выбор. Нормальный старт с онлайн визардами, большое сообщество и куча либок, за счет того что проект стартовал с одноименного дроидовского (там даже пекеджи те же). Порог вхождения может быть высоковат в сравнении с Flutter, но для десктопа это JVM со всеми его плюсами и минусами.

    Flutter
    Дарт. Мегатема для "простого" в системном плане. Даже более шикарный старт чем у композа, сообщество так же очень объемное и активное на либки, в основном люди из веба и мобайла. Но если хочется все три десктопа и есть сложные системные вещи - расчехляйте с++, так как хостовые аппки и платформенные части плагинов там собираются на родном для платформы gcc|msvc|clang. Но редкая птица долетит до такой экзотики.

    Electron
    Есть наработанный стек во фронтенде - милости просим в электрон и ему подобные вебвьюшечные проекты. В конце концов и VSCode на нем же. Самый эффективный способ поиграть в десктоп со знанием фронта.
    Ответ написан
    5 комментариев
  • Какой формат для передачи данных(объектов/списков) использовать при передаче через сокет?

    @Pardych
    https://github.com/irmen/Pyrolite
    вот такое есть
    там
    https://github.com/irmen/Pyrolite/blob/master/java...
    и
    https://github.com/irmen/Pyrolite/blob/master/java...
    вообще мне просто интересно стало и я погуглил, у себя я сериализую-десереализую байт-массивы руками (они с железяки приходят по блютусу) - не очень веселое занятие
    там еще проблемы с протоколом могут быть посмотрите вот тут примеры:
    https://stackoverflow.com/questions/21794750/read-...
    Ответ написан
    Комментировать
  • Как правильно пользоваться разделителем кода для Windows и linux?

    @Pardych
    Первый комментатор со своим предложением скриптов в целом транслирует частный случай верной архитектуры, но, видимо в силу еще слабого технического кругозора несколько категорично.
    Суть в чем - у вас есть логический модуль отвечающий за ос-зависимый код. У него есть интерфейс. Вы делаете два класса/модуля которые этот самый интерфейс реализуют. Дальнейший вопрос это как давать вашему приложению экземпляр этого интерфейса для использования. Можно создавать в рантайме, полагаясь на выбор ос (это ваш вариант, он же вариант с инверсией контроля, когда обе имплементации интерфейса доступны для приложения в любой момент и создаются во время работы каким-то внутренним механизмом выбирающим их на основе текущей ос), однако чаще это делается в компайл-тайме, проект при этом один, но дробится на проект аппа содержащий вашу абстрактную логику без привязки к системе + столько проектов ос/платформенно зависимых реализаций библиотеки сколько вам нужно. В той же джаве например проекты библиотек оформляются модулями основного проекта с использованием автосборщиков градл или мавен. В случае си и си++ инструменты у вас будут свои. Конечный результат правильно организованной сборки представляет собой набор дистрибутивов для конкретных платформ лишенный "лишнего" - в каждый конкретный дистрибутив идет только то что ему нужно для целевой платформы. Подобный подход так же работает для проектов с разными языками, поскольку множество языков умеет в интероп с нативными библиотеками. В таких случаях абстрактный слой (бизнес-логику) делают общей кодовой базой и пишут ее на чем удобно и что больше подходит для целей приложения. Это и есть частный случай из комментария 1. Если нет желания баловаться с интеропом то и не нужно, выбираете удобный инстурмент автоматизации вашей сборки, аккуратно отделяете свой абстрактный слой от платформенно-зависимого и вперед.
    Ответ написан
    4 комментария
  • Какие сейчас есть хорошие IDE для Linux c отладкой?

    @Pardych
    Пайчарм для серьезных проектов, вскод для почеркушек и скриптов. Обе кроссплатформа. Как ide пайчарм лучшее что вообще есть. Как мультитул для любых ресурсов, включая доступ к бд, юмл, любого другого говна и мелочи vscode с его плагинами. Некоторые любят в принципе кодить в вскод. Если у вас очень старый ноут с двумя-тремя гигами памяти, и в принципе нет нужды ковыряться в проектах на ХКК строк, то это выход. Но если нет, то идеевский интелисенс, навигацию по коду, генерацию и авторефакторинг никто ещё не повторил. А пайчарм это идея для питона.
    Только не эклипс в 2019м, ну вы что.
    Ответ написан
    Комментировать
  • Почему стек mvvm, корутины, viewModel, liveData не востребован?

    @Pardych
    Потому что гугловый мввм говно и даже не мввм. И в лайвдате есть косяки. Почитайте что Вортон пишет про архитектурные компоненты. Он иногда категоричен, но тут абсолютно прав.
    Ответ написан
  • Что нужно изучать начинающему Android программисту помимо языка программирования?

    @Pardych
    Котлин. Порог входа меньше, язык интереснее. Сейчас он рекомендуется по дефолту для дроида. В противовес предыдущему комментарию - ЗАЦИКЛИВАЙСЯ на программировании. Я зацикливался. Как результат уже 15 лет я с этим живу, из них 10 удаленно, но на окладе или двух сразу. 8 из них кстати на андроид. Очень классная по множеству причин платформа. Очень классные специалисты и культура разработки. Не игнорируй математику, а конкретно вычислительные методы и дискретку. Относительно мышления - оно нарабатывается изучением сначала алгоритмов и структур данных, а потом архитектурных шаблонов (паттернов проектирования). Переболев всеми детскими болезнями начинающего разработчика, а так же получив опыт можно стать неплохим инженером, у которого нет проблем с решением задач бизнеса за деньги (неплохие). Вопрос этого ли тебе надо. Несмотря на неплохой доход это не путь в миллионеры, а стиль жизни который не всякому по нутру. Многое решается усидчивостью. Даже при наличии таланта придется много стараться чтобы не болтаться в рядах посредственных говнокодеров. Если да, то начни с реального учебного проекта, а потом подтягивай теорию. Нет ничего лучше чем сделать что-то с нуля в самом начале. Ты получаешь реальный опыт, знакомишься с инструментами и примериваешь на себя ощущения - того от ты ждал, есть ли отдача.
    Ответ написан
    Комментировать