NativeScript - สถาปัตยกรรม
NativeScript เป็นเฟรมเวิร์กขั้นสูงในการสร้างแอปพลิเคชันมือถือ มันซ่อนความซับซ้อนของการสร้างแอปพลิเคชันมือถือและเปิดเผย API ที่ค่อนข้างเรียบง่ายเพื่อสร้างแอปพลิเคชันมือถือที่ได้รับการปรับให้เหมาะสมและทันสมัย NativeScript ช่วยให้แม้แต่นักพัฒนาระดับเริ่มต้นสามารถสร้างแอปพลิเคชันมือถือทั้งใน Android และ iOS ได้อย่างง่ายดาย
ให้เราเข้าใจสถาปัตยกรรมของกรอบงาน NativeScript ในบทนี้
บทนำ
แนวคิดหลักของกรอบงาน NativeScript คือการช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันมือถือสไตล์ไฮบริด แอปพลิเคชันไฮบริดใช้ API เบราว์เซอร์เฉพาะแพลตฟอร์มเพื่อโฮสต์เว็บแอปพลิเคชันภายในแอปพลิเคชันมือถือปกติและให้ระบบเข้าถึงแอปพลิเคชันผ่าน JavaScript API
NativeScript ลงทุนอย่างมากในไฟล์ JavaScript languageเพื่อมอบกรอบการทำงานที่มีประสิทธิภาพสำหรับนักพัฒนา ตั้งแต่JavaScriptเป็นมาตรฐานโดยพฤตินัยสำหรับการเขียนโปรแกรมฝั่งไคลเอ็นต์ (การพัฒนาเว็บ) และนักพัฒนาทุกคนตระหนักดีถึงภาษา JavaScript ซึ่งจะช่วยให้นักพัฒนาเข้าสู่กรอบงาน NativeScript ได้อย่างง่ายดาย ในระดับต่ำ NativeScript จะเปิดเผย API ดั้งเดิมผ่านชุดปลั๊กอิน JavaScript ที่เรียกว่าNative plugins.
NativeScript สร้างขึ้นบนรากฐานของปลั๊กอินพื้นเมืองและให้ระดับสูงจำนวนมากและง่ายต่อการใช้งานจาวาสคริปต์โมดูล แต่ละโมดูลทำหน้าที่เฉพาะเช่นการเข้าถึงกล้องการออกแบบหน้าจอ ฯลฯ โมดูลทั้งหมดเหล่านี้สามารถรวมกันได้หลายวิธีเพื่อออกแบบแอปพลิเคชันมือถือที่ซับซ้อน
แผนภาพด้านล่างแสดงภาพรวมระดับสูงของกรอบงาน NativeScript -
NativeScript Application - กรอบงาน NativeScript ช่วยให้นักพัฒนาสามารถใช้แอปพลิเคชันสไตล์ Angular หรือแอปพลิเคชัน Vue Style
JavaScript Modules - กรอบงาน NativeScript มีชุดโมดูล JavaScript ที่หลากหลายซึ่งจัดหมวดหมู่อย่างชัดเจนเป็นโมดูล UI, โมดูลแอปพลิเคชัน, โมดูลหลักและอื่น ๆ โมดูลทั้งหมดสามารถเข้าถึงได้โดยแอปพลิเคชันตลอดเวลาเพื่อเขียนแอปพลิเคชันที่ซับซ้อนในระดับใดก็ได้
JavaScript plugins- กรอบงาน NativeScript มีปลั๊กอิน JavaScript จำนวนมากเพื่อเข้าถึงฟังก์ชันที่เกี่ยวข้องกับแพลตฟอร์ม โมดูลใช้ปลั๊กอิน JavaScript เพื่อจัดเตรียมฟังก์ชันการทำงานเฉพาะแพลตฟอร์ม
Native plugins- ปลั๊กอินเนทีฟถูกเขียนด้วยภาษาเฉพาะของแพลตฟอร์มเพื่อห่อหุ้มการทำงานของระบบซึ่งจะใช้ต่อไปโดยปลั๊กอิน JavaScript
Platform API - API จัดทำโดยผู้ขายแพลตฟอร์ม
ในระยะสั้นแอปพลิเคชัน NativeScript ถูกเขียนและจัดระเบียบโดยใช้โมดูล โมดูลถูกเขียนด้วย JavaScript บริสุทธิ์และโมดูลจะเข้าถึงฟังก์ชันการทำงานที่เกี่ยวข้องกับแพลตฟอร์ม (เมื่อใดก็ตามที่จำเป็น) ผ่านปลั๊กอินและสุดท้ายปลั๊กอินจะเชื่อมโยงแพลตฟอร์ม API และ JavaScript API
เวิร์กโฟลว์ของแอปพลิเคชัน NativeScript
ดังที่เราได้เรียนรู้ไปก่อนหน้านี้แอปพลิเคชัน NativeScript ประกอบด้วยโมดูล แต่ละโมดูลเปิดใช้งานคุณลักษณะเฉพาะ โมดูลที่สำคัญสองประเภทในการบูตแอปพลิเคชัน NativeScript มีดังนี้ -
โมดูลรูท
โมดูลหน้า
โมดูลรูทและเพจสามารถแบ่งประเภทเป็นโมดูลแอ็พพลิเคชัน โมดูลแอ็พพลิเคชันเป็นจุดเริ่มต้นของแอ็พพลิเคชัน NativeScript มันบูตหน้าเว็บช่วยให้นักพัฒนาสร้างอินเทอร์เฟซผู้ใช้ของเพจและในที่สุดก็อนุญาตให้เรียกใช้ตรรกะทางธุรกิจของเพจ โมดูลแอปพลิเคชันประกอบด้วยสามรายการด้านล่าง -
การออกแบบส่วนติดต่อผู้ใช้ที่เข้ารหัสใน XML (เช่น page.xml / page.component.html)
สไตล์ที่เข้ารหัสใน CSS (เช่น page.css / page.component.css)
ตรรกะทางธุรกิจจริงของโมดูลใน JavaScript (เช่น page.js / page.component.ts)
NativeScript มีส่วนประกอบ UI จำนวนมาก (ภายใต้โมดูล UI) เพื่อออกแบบหน้าแอปพลิเคชัน ส่วนประกอบ UI สามารถแสดงในรูปแบบ XML หรือรูปแบบ HTML ในแอปพลิเคชันที่ใช้ Angular โมดูลการประยุกต์ใช้ชิ้นส่วนในการออกแบบ UI หน้าและการจัดเก็บการออกแบบในรูปแบบ XML ที่แยกจากกันpage.xml / page.component.html การออกแบบสามารถกำหนดสไตล์โดยใช้ CSS มาตรฐาน
โมดูลแอปพลิเคชันจัดเก็บรูปแบบของการออกแบบใน CSS แยกต่างหากpage.css / page.component.css ฟังก์ชันการทำงานของเพจสามารถทำได้โดยใช้ JavaScript / TypeScript ซึ่งสามารถเข้าถึงการออกแบบและคุณสมบัติของแพลตฟอร์มได้อย่างสมบูรณ์ โมดูลแอปพลิเคชันใช้ไฟล์แยก page.js / page.component.ts เพื่อเขียนโค้ดการทำงานจริงของเพจ
โมดูลรูท
NativeScript จัดการอินเทอร์เฟซผู้ใช้และการโต้ตอบกับผู้ใช้ผ่านคอนเทนเนอร์ UI คอนเทนเนอร์ UI ทุกตัวควรมีโมดูลรูทและคอนเทนเนอร์ UI จะจัดการ UI แอปพลิเคชัน NativeScript มีคอนเทนเนอร์ UI สองประเภท -
Application Container- ทุกแอปพลิเคชัน NativeScript ควรมีที่เก็บแอปพลิเคชันเดียวและจะตั้งค่าโดยใช้วิธีการ application.run () เริ่มต้น UI ของแอปพลิเคชัน
Model View Container- NativeScript จัดการกล่องโต้ตอบ Modal โดยใช้ model view container แอปพลิเคชัน NativeScript สามารถมีคอนเทนเนอร์มุมมองแบบจำลองจำนวนเท่าใดก็ได้
ทุกโมดูลรูทควรมีส่วนประกอบ UI เพียงรายการเดียวเป็นเนื้อหา ในทางกลับกันคอมโพเนนต์ UI สามารถมีส่วนประกอบ UI อื่น ๆ เป็นลูก ๆ ได้ NativeScript มีองค์ประกอบ UI มากมายเช่น TabView, ScrollView และอื่น ๆ พร้อมคุณสมบัติลูก เราสามารถใช้สิ่งเหล่านี้เป็นองค์ประกอบ UI รูท ข้อยกเว้นประการหนึ่งคือFrameซึ่งไม่มีตัวเลือกลูก แต่สามารถใช้เป็นองค์ประกอบหลักได้ Frame มีตัวเลือกในการโหลด Page Modules และตัวเลือกเพื่อนำทางไปยังโมดูลเพจอื่น ๆด้วย
โมดูลหน้า
ใน NativeScript แต่ละและทุกหน้าเป็นพื้นหน้าโมดูล โมดูลเพจได้รับการออกแบบโดยใช้ชุดส่วนประกอบ UI ที่มีให้โดย NativeScript โมดูลของเพจถูกโหลดเข้าสู่แอปพลิเคชันผ่านคอมโพเนนต์Frame (โดยใช้แอ็ตทริบิวต์ defaultPage หรือใช้วิธีการnav ()) ซึ่งจะโหลดโดยใช้Root Modulesซึ่งจะโหลดอีกครั้งโดยใช้ application.run () ในขณะที่แอปพลิเคชันเริ่มทำงาน
ขั้นตอนการทำงานของแอปพลิเคชันสามารถแสดงได้ดังแผนภาพด้านล่าง -
แผนภาพด้านบนอธิบายโดยละเอียดตามขั้นตอนต่อไปนี้ -
NativeScript Application เริ่มต้นและเรียกใช้เมธอด application.run ()
application.run () โหลดโมดูลราก
Root Moduleได้รับการออกแบบโดยใช้ส่วนประกอบ UI ใด ๆ ตามที่ระบุไว้ด้านล่าง -
Frame
TabView
SideDrawer
มุมมองเค้าโครงใด ๆ
ส่วนประกอบเฟรมโหลดเพจที่ระบุ (โมดูลเพจ) และได้รับการแสดงผล UI ส่วนประกอบอื่น ๆ จะแสดงผลตามที่ระบุไว้ในรากโมดูล ส่วนประกอบ UI อื่น ๆ ยังมีตัวเลือกในการโหลดPage Modulesเป็นเนื้อหาหลัก
เวิร์กโฟลว์ของแอปพลิเคชัน NativeScript ที่ใช้ Angular
ดังที่เราได้เรียนรู้ไปก่อนหน้านี้กรอบงาน NativeScript มีวิธีการที่หลากหลายเพื่อรองรับนักพัฒนาประเภทต่างๆ วิธีการที่รองรับโดย NativeScript มีดังต่อไปนี้ -
NativeScript Core - แนวคิดพื้นฐานหรือหลักของ NativeScript Framework
Angular + NativeScript - วิธีการเชิงมุม
Vuejs + NativeScript - วิธีการตาม Vue.js
ให้เราเรียนรู้ว่า Angular framework รวมอยู่ในกรอบงาน NativeScript อย่างไร
ขั้นตอนที่ 1
NativeScript จัดเตรียมอ็อบเจ็กต์ (platformNativeScriptDynamic) เพื่อบูตแอปพลิเคชัน Angular platformNativeScriptDynamic มีเมธอด bootstrapModule ซึ่งใช้เพื่อเริ่มต้นแอปพลิเคชัน
ไวยากรณ์ในการบูตแอปพลิเคชันโดยใช้ Angular framework มีดังนี้ -
import { platformNativeScriptDynamic } from "nativescript-angular/platform";
import { AppModule } from "./app/app.module";
platformNativeScriptDynamic().bootstrapModule(AppModule);
ที่นี่
AppModule คือโมดูลรูทของเรา
ขั้นตอนที่ 2
การใช้งานอย่างง่าย (ด้านล่างรหัสที่ระบุ) ของโมดูลแอป
import { NgModule } from "@angular/core";
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
import { AppRoutingModule } from "./app-routing.module";
import { AppComponent } from "./app.component";
@NgModule(
{
bootstrap: [
AppComponent
], imports: [
NativeScriptModule,
AppRoutingModule
], declarations: [
AppComponent
]
}
) export class AppModule { }
ที่นี่
AppModuleเริ่มแอปพลิเคชันโดยการโหลดส่วนประกอบ AppComponent ส่วนประกอบเชิงมุมคล้ายกับเพจและใช้สำหรับตรรกะการออกแบบและการเขียนโปรแกรม
การใช้งาน AppComponent (app.component.ts) อย่างง่ายและตรรกะการนำเสนอ (app.component.css) มีดังต่อไปนี้ -
app.component.ts
import { Component } from "@angular/core";
@Component(
{
selector: "ns-app",
templateUrl: "app.component.html"
}
)
export class AppComponent { }
ที่นี่
templateUrlหมายถึงการออกแบบส่วนประกอบ
app.component.html
<page-router-outlet></page-router-outlet>
ที่นี่
page-router-outlet เป็นสถานที่ที่แนบแอปพลิเคชัน Angular
โดยสรุป Angular framework ประกอบด้วยโมดูลที่คล้ายกับ NativeScript framework ที่มีความแตกต่างเล็กน้อย แต่ละโมดูลใน Angular จะมีส่วนประกอบ Angular และไฟล์ติดตั้งเราเตอร์ (page-Routing.mocdule.ts) เราเตอร์ถูกตั้งค่าต่อโมดูลและดูแลการนำทาง ส่วนประกอบเชิงมุมเป็นแอนะล็อกกับเพจในแกน NativeSctipt
แต่ละองค์ประกอบจะมีการออกแบบ UI (page.component.html) สไตล์ชีต (page.component.css) และไฟล์โค้ด JavaScript / TypeScript (page.component.ts)