5 poin oleh GN⁺ 2025-06-17 | 2 komentar | Bagikan ke WhatsApp
  • Di API publik Android, tersembunyi metode dan konstanta yang jenaka
  • Contoh yang paling dikenal adalah metode seperti isUserAMonkey() dan isUserAGoat(), yang memadukan kegunaan nyata dengan unsur lelucon
  • DISALLOW_FUN, Log.wtf(), dan lainnya memuat penjelasan bercanda atau perilaku yang menghibur di dalam API resmi
  • Penamaan yang kreatif atau parodi (misalnya TWEET_TRANSACTION, GRAVITY_DEATH_STAR_I) sering muncul dalam dokumentasi resmi maupun kode
  • Elemen-elemen ini berperan memberi kesenangan kecil dan penemuan menarik bagi para pengembang

Lelucon dan unsur humor di dalam API publik Android

API terbuka Android memuat beragam lelucon cerdas dan elemen easter egg untuk pengembang, berdampingan dengan fungsi nyata

ActivityManager.isUserAMonkey()

  • Metode ini digunakan untuk menentukan apakah UI Exerciser Monkey milik alat pengembang sedang berjalan
  • Dirancang agar perilaku tertentu bisa dibatasi di lingkungan pengujian stres aplikasi yang mensimulasikan input acak pada UI
  • Diperkenalkan agar saat monkey, bukan pengguna nyata, sedang memakai aplikasi, fungsi penting tertentu (misalnya panggilan darurat) dapat dibatasi
  • Ditambahkan ke API publik pada Android 2.2 (Froyo, API 8)
  • Memiliki latar belakang implementasi yang benar-benar dibuat untuk mengatasi masalah tak disengaja pada masa awal pengembangan Android

UserManager.isUserAGoat()

  • Di dokumentasi resmi, metode ini dijelaskan seolah-olah untuk memeriksa apakah pengguna adalah target teleportasi, tetapi itu hanyalah lelucon
  • Awalnya selalu mengembalikan false, tetapi setelah Goat Simulator dirilis, perilakunya diubah agar mengembalikan true jika game tersebut terpasang
  • Pada Android 11 (API 30) ke atas, nilainya dikunci selalu false demi perlindungan privasi
  • Sempat ada logika pendeteksian aplikasi Goat Simulator, tetapi diubah untuk mencegah kebocoran informasi seiring perubahan kebijakan akses daftar aplikasi
  • Terinspirasi dari easter egg di Google Chrome Task Manager

UserManager.DISALLOW_FUN

  • Ditambahkan pada Android 6 Marshmallow (API 23) sebagai kebijakan pelarangan kesenangan
  • Dokumentasi resmi menyatakan bahwa kebijakan ini dapat membatasi pengguna agar tidak merasakan kegembiraan atau hiburan
  • Dalam praktiknya, ini dipakai sebagai kebijakan yang memungkinkan pemilik perangkat membatasi sebagian fungsi pengguna
  • Beberapa aplikasi atau sistem sendiri dapat mendeteksi kebijakan ini untuk menonaktifkan fitur “menyenangkan” seperti easter egg
  • Dapat dimanfaatkan di lembaga pendidikan dan semacamnya untuk menonaktifkan fitur yang mengalihkan perhatian

Chronometer.isTheFinalCountdown()

  • Pada Android 8 Oreo (API 26), ditambahkan metode isTheFinalCountdown
  • Saat dipanggil, metode ini otomatis membuka video YouTube “The Final Countdown” milik Europe
  • Tidak punya kegunaan praktis yang langsung terlihat dan jelas merupakan lelucon/referensi
  • Hal ini tampak jelas dari perintah Intent di dalam kodenya
  • Memberi hiburan kecil bagi pengembang

PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND

  • Ini adalah konstanta untuk menandai dukungan multitouch yang ditambahkan pada Android 2.3 Gingerbread (API 8)
  • Namanya merupakan parodi dari jazz hands, gestur dalam pertunjukan musik
  • Artinya perangkat dapat mengenali hingga lima jari secara bersamaan

Log.wtf()

  • Singkatan dari What a Terrible Failure, digunakan untuk mencatat kondisi yang seharusnya tidak pernah terjadi
  • Diklasifikasikan sebagai log serius setingkat assertion
  • Menjadi salah satu API bercanda yang paling dikenal di kalangan pengembang

