Mobile Development
Revision History
Date | Version | Authors | Description |
---|---|---|---|
2021-05-27 | 1.0 | Sudiharyanto Lika | Initial Version |
1. Overview
Tim IT Yayasan Vitka adalah tim yang bertanggung jawab terhadap pengembangan software di lingkungan Politeknik Pariwisata Batam, Institut Teknologi Batam, dan Yayasan Vitka. Software yang dikembangkan saat ini difokuskan pada kebutuhan akademik dan penunjang kegiatan akademik lainnya. Teknologi yang digunakan berbasis mobile. Software yang ditulis dengan baik dan rapi memiliki banyak kelebihan. Software tersebut akan memiliki bug lebih sedikit dan akan berjalan lebih efisien dibandingkan dengan software yang tidak ditulis dengan baik. Karena software memiliki life cycle dan Sebagian besar dari life cycle tersebut adalah maintenance, tim pengembang maupun anggota tim yang akan datang akan lebih mudah untuk melakukan maintenance dan merubah program sesuai dengan kebutuhan. Tim IT Yayasan Vitka membuat standarisasi dan panduan singkat untuk memastikan seluruh anggota tim IT yang terlibat memiliki visi yang sama dalam mengembangkan software. Standar dan panduan ini tidaklah konstan, namun dapat berevolusi sesuai dengan kebutuhan dan kesepakatan ke depannya.
2. Standard Tools
2.1 Tools & IDE
Fokus pengembangan pada Yayasan Vitka adalah mobile application berbasis Flutter. Tools utama yang dibutuhkan adalah: a. Flutter >= 2.2.0 (Channel Stable)
b. Dart >= 2.13.0
c. Git >= 2.27.0
Adapun untuk GUI Tools & IDE yang digunakan adalah:
a. Android Studio
b. Visual Studio Code
c. XCode
d. SmartGit untuk git
e. Insomnia untuk testing API
2.2 Linux
Linux yang disarankan adalah Ubuntu 20.04 / POP! OS 20.04.
2.3 MacOS
MacOS yang disarankan adalah yang versi terbaru.
3. Coding Standard
Coding Standard adalah tata cara developer dalam menulis kode. Dalam hal ini, beberapa standar yang harus dipenuhi dapat dilihat pada point 3.1
3.1 Penulisan kode Dart
Penulisan kode Dart harus sesuai dengan standar Effective Dart: Style Flutter. Developer mewajibkan install extension Awesome Flutter Snippets di Visual Studio Code. Selain itu, developer diwajibkan mengikuti naming convention yang telah disepakati, yaitu:
a. Contracts
Contracts menggunakan tunggal (singular) Bahasa Inggris, snake_case, dan lowercase.
Contoh: attendance_contract, profile_contract, dan news_contract.
b. Converters
Converters menggunakan tunggal (singular) Bahasa Inggris,, snake_case, dan lowercase.
Contoh: wrapped_response
c. List
Lists menggunakan tunggal (singular) Bahasa Inggris, snake_case, dan lowercase.
Contoh: attendance_list.
d. Models
Models menggunakan tunggal (singular) Bahasa Inggris, snake_case, dan lowercase.
Contoh: attendance, attendance_detail, dan config.
e. Presenters
Presenters menggunakan tunggal (singular) Bahasa Inggris, snake_case, dan lowercase. Contoh: attendance_presenter, config_presenter, dan profile_presenter.
f. UI & Page
Menggunakan Bahasa Inggris , snake_case, dan lowercase.
Contoh: home, splash, home_view, profile_view, dan attendance_list_view.
g. Utils
Utils menggunakan jamak (plural) Bahasa Inggris, snake_case, dan lowercase.
Contoh: styles, assets, utils, dan widgets.
h. Web Services
Menggunakan Bahasa Inggris , snake_case, dan lowercase.
Contoh: api_services
3.2 Development Focus
Pengembangan aplikasi mobile oleh Tim IT Yayasan Vitka harus fungsional, mengikuti best practice baik dari untuk frontend (UI dan styling) maupun backend (performance dan reliability). Selain itu, dikarenakan banyak pengguna saat ini menggunakan smartphone android, maka developer harus menitik beratkan fungsionalitas pada smartphone android terutama pada halaman yang berhubungan dengan pengguna.
4. Documentation Standard
Dokumentasi internal bertujuan untuk meningkatkan readability dari sebuah software. Untuk bahasa program lainnya, pada dasarnya, setiap function, class, dan atau trait harus memiliki DocBlock yang menjelaskan fungsi dari function / class / trait tersebut.
5. Repository Access & Usage
Repositori, dalam konteks ini mengacu pada Repositori Git milik Yayasan Vitka adalah sentral penyimpanan source code yang juga berfungsi sebagai pencatat perubahan dan alat bantu untuk berkolaborasi, terutama di lingkungan Software Development di Yayasan VItka. Repositori milik Yayasan Vitka terletak di Github dengan alamat https://github.com/yayasanvitka.
5.1 Hak Akses
Akses kepada repositori diberikan kepada developer yang terlibat di dalam pengembangan software pada Yayasan Vitka dan atau pihak lainnya yang diberikan akses sesuai pertimbangan. Setiap anggota tim tidak boleh melakukan forking tanpa seizin IT Manager Yayasan Vitka, dan dilarang untuk menunjukkan source code dengan alasan apapun kepada pihak luar kecuali dengan pertimbangan tertentu dan seizin dari IT Manager Yayasan Vitka.
Jika developer tidak lagi menjadi anggota tim pengembangan software, maka hak akses kepada repository Yayasan Vitka akan dicabut.
5.2 Branching
Setiap anggota tim pengembangan software dipersilahkan membuat branch pada repository untuk memisahkan working directory antar anggota tim. Branching sangat disarankan untuk menghindari conflict, terutama jika lebih dari satu anggota tim mengerjakan modul yang sama diwaktu yang bersamaan.
5.3 Commit & Push
Commit dilakukan untuk menyimpan perubahan pada repository. Sedangkan push adalah menyimpan commit yang telah dilakukan pada source repository di Github. Setiap commit yang dilakukan harus berupa incremental changes, atau perubahan yang bersifat tahap demi tahap, dan harus memiliki commit message yang jelas dan rinci. Anggota tim tidak diperkenankan untuk melakukan commit secara langsung ke branch master dan release/latest.
5.4 Pull Request & Merging to Master
Pull request bertujuan untuk menggabungkan branch yang sedang dikembangkan dengan branch master. Pull request dilakukan pada branch yang sudah selesai dikembangkan dan sudah melewati test. Pull request harus direview oleh IT Manager terlebih dahulu sebelum di accept.
5.5 Release
Software yang telah melewati test dapat dirilis untuk pengguna. Setiap rilis harus memiliki Changelog detail, dan harus memiliki versi unik. Penomoran versi aplikasi dilakukan oleh Head Development Team dengan mengikuti standar semantic versioning. Rilis ke server dilakukan oleh PIC yang telah ditunjuk.
Untuk releasenya menggunakan compile App Bundle
6. Issue & Tracking
Setiap software yang dikembangkan tidak lepas dari adanya bugs atau issue. Untuk memudahkan melakukan tracking terhadap issue, Tim IT Yayasan Vitka dapat menggunakan fitur issue pada GitHub untuk melaporkan issue yang ditemukan. Adapun guidelines untuk pembuatan issue adalah:
a. Gunakan tag yang sesuai untuk issue yang ada, seperti [Bug]
untuk bug yang ditemukan pada program, atau [Feature Request]
untuk permintaan penambahan fitur.
b. Issue harus memiliki data siapa yang menemukan / melakukan request, narasi dari issue, dan ekspektasi dari program.
c. Issue, Feature Request, dan hal – hal lain yang berhubungan dengan pengembangan software harus didokumentasikan di GitHub sesuai dengan repository yang bersangkutan atau pada project di organizational level. d. Komunikasi untuk issue, feature request, dan hal – hal lain yang berhubungan dengan pengembangan software harus dilakukan melalui repository software yang bersangkutan atau pada project di organizational level.
6.1 Eskalasi Issue
Jika issue tidak dapat diselesaikan oleh anggota tim yang bersangkutan, misalnya dikarenakan SOP di lapangan yang tidak sesuai dengan ekspektasi program, anggota tim dapat menghubungi head development melalui GitHub mention pada issue, Microsoft Teams, atau Email untuk di ditindak lanjuti. Eskalasi issue juga dapat dilakukan jika issue tersebut sifatnya urgent dan membutuhkan perubahan langsung pada database.
6.2 Penyelesaian
Issue yang telah diselesaikan harus ditutup, dan melakukan referencing pada commit yang menyelesaikan issue tersebut pada GitHub. Pull request dapat dilakukan untuk menggabungkan commit tersebut pada master branch di repository.