App Performance Optimization

🚀 React Native এ App Performance Optimization

React Native অ্যাপ যদি দ্রুত, স্মুথ এবং লো-ল্যাটেন্সি না হয়, তাহলে ব্যবহারকারী কখনও ভালো অভিজ্ঞতা পাবে না। তাই পারফরম্যান্স অপটিমাইজেশন হচ্ছে একটি প্রফেশনাল React Native ডেভেলপারের জন্য সবচেয়ে গুরুত্বপূর্ণ স্কিল।


📌 ১. Re-render কমানো (Avoid Unnecessary Rendering)

React Native-এ অতিরিক্ত re-render অ্যাপকে স্লো করে। তাই re-render কমানো পারফরম্যান্সের মূল কাজ।

✔ Memoization ব্যবহার করুন

  • React.memo() – component re-render বন্ধ করে
  • useCallback() – function re-render বন্ধ করে
  • useMemo() – heavy calculation cache করে
const ExpensiveComponent = React.memo(({ value }) => {
  return {value};
});

📌 ২. FlatList Optimization (List Rendering Speed বাড়ানো)

FlatList কে optimize করা খুব জরুরি কারণ সাধারণত app এর সবচেয়ে ভারী UI list এ থাকে।

✔ FlatList Optimization Tips

  • keyExtractor অবশ্যই ব্যবহার করুন
  • initialNumToRender কম রাখুন
  • windowSize বাড়ান
  • getItemLayout ব্যবহার করুন (height fix হলে)
  • renderItem কে useCallback দিয়ে wrap করুন
<FlatList
  data={data}
  renderItem={renderItem}
  keyExtractor={(item) => item.id}
  initialNumToRender={5}
  windowSize={10}
/>

📌 ৩. Large Images Optimization

বড় ইমেজ অ্যাপকে অত্যন্ত স্লো করে। তাই ইমেজ অপটিমাইজেশন খুবই জরুরি।

  • ইমেজ width/height ঠিক করে দিন
  • WebP format ব্যবহার করুন (small size)
  • react-native-fast-image ব্যবহার করুন
import FastImage from 'react-native-fast-image';

<FastImage
  style={{ width: 100, height: 100 }}
  source={{ uri: imageUrl }}
/>
</FastImage>

📌 ৪. Reduce App Size (APK/IPA Size Optimization)

  • Unused assets delete করুন
  • Proguard enable করুন (Android)
  • Hermes Engine enable করুন (React Native 0.70+)
  • Image compression ব্যবহার করুন
// android/app/build.gradle
project.ext.react = [
  enableHermes: true
]

📌 ৫. Avoid Heavy Work on JS Thread

JS Thread ব্লক হলে অ্যাপের UI freeze হয়।

✔ Heavy কাজগুলো Background Thread এ পাঠান:

  • react-native-reanimated
  • react-native-gesture-handler
  • InteractionManager
InteractionManager.runAfterInteractions(() => {
  // Heavy task
});

📌 ৬. Minimize Re-renders with Virtualization

Scrollable content manual map না করে VirtualizedList বা FlatList ব্যবহার করুন।

  • FlatList
  • SectionList
  • VirtualizedList

📌 ৭. Use PureComponent & ShouldComponentUpdate (Class Components)

ক্লাস কম্পোনেন্ট হলে PureComponent re-render কমায়।

class Example extends React.PureComponent {
  render() {
    return Hello;
  }
}

📌 ৮. Animations: Use Reanimated Instead of JS Animations

Reanimated 2 অ্যাপে UI-thread এ animation চালায় → smoother animation।

  • UI-thread animations
  • Smoother gestures
  • Zero JS blocking

📌 ৯. Production Build Optimization

Debug build সবসময় slow হয়। তাই testing করুন:

  • Android → release APK
  • iOS → TestFlight / Archive Build

✨ Summary (Important Points)

  • Memoization ব্যবহার করুন
  • FlatList Optimize করুন
  • FastImage ব্যবহার করুন
  • Heavy কাজ Background Thread এ পাঠান
  • Hermes Engine enable করুন
  • UI-thread animations ব্যবহার করুন (Reanimated)
  • Release build দিয়ে টেস্ট করুন

✔ এই অপটিমাইজেশনগুলো ফলো করলে আপনার React Native অ্যাপ হবে আরও দ্রুত, হালকা ও স্মুথ।

👼 Quiz
/

লোড হচ্ছে...