Memulai

Langkah awal menggunakan framework

Intro

Konsep Ina-Digital Platform

Konsep dari Ina Digital adalah SuperApp, dimana terdapat Main-App dan Mini-App dengan metode pengembangan / integrasi menggunakan fitur-fitur tersedia di Platform Ina Digital.

Setiap Mini-App Developer (K/L/D) akan mendapatkan akses akun ke Platform Ina-Digital untuk dapat membuat baru atau mengintegrasikan layanan yang sudah ada ke Main-App (Portal Web & Portal Mobile).

Ekosistem Ina-Digital dapat digunakan oleh developer (K/L/D) untuk membuat layanan ke Portal Main-App, sehingga hanya 1 Aplikasi yang muncul ke publik namun memiliki banyak layanan-layanan yang di kembangkan sendiri oleh Developer (K/L/D) sehingga di harapkan tidak bermunculan lagi aplikasi-aplikasi pelayanan publik pemerintahan ke masyarakat.

Secara tampilan Main-App dan Mini-App akan nampak seperti berikut :

Fitur Utama

Platform INA Digital memiliki beberapa jenis alat pengembangan yang dapat memudahkan Anda untuk mengintegrasikan aplikasi baru atau integrasi aplikasi yang saat ini sudah ada dengan cara:

  • Builder (Frontend) Fitur ini digunakan untuk membuat layanan (Native) di Mobile App dan Web App Portal Nasional serta laman dashboard untuk mengelola layanan dari sisi backoffice menggunakan fitur drag & drop komponen yang terstandarisasi.

  • Package (Frontend) Fitur package/plugin ini digunakan untuk membuat layanan (Native) di Mobile App dan Web App Portal Nasional dengan code template, pada fitur ini anda akan membuat sebuah plugin yang akan di gabungkan ke source code mainapp untuk di compile secara bersamaan.

  • Microsite (Frontend) Fitur ini digunakan untuk membuat layanan (Webview) di Mobile App dan Web App Portal Nasional dengan code template, UI Kit Komponen dan SDK Library yang tersedia sebagai standarisasi layanan.

  • Microservice (Backend) Fitur ini dapat digunakan untuk membuat backend service di framework dengan code template yang tersedia, fitur ini dapat di manfaatkan jika belum memiliki infra atau ingin memanfaatkan stabilitas backend service yang berjalan di cluster server framework.

  • Storage (Backend) Fitur ini dapat digunakan untuk menyimpan file dokumen di framework, fitur ini dapat di manfaatkan jika belum memiliki infra atau ingin memanfaatkan stabilitas storage server yang berjalan di cluster server framework.

  • Database (Backend) Fitur ini dapat digunakan untuk membuat database di server untuk kebutuhan menyimpan data di framework.

  • API Management Fitur ini dapat digunakan untuk berbagi data via API melalui framework.


Pemilihan Frontend Layanan

Berikut adalah saran pemilihan jenis frontend, beserta dengan kekurangan dan kelebihan nya, anda dapat menggunakan 2 jenis frontend berbeda untuk Main-App portal versi Mobile dan versi Web.

Builder

Cocok untuk layanan dengan UI/UX sederhana dan Berbasis formulir.

Kelebihan :

  • Performa baik (Native) kecuali widget webview.

  • Dapat langsung membuat layanan dengan drag & drop widget

  • Frontend langsung menjadi 2 versi: Mobile-App dan Web-App

  • Tidak perlu update aplikasi Mainapp jika ada perubahan

Kekurangan :

  • Widget terbatas

  • UI/UX terbatas atau tidak dapat di sesuaikan sesuai kebutuhan

  • Tidak dapat menginstall external dependency

  • Biasanya digunakan untuk layanan yg berbasis formulir

Package

Cocok untuk layanan dengan UI/UX kompleks dan performa baik.

Kelebihan :

  • Layanan dapat dibuat dengan full code native (Base Plugin)

  • UI/UX dapat di sesuaikan sesuai kebutuhan

  • Performa baik (Native)

  • Dapat menginstall external dependency

Kekurangan :

  • Perlu update aplikasi jika ada perubahan.

  • Package Frontend MobileApp dan WebApp berbeda, sehingga developer harus membuat 2 kali.

Microsite

Cocok untuk layanan dengan UI/UX kompleks.

Kelebihan :

  • Layanan dapat dibuat dengan full code (web base)

  • Tidak perlu update aplikasi jika ada perubahan

  • UI/UX dapat di sesuaikan sesuai kebutuhan

  • Frontend langsung menjadi 2 versi: Mobile-App dan Web-App

  • Dapat menginstall external dependency

Kekurangan :

  • Performa kurang baik (Webview)

Bagaimana jika saya sudah mempunyai webview sendiri ?

Jika anda sudah mempunyai webview sendiri yang berjalan di server milik anda dan anda tidak menggunakan fitur microsite yang ada di dalam platform, anda dapat langsung meng-embed layanan anda di fitur widget webview yang tersedia di fitur Builder Frontend

Builder

Maksud dari builder adalah pembangunan layanan menggunakan fitur drag & drop widget yang akan langsung di konversi menjadi frontend mobile & web di portal depan serta dapat langsung di integrasikan dengan sistem yang saat ini sudah ada.

Builder mempunyai 3 fitur utama yaitu:

Jika diperhatikan komponen penting yang terdapat pada builder adalah Form Builder, jika di gambarkan ketika anda membuat Formulir melalui Builder, anda sedang menyusun database beserta dengan field, data type, validasi dan beberapa komponen pendukung lainnya seperti "Pengiriman" dan "Pembayaran" melalui platform (no code).

