Skip to main content

Techno4 Framework 2.0

techno4-cli v2.0.4 techno4 v2.0.4 MIT License git@github.com:CO-CF-TECHNO4/TECHNO4FRAMEWORK2.git

Посібник зі встановлення, розгортання та створення вебзастосунків

TECHNO4 FRAMEWORK 2.0 — це швидка, модульна бібліотека та повноцінна екосистема для створення нативних мобільних (iOS, Android) та портативних вебзастосунків (PWA) з використанням відкритих вебтехнологій HTML5, CSS3 і чистого JavaScript (ESM). Оберіть зручний для вас спосіб розгортання — від миттєвого інтерактивного скафолдингу через CLI до ручного підключення ядра у власний бандлер Vite чи Rollup.

1. Встановлення інструментів командного рядка (CLI)

На компʼютерах під керуванням Windows, а також під root на macOS і Linux виконайте наступну команду для глобального встановлення:
npm install -g techno4-cli cordova
На компʼютерах з операційними системами macOS та Linux, якщо потрібні права суперкористувача, використовуйте sudo:
sudo npm install -g techno4-cli cordova
Після завершення встановлення перевірте працездатність та встановлені версії інструментів:
techno4 -V && cordova -v

2. Запуск інтерактивного майстра створення проєкту з шаблону

Перейдіть до директорії, де ви плануєте створити проєкт, та виконайте команду створення застосунку:
techno4 create
Консольний майстер у діалоговому режимі запропонує обрати тип застосунку (вкладки Tabs, бічні панелі Split View або мінімальний каркас Blank), назву проєкту, налаштування компілятора Vite та цільову платформу Apache Cordova Android.

3. Інтерактивна консоль генерації та перевірки збірки (CLI Showcase)

