Masalah

Baru-baru ini saya dihadapkan pada permasalahan unik. Client meminta aplikasi yang memiliki konten secara default, meskipun aplikasi belum pernah melakukan sinkronisasi data dengan server. Tentunya dengan cara ini kita bisa menuliskan saja konten yang diminta ke dalam source code aplikasi. Tetapi problemnya adalah, client belum yakin dengan data yang sudah diberikan. Mereka ingin mereka dapat mengubah isi data tersebut sewaktu-waktu sebelum delivery aplikasi ini.

Tentu saja ini menyulitkan, karena saya tidak ingin meluangkan waktu untuk menanyakan apakah ada perubahan dengan data yang akan dicantumkan secara default setiap kali saya akan meng-compile aplikasi saya. Karena saya yakin saya masih harus copy-paste ke dalam source code saya perubahan tersebut. Lebih buruk lagi jika data ini memiliki struktur yang cukup rumit.

Solusi

Solusi terbaik yang saya temukan adalah dengan membuat sebuah file teks, terpisah dari source code, dan ditempatkan ke dalam direktori res, dalam direktori yang sama dengan aset-aset gambar yang saya gunakan. File ini akan saya berikan kepada client, akan lebih efektif jika saya letakkan dalam lokasi di mana kami bisa berkolaborasi, misalnya di DropBox atau SVN. Dengan demikian, client cukup mengupdate file tersebut kapan saja dan mensinkronisasi file tersebut. Saya cukup meng-update file saya (yang ada di direktori res) dengan file terbaru setiap kali saya akan meng-kompile aplikasi.

Berikut ini contoh kode yang saya gunakan. Saya simpan code ini dalam Gist di Github. Anda bisa mendapatkan code snippet tersebut diĀ https://gist.github.com/1236326.

/**
* I use this method to get contents of JSON formatted file that I put into res
* directory to deliver default data for my application.
* Visit my blog at http://web.durianapp.com
*/

    public static String getResFileContent(String filename) {
        InputStream is = null;
 
        try {
            if (klas == null) {
                klas = Class.forName("com.durianapp.brandapp.BrandApp");
            }
            is = klas.getResourceAsStream(filename);
            byte[] bytes = new byte[1024];
            int len = 0;
            StringBuffer buf = new StringBuffer();
            while ((len = is.read(bytes)) != -1) {
                buf.append(new String(bytes, 0, len));
            }
            return buf.toString();
        } catch(Exception ex) {
            System.out.println("Error: " + ex.toString());
            return "";
        } finally {
            try {
                if (is != null) is.close();
            } catch (Exception e) {
                System.out.println("Ex: "+e.getMessage());
            }
        }
    }

Kode program ini belum menyelesaikan semua masalah memang, saya masih tetap harus melakukan parsing data di dalam file tersebut.

 

September 23, 2011

One response to Membaca isi file resource di dalam direktori res

  1. Pingback: Membaca isi file dalam file system di Blackberry | Mobile Application Developer

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Mobile and Web Analytics