Setiap data yang di submit melalui formulir akan di simpan ke database yg secara otomatis ter-generate, dan data di dalam database tersebut dapat di akses melalui API yang juga secara otomatis ter-generate melalui platform.

Selain consume data melalui API, anda juga dapat menggunakan fitur Backoffice builder untuk memanage data tersebut langsung di dalam Platform.

Frontend Builder

Merupakan fitur untuk membuat frontend portal dari layanan yang di buat menggunakan fitur drag & drop widget yang tersedia.

Backoffice Builder

Merupakan fitur untuk membuat backoffice / halaman admin menggunakan fitur drag & drop widget yang tersedia.

Integrasi API

Merupakan fitur untuk mengintegrasikan data yang sebelumnya sudah di buat menggunakan builder.


Package

Fitur package/plugin dapat di manfaatkan oleh developer untuk membangun layanan menggunakan native code (Plugin) secara langsung dan menggabungkan nya dengan source code mainApp serta langsung mempublikasikan nya ke portal nasional.

Package Mobile Flow :

Secara alur develop package di ina-digital, developer men-duplikasi code template / example code ke repo miliknya untuk keperluan lokal development dan ketika code di compile melalui fitur di platform, system akan secara otomatis men-sinkronisasi code yang ada di repository developer.

Proses yang terjadi saat compile adalah penggabungan code package miniapp dengan mainapp source code, dimana terdapat proses routing miniapp, dependecy overrides dan compile, Jika proses tersebut tidak terjadi error / conflict hasil preview dapat di download oleh developer berupa file APK

Sampai saat ini miniapp package berhasil di gabungkan ke mainapp, namun dibutuhkan approval / pengecekan terlebih dahulu dari admin ina-digital untuk proses merge & push ke MainApp repository untuk selanjutnya di publish ke Play store dan App Store

Package Web Flow :

Coming Soon !!!


Microsite

Fitur microsite dapat di manfaatkan oleh developer untuk membangun layanan menggunakan code secara langsung dan men-deploy nya di server cluster framework serta langsung mempublikasikan nya ke portal nasional.

Secara alur pembuatan microsite, caranya tidak jauh berbeda dengan develop package, yaitu developer men-duplikasi code template ke repository milik nya untuk lokal development.

kemudian pada proses deploy ke kubernetes cluster ina-digital yg terjadi adalah (1) sync source code microsites -> (2) build docker image -> (3) push docker registry -> (4) deploy kubernetes cluster -> (5) setup subdomain -> (6) internet akses.

Selanjutnya setel microsite sebagai default frontend layanan, dan microsite akan adapat di akses di portal jika sudah di approve oleh admin ina-digital.

Code Template

Terdapat beberapa code template yaitu :

  • Vu3 (Nuxt Framework)

  • ReactJs (Next Framework)

  • PHP (Laravel Framework)

  • Other (Custom)

dan masing-masing dari code template yang di sediakan sudah termasuk :

  • UI-Kit UI Komponen yang di sediakan untuk membuat laman microsite sebagai standarisasi UI dari layanan yang berbasis tailwind dan custom KonstaUI.

  • SDK Library SDK Libs : Library sebagai tools / shortcut untuk keperluan penggunaan layanan seperti get detail user, alamat pengiriman, transaksi, lokasi dalam mode dev/prod dan lain-lain SDK MainApp : Library untuk kebutuhan komunikasi dengan MainApp, seperti kontrol navigasi, open mainapp pages, open modal dll


Microservice

Fitur microservice dapat digunakan untuk membuat backend service di framework dengan code template yang tersedia serta men-deploy nya di server cluster framework untuk dapat di akses melalui API

Secara alur pembuatan microservice, caranya tidak jauh berbeda dengan develop microsite, yang membedakan output berupa Rest-API dan tidak dapat di setel sebagai default frontend layanan.

Code Template

Terdapat beberapa code template yaitu :

  • Python (Flask)

  • Golang (Fiber)

  • Typescript (NestJs)

  • Other (Custom)


Storage

Fitur storage dapat digunakan untuk mengunggah file dokumen di framework dengan kapasitas tertentu serta mengelola nya melalui API

Secara alur, developer meng-create / add storage beserta dengan besaran kapasitas yang di butuhkan, lalu system akan menggunakan server storage milik ina-digital untuk penyimpanan.

Secara otomatis platform akan meng-generate Rest-API untuk kebutuhan developer meng-unggah maupun memanage data file dokumen, API dan Secret Key otomatis terbuat juga untuk key akses ke API.

Kenapa tidak langsung menyimpan file di Microservices / Microsites ? Microservice / Microsite bersifat stateless, setiap file / data yang tersimpan di service tersebut akan terhapus jika service di restart / re-deploy.


Database

Fitur database dapat digunakan untuk menyimpan data, dan dapat di manfaatkan oleh microservices atau service lain sebagai tempat penyimpanan data terstruktur.

Secara alur untuk pembuatan database di server ina-digital, developer dapat memilih database template yang tersedia seperti: Postgresql, Mysql dan MongoDB. developer dapat setup env sesuai kebutuhan seperti user, password dll.

kemudian platform akan mendeploy service database tersebut ke server ina-digital dan secara otomatis meng-create storage untuk penyimpan database, selanjutnya developer dapat mengakses DB tersebut.


API Management

API management sebagai sarana untuk bertukar data via API antar developer melalui framework

Anda dapat menggunakan API milik developer lain (Jika diberi akses) dan juga dapat mempublikasikan API milik anda sendiri untuk di berikan ke developer lain langsung melalui platform.

Last updated