8-битный фэнтези ретро компьютер.
Использует архитектуру семейства процессоров x80, таких как Intel 8080, Intel 8086, Motorolla 68000, Zilog z80.
Буква R в названии обозначает Retro. Символы X-80 служат для обозначения архитектуры.
Создан на базе https://github.com/fwmakc/rx8/ как дальнейшее развитие платформы.
Здесь мы будем размышлять о создании фэнтези-процессора как о возможном развитии семейства процессоров x80.
Так, Intel создала процессор 8086 и перешла на 16-битную архитектуру. Мы же будем создавать свой процессор x80 как следующую ступень развития 8-битной архитектуры.
Свой процессор мы так и назовем - "x80".
Шаблон для проектов:
- typescript,
- vite,
- vitest,
- eslint,
- prettier,
- electron.
Создаем новую папку для проекта
mkdir my_project
cd my_project
Клонируем репозиторий
git clone https://github.com/fwmakc/ts-vite-project.git .
Устанавливаем
yarn
В режиме разработки
yarn dev
В режиме разработки
yarn electron:dev
Выполняем предварительную сборку
yarn build
Собираем приложение под десктоп
yarn electron:make
Готовое приложение будет лежать в каталоге
out/template-vite-ts-win32-x64
Сборку делаем через capacitor. Полностью все происходит в несколько шагов.
Для настройки отредактируйте файл
capacitor.config.ts
Добавляем мобильное устройство. Это нужно сделать один раз после развертывания проекта.
yarn cap add android
Созданный каталог android содержит множество настроек приложения, которые хотелось бы сохранить в репозитории. Но он также содержит много временных файлов и копии проекта и поэтому получается слишком большим.
Мы создали другой каталог app, где вы можете хранить все настройки и ресурсы для сборки.
Перед сборкой вам просто нужно скопировать его содержимое
cp -rf app/android/* android/app/src/main
или
xcopy app\android\* android\app\src\main /E /H /C /I /Y
Выполняем предварительную сборку
yarn build
Копируем собранный проект для следующего этапа
yarn cap copy
Для дальнейшей сборки под android лучше всего работать в контейнере nodejs из проекта https://github.com/isengine/server.git
Перейдем в каталог
cd android
Билд в режиме дебаг:
./gradlew assembleDebug
Готовое приложение будет лежать в каталоге
android/app/build/outputs/apk/debug/app-debug.apk
Билд в продакшн:
./gradlew assembleRelease
Готовое приложение теперь будет лежать в каталоге
android/app/build/outputs/apk/release/app-release-unsigned.apk
Дальнейшие действия лучше выполнять из корневого каталога проекта
cd ..
Создаем ключ для подписи
keytool -genkey -v -keystore MY_RELEASE_KEY.jks -keyalg RSA -keysize 2048 -validity 10000 -alias MY_KEY_ALIAS
Запишите созданные пароли и alias, так как они понадобятся вам в дальнейшем.
Создаем копию приложения
cp android/app/build/outputs/apk/release/app-release-unsigned.apk android/app/build/outputs/apk/release/app-release.apk
Подписываем приложение
apksigner sign --ks MY_RELEASE_KEY.jks --ks-key-alias MY_KEY_ALIAS --ks-pass pass:YOUR_KEYSTORE_PASSWORD --key-pass pass:YOUR_KEY_PASSWORD android/app/build/outputs/apk/release/app-release.apk
Можно проверить подпись
apksigner verify android/app/build/outputs/apk/release/app-release.apk
Если APK подписан правильно, вы не увидите никаких ошибок.
Тестируем с помощью vitest.
Vitest очень похож на jest, но сразу оптимизирован для использования с typescript и vite. С его помощью можно также тестировать DOM-элементы.
Примеры использования приведены в проекте.
Помещаем файл рядом с объектом тестирования и называем так же, но с расширением .test.ts.
Пример:
src/counter.ts
src/counter.test.ts
Второй вариант - помещаем в папку src/tests и так же даем расширение .test.ts.
Пример:
src/tests/example.test.ts
Для запуска всех тестов используем команду
yarn test
Чтобы запустить какой-либо определенный тест, указываем его в качестве аргумента:
yarn test ./src/tests/example.test.ts
Лицензия MIT, 2025