Cara Java Resource dipetakan ke Resource iOS

Pengertian Resource Java

Resource Java adalah file data yang dikemas dengan aplikasi dan library Java. Resource ini dimuat pada runtime, baik Class.getResource(String name), yang menampilkan java.net.URL, atau Class.getResourceAsStream(String name), yang menampilkan java.io.InputStream. Metode getResourceAsStream() biasanya digunakan ketika resource diharapkan akan tersedia, karena akan menampilkan IOException jika tidak. Metode getResource() menampilkan null jika resource tidak ada, sehingga sebaiknya uji resource opsional.

Nama dan Jalur Resource

J2ObjC menemukan lokasi resource dengan melihat di paket utama aplikasi ([NSBundle mainBundle]), menggunakan jalur relatif atau absolut resource:

Jalur Relatif

Metode yang direkomendasikan untuk menetapkan jalur resource adalah dengan menggunakan jalur relatif. Jalur relatif tidak diawali dengan garis miring ('/'). Saat membaca resource dengan jalur relatif, nama paket class diubah, dengan mengubah titik ('.') dalam nama paket menjadi garis miring ke depan ('/'), lalu jalur relatif yang ditetapkan dalam panggilan metode Class.getResource(String name) atau Class.getResourceAsStream(String name) akan ditambahkan ke jalur paket.

Misalnya, jika aplikasi memiliki class foo.bar.Mumble, jalur dasar untuk semua resource yang relatif terhadap class dalam paket tersebut adalah /foo/bar. Saat Mumble.class.getResource("oops/error.jpg") dipanggil, oops/error.jpg ditambahkan ke jalur paket, sehingga jalur resource lengkapnya adalah /foo/bar/oops/error.jpg.

Jalur Absolut

Resource juga dapat diakses menggunakan jalur absolut dengan memulai nama resource dengan garis miring ('/'). Nama paket diabaikan, sehingga J2ObjC menemukan jalur absolut dalam paket utama aplikasi menggunakan jalur persis seperti yang ditetapkan dalam referensi Class.getResource(String name) atau Class.getResourceAsStream(String name) dalam sumber Java aplikasi. Pada contoh di atas, Mumble.class.getResource("/oops/error.jpg") memiliki jalur resource lengkap /oops/error.jpg, dengan mengabaikan nama paket foo.bar.

Menambahkan Sumber Daya ke Aplikasi iOS

Untuk menambahkan file resource ke aplikasi iOS di Xcode, buka tab Build Phases target build. Kemudian:

  • Klik ikon + (di bawah tab General) lalu pilih New Copy Files Phase.
  • Pilih "Resources" sebagai Tujuan (bukan Java Resources).
  • Tentukan direktori untuk resource.
  • Pilih + dan tambahkan file ke daftarnya.

Terlepas dari apakah jalur resource relatif atau absolut digunakan, setiap direktori resource memerlukan fase build Salin File yang terpisah dalam build Xcode.

Contoh

Project JreEmulation memiliki aplikasi "JRE JUnit Tests" yang menjalankan pengujian unit library tersebut. Pilih Fase Build target untuk melihat beberapa fase Salin File, masing-masing untuk setiap jalur relatif yang digunakan oleh resource-nya. Di sini, ClassTest.java memuat resource yang sama menggunakan jalur absolut terlebih dahulu, kemudian jalur relatif. Resource pengujian disertakan menggunakan fase build Salin File ini:

Resource Xcode