library/specializations/mobile-development/skills/mobile-perf/SKILL.md
Mobile app performance analysis and optimization
npx skillsauth add a5c-ai/babysitter Mobile Performance ProfilingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides mobile app performance analysis and optimization capabilities. It enables profiling with Xcode Instruments, Android Profiler, Flipper, and Flutter DevTools to identify and fix performance issues.
bash - Execute profiling tools and build commandsread - Analyze performance reports and profileswrite - Generate optimization configurationsedit - Update performance-related codeglob - Search for performance filesgrep - Search for patternsTime Profiler
Allocations
Core Animation
CPU Profiler
Memory Profiler
Network Profiler
Flipper Performance
Hermes Profiler
App Startup
Memory Management
Rendering Performance
mobile-performance-optimization.js - Performance tuningmobile-testing-strategy.js - Performance testingjetpack-compose-ui.js - Compose optimizationswiftui-app-development.js - SwiftUI optimization# Record Time Profiler trace
xcrun xctrace record --device "iPhone 15 Pro" \
--template "Time Profiler" \
--attach "MyApp" \
--time-limit 30s \
--output ~/Desktop/profile.trace
# Export trace data
xcrun xctrace export --input ~/Desktop/profile.trace \
--xpath '/trace-toc/run/tracks/track[@name="Time Profiler"]' \
--output ~/Desktop/profile_data.xml
# Capture CPU trace
adb shell am profile start com.example.myapp /data/local/tmp/profile.trace
# Stop and pull trace
adb shell am profile stop com.example.myapp
adb pull /data/local/tmp/profile.trace ./profile.trace
# Capture heap dump
adb shell am dumpheap com.example.myapp /data/local/tmp/heap.hprof
adb pull /data/local/tmp/heap.hprof ./heap.hprof
// Optimize list rendering
import { FlashList } from '@shopify/flash-list';
const OptimizedList = () => {
const renderItem = useCallback(({ item }) => (
<MemoizedListItem item={item} />
), []);
return (
<FlashList
data={items}
renderItem={renderItem}
estimatedItemSize={100}
keyExtractor={item => item.id}
/>
);
};
// Memoize expensive components
const MemoizedListItem = memo(({ item }) => {
return (
<View style={styles.item}>
<Text>{item.title}</Text>
</View>
);
}, (prev, next) => prev.item.id === next.item.id);
// Optimize images
import FastImage from 'react-native-fast-image';
const OptimizedImage = ({ uri }) => (
<FastImage
source={{ uri, priority: FastImage.priority.normal }}
resizeMode={FastImage.resizeMode.cover}
style={styles.image}
/>
);
// Optimize view updates
struct OptimizedView: View {
@State private var items: [Item] = []
var body: some View {
List {
ForEach(items) { item in
ItemRow(item: item)
.equatable() // Prevent unnecessary redraws
}
}
}
}
// Use Equatable for custom views
struct ItemRow: View, Equatable {
let item: Item
static func == (lhs: ItemRow, rhs: ItemRow) -> Bool {
lhs.item.id == rhs.item.id
}
var body: some View {
Text(item.title)
}
}
// Lazy loading
struct LazyImageView: View {
let url: URL
var body: some View {
AsyncImage(url: url) { phase in
switch phase {
case .empty:
ProgressView()
case .success(let image):
image.resizable().aspectRatio(contentMode: .fit)
case .failure:
Image(systemName: "photo")
@unknown default:
EmptyView()
}
}
}
}
// Optimize recomposition
@Composable
fun OptimizedList(items: List<Item>) {
LazyColumn {
items(
items = items,
key = { it.id }
) { item ->
// Stable key prevents unnecessary recomposition
ItemCard(item = item)
}
}
}
// Use derivedStateOf for computed values
@Composable
fun SearchableList(items: List<Item>, query: String) {
val filteredItems by remember(items, query) {
derivedStateOf {
items.filter { it.title.contains(query, ignoreCase = true) }
}
}
LazyColumn {
items(filteredItems, key = { it.id }) { ItemCard(it) }
}
}
// Use remember for expensive calculations
@Composable
fun ExpensiveView(data: ComplexData) {
val processedData = remember(data) {
expensiveCalculation(data)
}
Text(processedData.result)
}
mobile-testing - Performance testingreact-native-dev - RN optimizationflutter-dart - Flutter optimizationkotlin-compose - Compose optimizationdevelopment
Model documentation skill for generating model cards following Google's model card framework.
development
MLflow integration skill for experiment tracking, model registry, and artifact management. Enables LLMs to log experiments, compare runs, manage model lifecycle, and retrieve artifacts through the MLflow API.
data-ai
LIME-based local explanation skill for individual predictions across tabular, text, and image data.
devops
Kubeflow Pipelines skill for ML workflow orchestration, component management, and Kubernetes-native ML.