Рубрики
Без рубрики

Как и почему я построил поперечный приложение для рабочего стола для архива с электронным и реагированием

Как и почему я построил поперечный приложение для рабочего стола для архива с электронным и реагированием

Автор оригинала: etaba.

Обо мне

Я инженерной науки и сетевой инженер, страстный программной техникой. Я работаю более трех лет в настоящее время в Барах Технологии Канады, помогая построить корпоративное программное обеспечение.

Проблема, которую я хотел решить

Я хотел построить поперечное настольное приложение для поперечной платформы с достойным дизайном в течение очень короткого времени

Archy Desktop

Что такое поперечное настольное приложение для архива?

Приложение Архи Это простое настольное приложение для использования Archive Manager, цели приложений:

  • Регистрация коробок документов (с именем, добавленная дата, имя создателя или владельца)
  • Добавить и удалить документы в каждую коробку
  • Обработайте процесс заимствования для коробок (измените состояние коробки, если он присутствует, заимствован или если передается дата возврата) с регистрацией заемщика со своими личными деталями (номер телефона, электронная почта)
  • Есть настольные уведомления для менеджера Archive, когда заимствованная коробка прошла дату возвращения

Tech Stack

Со временными ограничениями я хотел, чтобы технологичный стек, который мог бы позволить мне действительно быстро построить приложение и обрабатывать поперечный аспект платформы. Я закончил выбрать электрон с Rectjs Отказ Чтобы избежать хорошего количества ошибок, я решил использовать Tymdercript И для государственного управления я хотел что-то очень простое и эффективное, поэтому я выбрал Zustandjs Отказ Для стилизации, поскольку приложение не было очень большим, я решил использовать простые CSS внутри компонентов с Стильные компоненты CSS в библиотеке JS. Наконец, для хранения приложений я также хотел что-то простое, так как все приложение собирается хранить, это простой текст, поэтому я использовал LocalStorage

Процесс построения поперечной платформы для рабочего стола для управления архивом

Я продолжил в трех ключевых шагах:

  1. Первоначальная настройка приложения Чтобы иметь возможность иметь React-Fast-Refresh, правильно работать с помощью Create-React-App и Electron/Teadercript с этими шагами ..1 Создать базовый проект App App NPX Create-raction-App --typescript && cd ..2. Установите несколько пакетов для настройки React-Fast-Refresh пряжа Добавить настройку CRA Customize-Cra-React-Refresh React-App-Reware ..3 Измените сценарии React в Package.json Файл

    ..4. Добавить электрон и связанные с ними пакеты

..5. Создать Electron.js Файл внутри публичной папки с этим контентом

 const electron = require('electron');
const app = electron.app;
const {  Notification, BrowserWindow, ipcMain } = electron

const path = require('path');
// const url = require('url');
const isDev = require('electron-is-dev');

let mainWindow;


const sendNotification = (data) => {
console.log(data)
let iconAddress = path.join(__dirname, '/icon.png');
const notif={
  title: data.title,
  body: data.body,
  icon: iconAddress
};
new Notification(notif).show();

}



function createWindow() {
mainWindow = new BrowserWindow(
  {
    width: 1280, 
    height: 720, 
    minWidth: 1280, 
    minHeight: 720,
    backgroundColor: "#1A202C",
    show: false,
    webPreferences: {
      worldSafeExecuteJavaScript: true,
      nodeIntegration: true
    }
  }
);
mainWindow.loadURL(isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, '../build/index.html')}`);
mainWindow.once("ready-to-show", () => mainWindow.show())
mainWindow.on('closed', () => mainWindow = null);
}

app.on('ready', createWindow);

app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
  app.quit();
}
});

app.on('activate', () => {
if (mainWindow === null) {
  createWindow();
}
});

..6. Отредактируйте файл package.json

"description": "",
"author": "",
"build": {
"appId": ""
},
"main": "public/electron.js",
"homepage": "./",

..7 Добавить скрипты для электрона

  "electron-dev": "concurrently \"BROWSER=none yarn start\" \"wait-on http://localhost:3000 && electron 
   .\"",
   "preelectron-pack": "yarn build"
  1. Настройка процесса сборки исполняемых файлов для разных платформ (MacOS, Windows и Linux), добавив скрипт в Package.json
"electron-pack": "electron-builder -mw -c.extraMetadata.main=build/electron.js",
  1. построить приложение

Проблемы я столкнулся

Было довольно много препятствий, которые я не ожидал при запуске этого проекта. В основном, процесс установки не был очень хорошо документирован, и ресурсы, которым мне удалось найти, где не в курсе. Кроме того, я также столкнулся с проблемами совместимости при попытке интеграции пользовательского веб-компонента DatePicker в проекте, но проблема была в основном, как работает React Reach и не сам электрон.

Назначение ключей

Я узнал, что, хотя у меня были сомнения по поводу стека, вполне возможно построить приложение Performant Cross Platform с веб-технологиями.

Советы и советы

  • Используйте правильный инструмент для работы под рукой
  • Для крупных списков манипуляций или отображения событий, используйте Reactualualualualized с реагированием или альтернативой для других каркасов, чтобы уменьшить размер узлов DOM в памяти и их Probsign также на компьютерах пользователей
  • Даже при создании настольного приложения с веб-технологиями все равно следует учитывать размер пакета приложения, потому что весь JavaScript будет загружен на страницу, и если приложение осторожно не создано, приложение все равно будет медленно

Окончательные мысли и следующие шаги