======================================================================
📘 TITLE: 📱 ГАЙД: МОБИЛЬНЫЕ ПРИЛОЖЕНИЯ НА REACT NATIVE С CLAUDE 📱 | АВТОВЫДАЧА
📂 CATEGORY: Claude
📄 FILENAME: gayd_mobilnye_prilozheniya_na_react_native_s_claude_avtovydacha_guide.txt
======================================================================
📱 ГАЙД: РАЗРАБОТКА МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА REACT NATIVE (EXPO) С CLAUDE 3.5 📱
🔹 ВВЕДЕНИЕ:
Claude 3.5 Sonnet генерирует чистый, типизированный код на React Native (TypeScript / Expo) с поддержкой кастомных хуков, анимаций React Native Reanimated, Zustand сторов и адаптивной верстки под экраны iOS и Android.
🔹 ШАГ 1: ПРОМПТ ГЕНЕРАЦИИ ЭКРАНА С ПЛАВНЫМИ ЖЕСТАМИ
```xml
Создай экран «Tinder-like Card Swiper» на React Native с использованием Expo, TypeScript и Reanimated 3.
• Жесты: свайп карточки вправо (Like), свайп влево (Pass) с использованием GestureHandler.
• Анимации: плавный наклон карточки при перетаскивании (Interpolate rotation) и затухание оверлея.
• Архитектура: модульный код с выделенным хуком `useSwipeGesture`.
```
🔹 ШАГ 2: ИНТЕГРАЦИЯ УПРАВЛЕНИЯ СОСТОЯНИЕМ (ZUSTAND STORE)
Попросите Claude:
`"Напиши легковесный глобальный стор на Zustand для управления корзиной интернет-магазина с сохранением состояния в AsyncStorage (persist middleware)."`
```typescript
// store/cartStore.ts
import { create } from 'zustand';
import { persist, createJSONStorage } from 'zustand/middleware';
import AsyncStorage from '@react-native-async-storage/async-storage';
interface Product {
id: string;
title: string;
price: number;
}
interface CartState {
items: Product[];
addItem: (item: Product) => void;
removeItem: (id: string) => void;
totalPrice: () => number;
}
export const useCartStore = create()(
persist(
(set, get) => ({
items: [],
addItem: (item) => set((state) => ({ items: [...state.items, item] })),
removeItem: (id) => set((state) => ({ items: state.items.filter((i) => i.id !== id) })),
totalPrice: () => get().items.reduce((sum, i) => sum + i.price, 0),
}),
{
name: 'cart-storage',
storage: createJSONStorage(() => AsyncStorage),
}
)
);
```
💡 Если у вас возникнут любые вопросы по выполнению шагов из этого гайда — напишите в чат заказа, я с радостью подскажу!