AdapterViewFlipper.fyiWillBeAdvancedByHostKThx()

  • Ditambahkan pada Android 3.0 Honeycomb (API 11)
  • Memiliki penamaan yang tidak resmi dan ceria, dan dipanggil saat view dilanjutkan oleh host
  • Diduga lahir dari ide penamaan yang sengaja dibuat komikal
  • Mengekspresikan secara jenaka sulitnya penamaan, salah satu masalah klasik dalam ilmu komputer

IBinder.TWEET_TRANSACTION

  • Jenis transaksi ini diperkenalkan pada Android 3.2 Honeycomb (API 13)
  • Namanya menyiratkan pengiriman tweet, tetapi sebenarnya tidak melakukan apa pun, dan batas panjang pesan 130 karakter merujuk pada kebijakan Twitter lama
  • Namanya sendiri sepenuhnya merupakan parodi

IBinder.LIKE_TRANSACTION

  • Ini adalah transaksi LIKE yang ditambahkan pada Android 4.0.3 ICS (API 15)
  • Digunakan untuk mengirim sinyal bahwa pemanggil menyukai aplikasi, tetapi tidak ada pencatatan atau penghitung nyata
  • Ada penjelasan bercanda bahwa ini membantu meningkatkan rasa percaya diri aplikasi

SensorManager.SENSOR_TRICORDER

  • Konstanta ini diambil dari Tricorder dalam Star Trek
  • Sudah ada sejak masa Android 1.0, tetapi kemudian diberi status deprecated
  • Karena Tricorder adalah perangkat fiksi ilmiah yang tidak benar-benar ada, konstanta ini memberi senyuman bagi pengembang

SensorManager.GRAVITY_*

  • Di dalam SensorManager, ada konstanta yang memuat nilai gravitasi berbagai benda langit (matahari, Pluto, dan lain-lain)
  • Di antaranya, GRAVITY_DEATH_STAR_I (Death Star dari Star Wars) dan GRAVITY_THE_ISLAND (pulau dari drama LOST) merupakan lelucon
  • Sebagian punya makna yang lebih kuat sebagai parodi daripada kegunaan nyata

<blink> tag

  • Di sistem layout view Android, ada tag tersembunyi bernama <blink>
  • Tag ini membuat view anak berkedip seperti <blink> lama di HTML
  • Tidak dijelaskan di dokumentasi resmi, tetapi ditambahkan lewat commit tahun 2011 dan masih ada di AOSP sampai sekarang
  • Apakah benar-benar dipakai dalam praktik masih menjadi bahan perdebatan

Kesimpulan

Di berbagai bagian API resmi Android, lelucon, parodi, dan elemen bergaya easter egg sengaja disisipkan
Elemen-elemen ini memberi pengembang kesenangan kecil dan rasa senang saat menemukan sesuatu, sekaligus memperlihatkan budaya komunitas Android yang ceria

2 komentar

 
GN⁺ 2025-06-17
Opini Hacker News
  • Di FB selama bertahun-tahun, ada kebiasaan memberi sufiks seperti _DO_NOT_USE_OR_YOU_WILL_BE_FIRED pada token yang berbahaya atau sudah usang. Semua orang tahu ini lelucon, tetapi setelah pandemi, ketika proporsi pegawai baru meningkat dan onboarding jarak jauh kurang memadai, muncul juga keluhan bahwa candaan internal seperti ini menimbulkan rasa takut atau ketidakpastian. Ini hanya berdasarkan pengalaman yang pernah saya alami

    • Saya ingat sejak dulu merasa nama seperti React __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED lucu sekaligus kelewat panjang. Tapi sayangnya, belakangan "humor" semacam ini makin menghilang PR terkait

    • Dulu di Google, ada sebongkah kode raksasa di suatu bagian network stack yang sulit dipahami dan sulit diubah, dan ukurannya terus membesar. Tim kami lalu menamai kode itu "[Foo]Sorcery". Karena namanya terasa seram dan aneh, tidak ada lagi yang mau menambahkan hal baru ke sana, dan sesekali ada yang malah merapikan sebagian lalu menghapusnya. Menurut saya penamaan yang lucu itu efektif

  • Di source Android, fungsi jenaka favorit saya adalah android.os.Handler.runWithScissors(), tapi sayangnya itu tidak termasuk dalam public API tautan source

    • Di komentar fungsi itu ada kalimat “@hide This method is prone to abuse and should probably not be in the API. If we ever do add it, we should probably rename it to something less funny like runUnsafe().” yang masih membuat saya tertawa

    • Sedikit disayangkan fungsi ini tidak disebut di artikel utama. Ini salah satu fungsi favorit saya

  • Contoh yang langsung teringat dari X11 adalah variabel global "party_like_its_1989" tautan kode, dan changelog ekstensi DRI2 penuh dengan ungkapan seperti "Awesomeness!", "True excellence", "Enlightenment attained" tautan changelog

  • Di BeOS (dan Haiku), ada fungsi "is_computer_on()" dan "is_computer_on_fire()", dan penjelasannya luar biasa bagus tautan referensi

    • Di Delphi ada exception bernama 'EProgrammerNotFound', dan dokumentasi resminya juga memuat humor yang sangat datar namun serius tautan dokumentasi

    • Tentu saya paham penamaan seperti ini dibuat untuk lucu-lucuan, tetapi pada komputer modern dengan manajemen daya tingkat lanjut, kondisi seperti ini sebenarnya cukup umum. Sistem operasi memang harus bisa menangani hal-hal seperti bangun dari mode hemat daya sangat dalam atau suhu motherboard yang mencapai 200 derajat sebagai sesuatu yang wajar

    • Menurut saya akan lebih lucu kalau is_computer_on_fire() dipakai sebagai trigger berbasis event asinkron

    • Untuk yang penasaran, ada juga tautan ke source terkait tautan kode

  • Saya suka bahwa selera humor seperti ini masih hidup di codebase perusahaan besar. Saat hanya memakai API kita tidak menyadarinya, tetapi ketika membaca source code langsung, easter egg seperti ini kadang muncul dan benar-benar membuat kita merasa bahwa kode ini ditulis oleh manusia. Software zaman sekarang terasa terlalu dingin, dan justru kontras seperti ini memberi rasa hangat. Sejujurnya saya berharap hal seperti ini lebih banyak lagi

    • Mirip dengan itu, saya terkesan karena ini mengingatkan bahwa ada manusia sungguhan di balik kode atau API yang saya gunakan di berbagai tempat
  • Kalau ingin mencoba sendiri hal-hal seperti isUserAGoat dan isUserAMonkey di Android, saya pernah membuat aplikasi kecil yang menyediakan fungsi-fungsi itu tautan aplikasi. Nanti saya ingin menambahkan lebih banyak easter egg juga

    • Menambahkan fitur seperti pengecekan kebijakan DISALLOW_FUN mungkin juga akan cukup seru. Saya sempat mencari kodenya di GitHub, dan kebanyakan hanya dipakai oleh aplikasi Settings sistem untuk menyembunyikan easter egg versi. Mungkin saya bisa jadi pihak ketiga pertama yang benar-benar memakai fitur ini secara nyata

    • Tapi di Android 15 aplikasinya tidak bisa dipasang. Akan bagus kalau aplikasinya diperbarui karena Google mewajibkan minimum compileSdk yang sesuai

  • Di Chrome Task Manager dulu pernah ada kolom tersembunyi yang menampilkan "jumlah kambing yang diteleportasi oleh proses browser". Sekarang fitur itu sudah hilang, tetapi bisa dilihat di screenshot lama. Dulu bahkan ada 234 kolom, sekarang tinggal 16, jadi agak disayangkan

  • Saya rindu masa ketika produk teknologi penuh dengan easter egg. Sekarang semua terasa makin korporat dan budaya seperti ini seolah menghilang

  • Saya ingin menjadikan membalas thread ini sebagai pertanyaan wajib saat wawancara, termasuk ketika saya yang diwawancarai. Ini benar-benar momen “di dunia ini ada dua jenis orang”

    • Kenapa? Menurut saya lelucon yang ditanam Googler ke dalam API itu tingkat lucunya setara jokes bapak-bapak saat makan malam Natal
  • Jadi ini soal adanya humor dan lelucon dalam dokumentasi teknis; meski sering dipandang negatif, saya pribadi sangat suka humor dimasukkan ke dalam dokumentasi. Saya pernah menulis soal ini

 
roxie 2025-10-14

Apakah ungkapan ‘yuumer’ itu hasil terjemahan oleh AI....? duh duh duh