مشاريع مفتوحة المصدر للتطبيقات الصغيرة

كيلو بون

ينفّذ مشروع kbone (المصدر المفتوح على GitHub) محوِّلاً يحاكي بيئة متصفّح في طبقة التكيف، بحيث يمكن تشغيل الرمز المكتوب للإنترنت بدون إجراء أي تغييرات في تطبيق صغير. تتوفر العديد من نماذج البدء (من بينها Vue وReact وPreact) التي تجعل تجربة الإعداد لمطوّري البرامج على الويب ضِمن أُطر العمل هذه.

يمكن إنشاء مشروع جديد باستخدام أداة kbone-cli. يسأل المعالج عن إطار العمل الذي يبدأ المشروع به. يُظهر مقتطف الرمز أدناه العرض التوضيحي لـ Preact. في مقتطف الرمز أدناه، ينشئ الأمر mp التطبيق المصغَّر، وينشئ الأمر web تطبيق الويب، وينشئ build تطبيق الويب للإنتاج.

npx kbone-cli init my-app
cd my-app
npm run mp
npm run web
npm run build

يُظهر مقتطف الرمز أدناه مكوّنًا عكسيًا بسيطًا بعد ذلك يتم عرضه بشكل غير شكلٍ في تطبيق مصغّر وتطبيق ويب. وتكون النفقات العامة للتطبيق المصغَّر كبيرة، بناءً على بنية DOM حصرًا.

import { h, Component } from "preact";
import "./index.css";

class Counter extends Component {
  state = { count: 1 };

  sub = () => {
    this.setState((prevState) => {
      return { count: --prevState.count };
    });
  };

  add = () => {
    this.setState((prevState) => {
      return { count: ++prevState.count };
    });
  };

  clickHandle = () => {
    if ("undefined" != typeof wx && wx.getSystemInfoSync) {
      wx.navigateTo({
        url: "../log/index?id=1",
      });
    } else {
      location.href = "log.html";
    }
  };

  render({}, { count }) {
    return (
      <div>
        <button onClick={this.sub}>-</button>
        <span>{count}</span>
        <button onClick={this.add}>+</button>
        <div onClick={this.clickHandle}>跳转</div>
      </div>
    );
  }
}

export default Counter;
تم فتح التطبيق التجريبي لنموذج Preact kbone في &quot;أدوات مطوري البرامج في WeChat&quot;. يؤدي فحص بنية DOM إلى إظهار أعباء كبيرة مقارنةً بتطبيق الويب.
تم فتح التطبيق التجريبي لنموذج Preact kbone في "أدوات مطوري البرامج في WeChat". لاحظ بنية DOM المعقّدة وكيف أنّ زرَّي الجمع والطرح ليستا في الواقع عناصر <button>.
تم فتح التطبيق التجريبي لنموذج Preact kbone في متصفّح الويب. يعرض فحص بنية DOM الترميز المتوقع استنادًا إلى رمز مكوّن Preact.
تم فتح التطبيق التجريبي لنموذج kbone من Preact في متصفّح الويب. لاحظ بنية DOM.

kbone-ui

مشروع kbone-ui (المصدر المفتوح على GitHub) هو إطار عمل لواجهة المستخدم يسهّل تطوير التطبيقات المصغَّرة وتطوير Vue.js باستخدام kbone. تحاكي مكوّنات kbone-ui شكل وأسلوب مكوّنات التطبيق المصغّر المدمج في WeChat (اطّلِع أيضًا على المكوّنات أعلاه). يتيح لك العرض التوضيحي الذي يتم تشغيله مباشرةً في المتصفّح استكشاف المكوّنات المتاحة.

عرض توضيحي لإطار عمل kbone-ui للتعرَّف على المكونات ذات الصلة بالنموذج، مثل أزرار الاختيار ومفاتيح التبديل والإدخالات والتصنيفات.
العرض التوضيحي لـ kbone-ui لواجهة المستخدم يعرض المكونات ذات الصلة بالنموذج.

WeUI

WeUI هي مجموعة من مكتبات الأنماط الأساسية المتوافقة مع التجربة المرئية التلقائية في WeChat. صمّم فريق التصميم الرسمي لتطبيق WeChat تصاميم مخصّصة لصفحات الويب الداخلية في WeChat وتطبيقات WeChat المصغّرة التي تهدف إلى إضفاء مزيد من الانسجام على تصور المستخدمين حول استخدام التطبيق. ويشمل مكوّنات مثل button وcell وdialog وprogress وtoast وarticle وactionsheet وicon. تتوفّر إصدارات مختلفة من WeUI، مثل weui-wxss لتطبيقات WeChat mini المصمّمة باستخدام WXSS (راجِع النمط أعلاه) وweui.js لتطبيقات الويب وreact-weui لمكوّنات WeChat React.

عرض توضيحي لإطار عمل WeUI يعرض مكوّنات ذات صلة بالنموذج، وهي المبدلات المختلفة.
يعرض تطبيق WeUI التجريبي مفاتيح التحكّم.

أومي

