1. Tujuan Pembelajaran
Mahasiswa mampu:
- Menjelaskan konsep siklus hidup aplikasi mobile.
- Menghubungkan Android lifecycle dengan lifecycle di React Native (component-based).
- Membuat project sederhana Expo untuk mengamati perubahan state/lifecycle.
2. Konsep Lifecycle
- Android Native (Java/Kotlin) โ Activity lifecycle (
onCreate,onStart,onResume, dll). - React Native/Expo (JavaScript) โ tidak ada
Activitylangsung, tapi ada Component Lifecycle.
๐ Komponen utama di React (class-based):
componentDidMount()โ sepertionCreate, dipanggil saat komponen selesai di-render pertama kali.componentDidUpdate()โ dipanggil saat ada perubahan state/props.componentWillUnmount()โ dipanggil sebelum komponen dihapus (miriponDestroy).
๐ Hooks (functional component):
useEffect(() => {...}, [])โ seperticomponentDidMount.useEffect(() => {...}, [state])โ seperticomponentDidUpdate.- Return cleanup di
useEffectโ seperticomponentWillUnmount.
3. Praktikum dengan Expo
Step setup (sekali saja):
- Install Node.js LTS.
- Install Expo CLI:
npm install -g expo-cli - Buat project baru:
expo init lifecycle-demo cd lifecycle-demo expo start - Jalankan di Expo Go (mobile app Android/iOS) atau emulator jika ada.
4. Contoh kode lifecycle (React Native dengan Hooks)
// App.js
import React, { useState, useEffect } from 'react';
import { View, Text, Button } from 'react-native';
export default function App() {
const [count, setCount] = useState(0);
// mirip componentDidMount
useEffect(() => {
console.log("App mounted (mirip onCreate)");
return () => {
console.log("App unmounted (mirip onDestroy)");
};
}, []);
// mirip componentDidUpdate
useEffect(() => {
console.log("Count berubah:", count);
}, [count]);
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Lifecycle Demo</Text>
<Text>Count: {count}</Text>
<Button title="Tambah" onPress={() => setCount(count + 1)} />
</View>
);
}
๐ Output di console Expo menunjukkan kapan app mount, update, dan unmount.
5. Aktivitas Praktikum
- Buat project baru dengan Expo.
- Tambahkan kode lifecycle di atas.
- Amati console:
- Saat app pertama dijalankan โ muncul “App mounted”.
- Saat tekan tombol โ muncul “Count berubah: X”.
- Saat app ditutup โ muncul “App unmounted”.
- Diskusikan: bagaimana konsep ini mirip dengan Android lifecycle?
6. Manfaat
- Pemahaman cross-platform: meski pakai Expo, konsep lifecycle management tetap berlaku.
- Praktis: mahasiswa bisa mencoba di HP sendiri via Expo Go tanpa emulator berat.
- Dasar untuk project lebih lanjut: manajemen state & efek pada aplikasi nyata.
7. Tugas
- Buat app sederhana dengan dua state (misalnya: counter & status login).
- Tambahkan
useEffectuntuk memonitor perubahan keduanya. - Kumpulkan screenshot console log + penjelasan perbedaan lifecycle Android vs React Native.
๐ Indikator OBE:
- Knowledge: Mahasiswa bisa menjelaskan persamaan & perbedaan lifecycle Android native vs React Native.
- Skill: Membuat app Expo dengan log lifecycle.
- Attitude: Menganalisis dan menyimpulkan praktik terbaik.





Tinggalkan Balasan