====================================================================== 📘 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), } ) ); ``` 💡 Если у вас возникнут любые вопросы по выполнению шагов из этого гайда — напишите в чат заказа, я с радостью подскажу!