Omi هو إطار عمل مصمم للواجهة الأمامية يعمل على عدّة إطارات عمل (مصدر مفتوح على GitHub. فهو يدمج مكوّنات الويب أو لغة JavaScript أو نموذج DOM الافتراضي أو النمط الوظيفي أو المراقب أو الوكيل في إطار عمل واحد ذي حجم صغير وأداء عالٍ. تهدف إلى السماح للمطورين بكتابة المكونات مرة واحدة واستخدامها في كل مكان، مثل Omi أو React أو Preact أو Vue.js أو Angular. وتُعد كتابة مكونات Omi سهلة للغاية وخالية من جميع النصوص النموذجية تقريبًا.

import { render, WeElement, define } from "omi";

define("my-counter", class extends WeElement {
  data = {
    count: 1,
  };

  static css = `
    span{
        color: red;
    }`;

  sub = () => {
    this.data.count--;
    this.update();
  };

  add = () => {
    this.data.count++;
    this.update();
  };

  render() {
    return (
      <div>
        <button onClick={this.sub}>-</button>
        <span>{this.data.count}</span>
        <button onClick={this.add}>+</button>
      </div>
    );
  }
});

render(<my-counter />, "body");

أوميو

Omiu هي مكتبة لمكوّنات واجهة المستخدم من إطارات عمل متعددة (مصدر مفتوح على GitHub) تم تطويرها استنادًا إلى Omi، والتي تنتج عناصر مخصّصة لمكوّنات الويب العادية.

عرض توضيحي لإطار عمل Omiu يعرض مكوّنات ذات صلة بالنموذج، مثل مفاتيح التحكّم.
يعرض تطبيق Omiu التجريبي مفاتيح التحكّم.

WePY

WePY هو إطار عمل يسمح للتطبيقات الصغيرة بدعم التطوير المكوِّن. من خلال التجميع المسبق، يمكن للمطورين اختيار أسلوب التطوير المفضل لديهم لتطوير التطبيقات الصغيرة. إن التحسين المفصل لإطار العمل وإدخال الوعود والوظائف غير المتزامنة يجعل تطوير مشاريع التطبيقات الصغيرة أسهل وأكثر كفاءة. وفي الوقت نفسه، يعد WePY أيضًا إطار عمل متنامٍ، وقد استوعب إلى حد كبير بعض أدوات الواجهة الأمامية المحسّنة ومفاهيم وأفكار تصميم إطار العمل، والتي تأتي في الغالب من Vue.js.

<style lang="less">
  @color: #4d926f;
  .num {
    color: @color;
  }
</style>

<template>
  <div class="container">
    <div class="num" @tap="num++">{{num}}</div>
    <custom-component></custom-component>
    <vendor-component></vendor-component>
    <div>{{text}}</div>
    <input v-model="text" />
  </div>
</template>

<config>
  { usingComponents: { customComponent: '@/components/customComponent', vendorComponent:
  'module:vendorComponent' } }
</config>

<script>
  import wepy from "@wepy/core";

  wepy.page({
    data: {
      num: 0,
      text: "Hello World",
    },
  });
</script>
صفحة مستندات &quot;البدء&quot; في WePY تعرض الخطوات الأولى للبدء.
مستندات "البدء" في تطبيق WePY:

vConsole

يوفر مشروع vConsole أداة مطورة للواجهة الأمامية خفيفة وقابلة للتمديد لصفحات الويب على الأجهزة الجوّالة. فهي تقدم برنامج تصحيح أخطاء شبيهًا بأدوات مطوري البرامج يمكن إدراجه مباشرةً في تطبيقات الويب والتطبيقات الصغيرة. يعرض العرض التوضيحي الفرص المتاحة. يتضمن vConsole علامات تبويب للسجلات والنظام والشبكة والعناصر والتخزين.

تطبيق vConsole التجريبي. يفتح vConsole في الجزء السفلي ويتضمّن علامات تبويب للسجلّات والنظام والشبكة والعناصر ومساحة التخزين.
يعرض تطبيق vConsole التجريبي أداة استكشاف العناصر.

ويب

مشروع weweb (مفتوح المصدر على GitHub) هو إطار عمل الواجهة الأمامية الأساسي لإطار عمل تطبيق Hera المصغّر الذي يدّعي أنه متوافق مع بنية تطبيقات WeChat الصغيرة، ما يتيح لك كتابة تطبيقات الويب بطريقة التطبيقات المصغّرة. توضّح المستندات أنّه إذا كان لديك تطبيق مصغّر، يمكنك تشغيله في المتصفح بفضل weweb. من خلال تجاربي، لم ينجح هذا الأمر بشكلٍ موثوق مع التطبيقات الصغيرة الحالية، ويرجع ذلك على الأرجح إلى أنّ المشروع لم يشهد تحديثات مؤخرًا، ما أدى إلى تفويت برامج التحويل البرمجي فيه للتغييرات التي تم إجراؤها على منصة WeChat.

وثائق لإطار عمل تطبيق Hera المصغّر الذي يسرد واجهات برمجة تطبيقات WeChat التي يتوافق معها، مثل `wx.request` و`wx.uploadFile` وما إلى ذلك
مستندات إطار عمل تطبيق Hera Mini الذي يعرض قائمة بواجهات برمجة تطبيقات WeChat المتوافقة.
تم تجميع الإصدار التجريبي من تطبيق Weweb مع webweb لكي يتم تشغيله في المتصفح الذي يعرض عناصر النموذج.
تطبيق Weweb المصغّر الذي تم جمعه مع webweb لتشغيله في المتصفح.

شكر وتقدير

تمت مراجعة هذه المقالة من قِبل جو ميدلي وكايس باسكس وميلييكا ميهاجلجا وآلان كينت وكيث جو.