Нижче представлена інтерактивна симуляція термінала створення проєкту на базі Techno4. Скористайтеся вкладками у верхній панелі термінала для перегляду кроків майстра, структури створених файлів, інтеграції платформи Cordova Android 15.1.0 та фінального звіту компілятора Vite:
Крок 1 Глобальний CLI
npm i -g techno4-cli
Клацніть для копіювання
Крок 2 Генератор проєкту
techno4 create
Клацніть для копіювання
Крок 3 Запуск сервера розробки
npm start
Клацніть для копіювання
Terminal — techno4 create
zsh node v20+ techno4-cli v2.0.4
  • ================================================================================
      TECHNO4 FRAMEWORK2 CLI — ПРОЦЕС ГЕНЕРАЦІЇ ПРОЄКТУ (MONOSPACE CONSOLE LOG)
    ================================================================================
    
    $ techno4 --version
    2.0.0
    
    $ cd cli-demos
    $ techno4 create
    
    [?] Techno4 може згенерувати стартовий проєкт у наступних форматах:
        [ ] Простий вебзастосунок
        [ ] PWA (Progressive Web App)
        [*] Cordova застосунок (цільові платформи iOS, Android, Electron для MacOS, Linux та Windows.)
        [ ] Capacitor застосунок (цільові платформи iOS, Android, Electron для MacOS, Linux та Windows.)
    
    [?] Назва застосунку (проєкт): Techno4 Tabs Cordova Android
    [?] Ідентифікатор пакунку (Bundle ID): io.techno4.tabsandroid
    
    [?] Цільові Cordova платформи:
        [ ] iOS
        [*] Android
        [ ] Electron (настільний застосунок)
        [ ] macOS (настільний MacOS застосунок)
    
    [?] Який тип Techno4 фреймворку обрати?
      > Techno4 Core
    
    [?] Який стартовий шаблон обрати?
        Пустий
        Один Перегляд (View)
      > Перегляд з вкладками (Tabs)
        Двопанельний перегляд (Split Panel)
    
    [?] Налаштувати проєкт з компілятором (Bundler)?
      > Компілятор Vite (рекомендовано)
        Без компілятора
    
    [?] Бажаєте налаштувати препроцесор CSS Pre-Processor?
      > Ні, все чудово з CSS
        Less
        Stylus
        SCSS (SASS)
    
    [?] Хочете визначити власний колір теми?
      > Ні, Залиште стандартні кольори теми.
        Так, я хочу визначити власний колір теми.
    
    [?] Ви хочете включити Techno4 Icons та Material Icons шрифт?
      > Так.
        Ні.
    
    --------------------------------------------------------------------------------
      ВИКОНАННЯ ГЕНЕРАЦІЇ ТА ВСТАНОВЛЕННЯ
    --------------------------------------------------------------------------------
    
    > [START] Генерація package.json.
    ✔ [DONE]  Генерація package.json.
    > [START] Генерація структури файлів.
    ✔ [DONE]  Генерація структури файлів.
    > [START] Генерація NPM залежностей. (Очікуйте, це може зайняти деякий час.)
    ✔ [DONE]  Генерація NPM залежностей.
    > [START] Генерація NPM залежностей розробника. (Очікуйте, це може зайняти деякий час.)
    ✔ [DONE]  Додавання NPM залежностей розробника.
    > [START] Генерація Cordova проекту. (Очікуйте, це може зайняти деякий час.).
    ✔ [DONE]  Генерація Cordova проекту.
    > [START] Генерація файлів проекту.
    ✔ [DONE]  Генерація файлів проекту.
    
    √ Виконано! 💪
    
    i Подальші кроки:
      - 😎😉 Запустіть команду "npm install" для встановлення пакетів залежностей.
      - ✔✔ Запустіть команду "npm start" для запуску сервера розробки.
      - ✨✨ Офіційний сайт проєкту: https://techno4.online
      - 📖📖 Документація фреймворку: https://techno4.online/techno4-framework2
      - 📖📖 Читайте README.md у файлах проєкту для отримання інструкцій.
      - 🚀🚀 GitHub репозиторій: https://github.com/CO-CF-TECHNO4/TECHNO4FRAMEWORK2
        
    
    ================================================================================
      ПІДСУМОК ГЕНЕРАЦІЇ ТА СТАТУС ПАКУНКІВ
    ================================================================================
    ✔ Успішно згенеровано проєкт з шаблоном Tabs (Перегляд з вкладками)
    ✔ Налаштовано цільову платформу Cordova Android (io.techno4.tabsandroid)
    ✔ Підключено плагіни: statusbar, keyboard, splashscreen
    ✔ Підключено пакети з npm: techno4@2.0.0, dom64@0.1.1, rollup-plugin-techno4@2.0.0
  • ================================================================================
      СТРУКТУРА ЗГЕНЕРОВАНОГО ПРОЄКТУ: cli-demos/ (Techno4 Tabs Cordova Android)
    ================================================================================
    
    cli-demos/
    ├── .vscode/
    │   └── settings.json
    ├── assets-src/
    │   ├── cordova-android-icon.png
    │   └── cordova-splash-screen.png
    ├── build/
    │   └── build-cordova.js
    ├── cordova/
    │   ├── platforms/
    │   │   └── android/
    │   │       ├── AndroidManifest.xml (generated by Cordova)
    │   │       ├── app/
    │   │       ├── cordova/
    │   │       └── platform_www/
    │   ├── plugins/
    │   │   ├── cordova-plugin-keyboard/
    │   │   │   ├── src/
    │   │   │   │   ├── android/
    │   │   │   │   │   └── Keyboard.java
    │   │   │   │   └── ios/
    │   │   │   │       ├── CDVKeyboard.h
    │   │   │   │       └── CDVKeyboard.m
    │   │   │   ├── www/
    │   │   │   │   └── keyboard.js
    │   │   │   ├── package.json
    │   │   │   ├── plugin.xml
    │   │   │   └── README.md
    │   │   ├── cordova-plugin-splashscreen/
    │   │   │   ├── src/
    │   │   │   │   ├── android/
    │   │   │   │   │   └── SplashScreen.java
    │   │   │   │   ├── browser/
    │   │   │   │   │   └── SplashScreenProxy.js
    │   │   │   │   └── windows/
    │   │   │   │       └── SplashScreenProxy.js
    │   │   │   ├── types/
    │   │   │   │   └── index.d.ts
    │   │   │   ├── www/
    │   │   │   │   └── splashscreen.js
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── package.json
    │   │   │   ├── plugin.xml
    │   │   │   └── README.md
    │   │   │   └── RELEASENOTES.md
    │   │   ├── cordova-plugin-statusbar/
    │   │   │   ├── src/
    │   │   │   │   ├── android/
    │   │   │   │   │   └── StatusBar.java
    │   │   │   │   ├── browser/
    │   │   │   │   │   └── StatusBarProxy.js
    │   │   │   │   └── ios/
    │   │   │   │       ├── CDVStatusBar.h
    │   │   │   │       └── CDVStatusBar.m
    │   │   │   ├── types/
    │   │   │   │   └── index.d.ts
    │   │   │   ├── www/
    │   │   │   │   └── statusbar.js
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── package.json
    │   │   │   ├── plugin.xml
    │   │   │   ├── README.md
    │   │   │   └── RELEASENOTES.md
    │   │   ├── android.json
    │   │   └── fetch.json
    │   ├── res/
    │   │   ├── icon/
    │   │   │   ├── android/
    │   │   │   │   ├── mipmap-hdpi/
    │   │   │   │   │   └── ic_launcher.png
    │   │   │   │   ├── mipmap-ldpi/
    │   │   │   │   │   └── ic_launcher.png
    │   │   │   │   ├── mipmap-mdpi/
    │   │   │   │   │   └── ic_launcher.png
    │   │   │   │   ├── mipmap-xhdpi/
    │   │   │   │   │   └── ic_launcher.png
    │   │   │   │   ├── mipmap-xxhdpi/
    │   │   │   │   │   └── ic_launcher.png
    │   │   │   │   ├── mipmap-xxxhdpi/
    │   │   │   │   │   └── ic_launcher.png
    │   │   │   │   └── playstore-icon.png
    │   │   │   ├── electron/
    │   │   │   │   ├── app.png
    │   │   │   │   └── installer.png
    │   │   │   ├── ios/
    │   │   │   │   ├── icon-20x20@1x.png
    │   │   │   │   ├── icon-20x20@2x.png
    │   │   │   │   ├── icon-20x20@3x.png
    │   │   │   │   ├── icon-29x29@1x.png
    │   │   │   │   ├── icon-29x29@2x.png
    │   │   │   │   ├── icon-29x29@3x.png
    │   │   │   │   ├── icon-40x40@1x.png
    │   │   │   │   ├── icon-40x40@2x.png
    │   │   │   │   ├── icon-40x40@3x.png
    │   │   │   │   ├── icon-50x50@1x.png
    │   │   │   │   ├── icon-50x50@2x.png
    │   │   │   │   ├── icon-512x512@1x.png
    │   │   │   │   ├── icon-512x512@2x.png
    │   │   │   │   ├── icon-57x57@1x.png
    │   │   │   │   ├── icon-57x57@2x.png
    │   │   │   │   ├── icon-60x60@1x.png
    │   │   │   │   ├── icon-60x60@2x.png
    │   │   │   │   ├── icon-60x60@3x.png
    │   │   │   │   ├── icon-72x72@1x.png
    │   │   │   │   ├── icon-72x72@2x.png
    │   │   │   │   ├── icon-76x76@1x.png
    │   │   │   │   ├── icon-76x76@2x.png
    │   │   │   │   ├── icon-76x76@3x.png
    │   │   │   │   └── icon-83.5x83.5@2x.png
    │   │   │   └── osx/
    │   │   │       ├── icon-1024x1024.png
    │   │   │       ├── icon-128x128.png
    │   │   │       ├── icon-16x16.png
    │   │   │       ├── icon-256x256.png
    │   │   │       ├── icon-32x32.png
    │   │   │       ├── icon-512x512.png
    │   │   │       └── icon-64x64.png
    │   │   └── screen/
    │   │       ├── android/
    │   │       │   ├── drawable-hdpi/
    │   │       │   │   └── screen.png
    │   │       │   ├── drawable-ldpi/
    │   │       │   │   └── screen.png
    │   │       │   ├── drawable-mdpi/
    │   │       │   │   └── screen.png
    │   │       │   ├── drawable-xhdpi/
    │   │       │   │   └── screen.png
    │   │       │   ├── drawable-xxhdpi/
    │   │       │   │   └── screen.png
    │   │       │   └── drawable-xxxhdpi/
    │   │       │       └── screen.png
    │   │       └── ios/
    │   │           └── Default@2x~universal~anyany.png
    │   ├── www/
    │   │   ├── css/
    │   │   │   └── index.css
    │   │   ├── img/
    │   │   │   └── logo.png
    │   │   ├── js/
    │   │   │   └── index.js
    │   │   └── index.html
    │   ├── .gitignore
    │   ├── config.xml
    │   ├── package-lock.json
    │   └── package.json
    ├── public/
    ├── src/
    │   ├── assets/
    │   ├── css/
    │   │   ├── app.css
    │   │   └── icons.css
    │   ├── fonts/
    │   ├── js/
    │   │   ├── app.js
    │   │   ├── cordova-app.js
    │   │   ├── routes.js
    │   │   └── store.js
    │   ├── pages/
    │   │   ├── 404.t4
    │   │   ├── about.t4
    │   │   ├── catalog.t4
    │   │   ├── dynamic-route.t4
    │   │   ├── form.t4
    │   │   ├── home.t4
    │   │   ├── product.t4
    │   │   ├── request-and-load.t4
    │   │   └── settings.t4
    │   ├── app.t4
    │   └── index.html
    ├── www/
    ├── .gitignore
    ├── package-lock.json
    ├── package.json
    ├── postcss.config.js
    ├── README.md
    ├── techno4.json
    └── vite.config.js
  • ================================================================================
      ВЕРИФІКАЦІЯ CORDOVA ANDROID ПІДСИСТЕМИ
    ================================================================================
    
    $ cd cordova
    $ cordova platform ls
    Installed platforms:
      android 15.1.0
    Available platforms:
      browser
      electron
    
    $ cordova plugin ls
    cordova-plugin-keyboard 1.3.0 "Keyboard"
    cordova-plugin-splashscreen 6.0.2 "Splashscreen"
    cordova-plugin-statusbar 4.0.0 "StatusBar"
    
    --------------------------------------------------------------------------------
      КОНФІГУРАЦІЯ cordova/config.xml
    --------------------------------------------------------------------------------
    <?xml version='1.0' encoding='utf-8'?>
    <widget id="io.techno4.tabsandroid" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
        <name>Techno4 Tabs Cordova Android</name>
        <description>
            A sample Apache Cordova application that responds to the deviceready event.
        </description>
        <author email="dev@cordova.apache.org" href="https://cordova.apache.org">
            Apache Cordova Team
        </author>
        <content src="/index.html" />
        <allow-intent href="http://*/*" />
        <allow-intent href="https://*/*" />
    
        <allow-navigation href="/*" />
    
        <platform name="android">
          <preference name="StatusBarOverlaysWebView" value="false" />
          <preference name="android-minSdkVersion" value="22" />
          <preference name="SplashMaintainAspectRatio" value="true" />
          <splash density="land-hdpi" src="/res/screen/android/drawable-hdpi/screen.png" />
          <splash density="land-mdpi" src="/res/screen/android/drawable-mdpi/screen.png" />
          <splash density="land-xhdpi" src="/res/screen/android/drawable-xhdpi/screen.png" />
          <splash density="land-xxhdpi" src="/res/screen/android/drawable-xxhdpi/screen.png" />
          <splash density="land-xxxhdpi" src="/res/screen/android/drawable-xxxhdpi/screen.png" />
          <splash density="port-hdpi" src="/res/screen/android/drawable-hdpi/screen.png" />
          <splash density="port-mdpi" src="/res/screen/android/drawable-mdpi/screen.png" />
          <splash density="port-xhdpi" src="/res/screen/android/drawable-xhdpi/screen.png" />
          <splash density="port-xxhdpi" src="/res/screen/android/drawable-xxhdpi/screen.png" />
          <splash density="port-xxxhdpi" src="/res/screen/android/drawable-xxxhdpi/screen.png" />
          <icon density="ldpi" src="/res/icon/android/mipmap-ldpi/ic_launcher.png" />
          <icon density="mdpi" src="/res/icon/android/mipmap-mdpi/ic_launcher.png" />
          <icon density="hdpi" src="/res/icon/android/mipmap-hdpi/ic_launcher.png" />
          <icon density="xhdpi" src="/res/icon/android/mipmap-xhdpi/ic_launcher.png" />
          <icon density="xxhdpi" src="/res/icon/android/mipmap-xxhdpi/ic_launcher.png" />
          <icon density="xxxhdpi" src="/res/icon/android/mipmap-xxxhdpi/ic_launcher.png" />
        </platform>
    
        <preference name="DisallowOverscroll" value="true" />
        <preference name="BackupWebStorage" value="local" />
        <preference name="AutoHideSplashScreen" value="false" />
        <preference name="ShowSplashScreenSpinner" value="false" />
        <preference name="SplashScreenDelay" value="0" />
        <preference name="Suppresses3DTouchGesture" value="true" />
        <preference name="Allow3DTouchLinkPreview" value="false" />
        <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
        <preference name="AllowInlineMediaPlayback" value="true" />
    </widget>
  • ================================================================================
      TECHNO4 FRAMEWORK2 — ПЕРЕВІРКА ЗБІРКИ ПРОЄКТУ (BUILD VERIFICATION)
    ================================================================================
    
    $ cd cli-demos
    $ npm run build
    
    > techno4-tabs-cordova-android@1.0.0 build
    > cross-env NODE_ENV=production vite build
    
    vite v8.3.0 building client environment for production...
    transforming...
    ✓ 26 modules transformed.
    rendering chunks...
    computing gzip size...
    www/index.html                              1.23 kB │ gzip:   0.69 kB
    www/assets/material-icons-kAwBdRge.woff2  128.35 kB
    www/assets/material-icons-Dr0goTwe.woff   164.91 kB
    www/assets/index-DRgZnHvN.css             520.17 kB │ gzip:  75.00 kB
    www/assets/index-1z1g1sRE.js              840.63 kB │ gzip: 220.50 kB
    
    ✓ built in 4.84s
    
    ================================================================================
      ВЕРИФІКАЦІЯ ВИХІДНИХ ФАЙЛІВ У www/
    ================================================================================
    - www/index.html                     [OK] Головна HTML сторінка застосунку
    - www/assets/index-DRgZnHvN.css      [OK] CSS-бандл (Techno4 Core + Tabs theme)
    - www/assets/index-1z1g1sRE.js       [OK] JS-бандл (Techno4 Core + VDOM + Router)
    - www/assets/material-icons-*.woff2  [OK] Вбудовані веб-шрифти Material Icons
    - cordova/platforms/android/         [OK] Готовий Cordova Android проєкт з плагінами

