Знаю про него, но не совсем решает проблему поля ввода. Я просто гоняю сам emojione чтобы сгенерировать html сообщений со смайликами и вставляю его через dangerouslySetInnerHTML (заодно и преобразование текст -> html производится не на лету, а один раз)
Тут ipc используется чисто как транспорт, будет легко поменять на websockets, например. А внутри электрона вы поднимаете локальный сервер? Можно было бы конечно прикрутить koa/express и слушать запросы как обычно, но я испытываю внутренний дискомфорт при идее, что это забивает локальные порты типа localhost:5000.
В целом вы правы, возможно мне хотелось большей лаконичности после electron-react-boilerplate. С electron-forge удобно что они берут на себя не только транспиляцию, но и создание установщиков, их подпись и даже релиз на гитхабе.
В планах попробовать fuse-box, чистый typescript не очень удобен, поскольку я ещё импортирую .graphql файлы (хотя, конечно, их не так много и можно перегнать их в .ts)
В Electron есть 2 типа процессов — main (node.js) и renderer (Chrome). В main процессе реализован GraphQL API, который транслируется в запросы, понятные Tinder API при помощи tinder-modern
Не совсем. Они патчат механизм загрузки модулей, при загрузке модуля проверяя, есть ли он в кэше. Когда приложение собирается, все модули транспилируются. Они тащат исходники, потому что для ноды нужно чтобы при импорте файла он существовал в файловой системе, но в целях оптимизации можно все исходники при финальной сборке делать файлами нулевого размера.
Автор emojionearea в любой момент мог поместить jquery в peerDependencies (где этой библиотеке, кстати, и место), я хотел быть уверенным, что ничего не сломается при обновлении + с переходом на electron-forge потерялась возможность использовать webpack.ProvidePlugin и самым простым оказалось объявить jQuery глобальной переменной
На мой взгляд, если уж импортировать библиотеку в своём коде, то она должна быть явно прописана в зависимостях.
Сейчас приложение эмулирует официальное приложения Тиндера на андроиде, браузерный JS в целях безопасности не позволяет устанавливать некоторые заголовки запроса, так что сервер в любом случае был бы нужен. Конечно, можно было бы делать запросы на сервере и просто отображать данные в браузере, но для меня клиент для чатов всё-таки ассоциируется с отдельным приложением, да и просто было интересно поработать с Electron. В принципе сейчас рендеринг и логика практически не связаны друг с другом, так что перенести это в чистый веб должно быть довольно просто.
jquery тащит за собой emojionearea, если подскажете другой способ реализации формы ввода со смайликами, то я буду очень рад, самому это не очень нравится
redux нужен как зависимость react-apollo, они используют его для хранилища
Начал делать приложение ещё до их анонса, а потом уже оставалось доделать совсем немного. Да и просто интересно было выпустить первый осмысленный продукт.
Это бич приложений на Electron — там вместе с приложением упаковывается хром и node.js, если я правильно понимаю. Есть экспериментальные проекты типа Electrino, но по-моему там всё ещё в статусе беты.
Ну всё-таки согласитесь, что либо нужна отдельная bluetooth-клавиатура (которой у меня нет), либо требуется как-то подключать клавиатуру ноутбука к телефону, уж тогда проще было бы поставить BlueStacks.
Да и чего уж там, писать это приложение было довольно весело :)
Так ведь автор этого и не утверждает.
Знаю про него, но не совсем решает проблему поля ввода. Я просто гоняю сам emojione чтобы сгенерировать html сообщений со смайликами и вставляю его через dangerouslySetInnerHTML (заодно и преобразование текст -> html производится не на лету, а один раз)
Тут ipc используется чисто как транспорт, будет легко поменять на websockets, например. А внутри электрона вы поднимаете локальный сервер? Можно было бы конечно прикрутить koa/express и слушать запросы как обычно, но я испытываю внутренний дискомфорт при идее, что это забивает локальные порты типа localhost:5000.
В целом вы правы, возможно мне хотелось большей лаконичности после electron-react-boilerplate. С electron-forge удобно что они берут на себя не только транспиляцию, но и создание установщиков, их подпись и даже релиз на гитхабе.
В планах попробовать fuse-box, чистый typescript не очень удобен, поскольку я ещё импортирую .graphql файлы (хотя, конечно, их не так много и можно перегнать их в .ts)
В Electron есть 2 типа процессов — main (node.js) и renderer (Chrome). В main процессе реализован GraphQL API, который транслируется в запросы, понятные Tinder API при помощи tinder-modern
Не совсем. Они патчат механизм загрузки модулей, при загрузке модуля проверяя, есть ли он в кэше. Когда приложение собирается, все модули транспилируются. Они тащат исходники, потому что для ноды нужно чтобы при импорте файла он существовал в файловой системе, но в целях оптимизации можно все исходники при финальной сборке делать файлами нулевого размера.
Автор emojionearea в любой момент мог поместить jquery в peerDependencies (где этой библиотеке, кстати, и место), я хотел быть уверенным, что ничего не сломается при обновлении + с переходом на electron-forge потерялась возможность использовать webpack.ProvidePlugin и самым простым оказалось объявить jQuery глобальной переменной
На мой взгляд, если уж импортировать библиотеку в своём коде, то она должна быть явно прописана в зависимостях.
Сейчас приложение эмулирует официальное приложения Тиндера на андроиде, браузерный JS в целях безопасности не позволяет устанавливать некоторые заголовки запроса, так что сервер в любом случае был бы нужен. Конечно, можно было бы делать запросы на сервере и просто отображать данные в браузере, но для меня клиент для чатов всё-таки ассоциируется с отдельным приложением, да и просто было интересно поработать с Electron. В принципе сейчас рендеринг и логика практически не связаны друг с другом, так что перенести это в чистый веб должно быть довольно просто.
jquery тащит за собой emojionearea, если подскажете другой способ реализации формы ввода со смайликами, то я буду очень рад, самому это не очень нравится
redux нужен как зависимость react-apollo, они используют его для хранилища
Сложно ответить, если честно. По моим ощущениям большая часть работы была проделана в 1.5 месяца до релиза, до этого больше игрался.
Начал делать приложение ещё до их анонса, а потом уже оставалось доделать совсем немного. Да и просто интересно было выпустить первый осмысленный продукт.
Это бич приложений на Electron — там вместе с приложением упаковывается хром и node.js, если я правильно понимаю. Есть экспериментальные проекты типа Electrino, но по-моему там всё ещё в статусе беты.
Да и чего уж там, писать это приложение было довольно весело :)