[Pelajaran Siang ini] Bazel + Tulsi

Muhammad Alfiansyah
2 min readNov 17, 2021

--

Image from Tulsi

P: Bisa minta tolong build aplikasi A dong
A: Oke
P: Sudah belum, kok lama ?
A: Bentar masih proses building, file nya banyak banget … mana lagi harus indexing, Sabar Pak !

Nah begitulah kira-kira kerja seorang programmer mobile yang mengerjakan Super App.

Kadang pekerjaan seorang programmer mobile itu lebih banyak dimakan pada proses indexing dan building, apa lagi ketika kita menggunakan Continuous Integration dan ada antrian untuk setiap team.

Nah …setelah baca2 beberapa blog dari aplikasi2 Super App seperti Grab, Line, Telegram ternyata untuk menyingkat building time, mereka mencoba beralih dari default xcode builder ke Bazel dan Tulsi sebagai generator .xcodeproj.

Saat nya kita mencoba implementasi project dengan Bazel + Tulsi.

  1. Instaling Bazel bisa kita ikuti langkah2 pada doc Bazel sendiri https://docs.bazel.build/versions/4.2.1/install-os-x.html
  2. Step selanjutnya kita setup environment untuk iOS project (https://docs.bazel.build/versions/4.2.1/tutorial/ios-app.html)
  3. Untuk building project sudah bisa dilakukan setelah step kedua, sedangkan untuk run project dengan simulator kita butuh Bazel untuk build .xcodeproj. Untuk build .xcodeproj file kita membutuhkan Tulsi sebagai generator, install Tulsi dengan langkah2 yang sudah didokumentasikan di doc Tulsi (https://tulsi.bazel.build/docs/gettingstarted.html) & (https://github.com/bazelbuild/tulsi)
  4. Untuk proses generating .xcodeproj juga bisa diukuti di website Tulsi

Issues

  1. Bazel version : Untuk project tertentu membutuhkan spesifik Bazel version (exp: Untuk running simulator di Apple Chip M1 kita membutuhkan Bazel versi 5 keatas sedangkan untuk MediaPipe menggunakan versi 3.7.2). Untuk Macbook Pro Intel chip no issue.
  2. Python version : Dibutuhkan Python versi 3 dan dependency Numpy dan Six (Update dan set PATH Python versi 3 to solve issue nya)
    `/Users/$USER/Applications/Tulsi.app/Contents/MacOS/Tulsi`
  3. Gunakan @build_bazel_rules_apple versi terbaru untuk support Xcode versi terbaru.

Sample SETUP

Final Project

Next

Pada dokumentasi Apple Rules ada setup untuk menggunakan Swift, Next kita bisa mencoba create project dengan Swift.

--

--

No responses yet