4. Демонстраційний комплекс застосунку (Live App Showcase)

Ознайомтеся з реальними робочими екранами екосистеми TECHNO4 FRAMEWORK 2.0 (Boonker Studio та Threads Engine). Замість ненадійного й важкого вбудовування через iframe, нижче інтегровано ергономічну адаптивну вітрину з підтримкою повноекранного 4K збільшення (UIkit Lightbox) та швидким перемиканням модулів:
Techno4 Boonker Studio — Живий інтерфейс (Boonker v2.0.4 • Material 3 / iOS • ESM)
  • Hardware & Sound Studio (Web Audio, MIDI, Serial)

    Студія тестування апаратних API у мобільних і вебзастосунках. Включає синтезатор на базі Web Audio API з поліфонічною клавіатурою (C4–C5), осцилограф реального часу через <canvas> та AnalyserNode, перемикання форм хвиль (sine, square, sawtooth, triangle), перевірку доступу Web MIDI (портів та повідомлень) і термінал Web Serial.

    Web Audio API Canvas Oscilloscope Web MIDI Web Serial
  • Threads Studio & Каталог візуальних компонентів

    Інтеграція візуального редактора Threads Studio та екосистеми Total.js. Забезпечує миттєвий доступ до модального вікна вибору серед більш ніж 140 UI-компонентів, налаштування серверних обчислювальних ланцюжків та синхронізацію потоків даних між бекендом і клієнтським застосунком.

    140+ UI Blocks Threads Engine Total.js Platform
  • Динамічні колірні теми (Material Design 3 & iOS)

    Повна адаптивність візуального стилю. Підтримує 12 офіційних колірних тем фреймворку, перемикання між світлим і глибоким темним режимом (Dark Mode), а також фірмовий неоновий бірюзовий акцент #22ffd8. Зміна кольору здійснюється динамічно через змінні CSS без втрати стану застосунку.

    Neon #22ffd8 Dark Mode Material 3 iOS Theme
Демо-середовище активне: Boonker App v2.0.4
💡 Клацніть на зображення для повноекранного 4K збільшення

5. Ручне підключення бібліотеки у готовий проєкт

Якщо ви вже маєте налаштований вебпроєкт на базі Vite, Rollup або Webpack, встановіть ядро інтерфейсу та рушій Dom64 безпосередньо з npm:
npm install techno4 dom64

6. Ініціалізація та налаштування точки входу

Підключіть стилі теми, набір піктограм t4-icons та ініціалізуйте ядро у вашому головному файлі (наприклад, src/js/app.js):
// 1. Імпорт стилів теми Techno4 та набору іконок
import 'techno4/css/bundle';
import 'techno4/icons/css';

// 2. Імпорт ядра фреймворку
import Techno4 from 'techno4/bundle';

// 3. Ініціалізація застосунку
const app = new Techno4({
  el: '#app',
  name: 'Мій Techno4 Застосунок',
  theme: 'auto', // або 'ios', 'md'
  store: store,
  routes: routes,
});

7. Каталог компонентів та швидка перелінковка

Скористайтеся бічним меню праворуч для швидкого переходу між розділами документації або відкрийте один із ключових компонентів: