PPB: TUGAS 2

Nama  : Shazia Ingeyla Naveeda
NRP    : 5025211203
Kelas   : PPB (A)

Membuat Aplikasi Hello Android



Pada pertemuan kedua, diberikan tugas latihan untuk membuat aplikasi hello android menggunakan Jetpack Compose. Jetpack Compose adalah toolkit modern yang dirancang untuk menyederhanakan pengembangan UI. Toolkit ini menggabungkan model pemrograman reaktif dengan keringkasan dan kemudahan penggunaan bahasa pemrograman Kotlin.

MainActivity

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
BasicsCodelabTheme {
MyApp(modifier = Modifier.fillMaxSize())
}
}
}
}

Ini adalah entry point aplikasi Android. setContent digunakan untuk menampilkan UI dengan Jetpack Compose. BasicsCodelabTheme adalah tema kustom. Memanggil MyApp() sebagai composable utama.

MyApp()

@Composable
fun MyApp(modifier: Modifier = Modifier) {

var shouldShowOnboarding by rememberSaveable { mutableStateOf(true) }

Surface(modifier) {
if (shouldShowOnboarding) {
OnboardingScreen(onContinueClicked = { shouldShowOnboarding = false })
} else {
Greetings()
}
}
}

Menentukan logika navigasi antara onboarding screen dan daftar greetings. Menggunakan rememberSaveable agar status bertahan saat rotasi layar. Surface digunakan sebagai wadah UI dengan styling tema.

OnboardingScreen()

@Composable
fun OnboardingScreen(
onContinueClicked: () -> Unit,
modifier: Modifier = Modifier
)

Menampilkan layar sambutan awal dengan teks dan tombol "Continue". Saat tombol ditekan, onContinueClicked di-trigger, yang akan menyembunyikan onboarding.

Greetings()

@Composable
private fun Greetings(
modifier: Modifier = Modifier,
names: List<String> = List(1000) { "$it" }
)

Menampilkan daftar 1000 nama (0 hingga 999) dengan LazyColumn (versi Compose dari RecyclerView). Setiap item ditampilkan menggunakan Greeting(name).

Greeting() & CardContent()

@Composable
private fun Greeting(name: String, modifier: Modifier = Modifier)
@Composable
private fun CardContent(name: String)

Greeting() membungkus setiap item dalam sebuah Card.

CardContent() menampilkan:

  • Teks “Hello,” dan nama.
  • Tombol expand/collapse dengan animasi menggunakan animateContentSize.
  • Paragraf teks dummy ditampilkan saat expanded = true.
  • Ikon ExpandMore atau ExpandLess tergantung pada status ekspansi.

Preview Functions

@Preview(showBackground = true, widthDp = 320, heightDp = 320)
@Composable
fun OnboardingPreview()
@Composable
fun GreetingPreview()
@Composable
fun MyAppPreview()

Untuk menampilkan preview UI di Android Studio. Berguna saat mendesain UI tanpa harus menjalankan aplikasi.

stringResource()

stringResource(R.string.show_more)

Mengambil string dari res/values/strings.xml, digunakan untuk deskripsi ikon agar mendukung i18n dan aksesibilitas.

Comments

Popular posts from this blog

PPB: TUGAS 3

PBKK: FINAL PROJECT

PBKK: TUGAS 3.1