ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Elearn Prepa: A Comprehensive Mobile Learning Platform for Exam Preparation
Elearn Prepa is a React Native mobile application that provides an interactive and personalized learning experience for students preparing for competitive exams. The platform offers a rich set of features including course content, quizzes, exercises, flashcards, and past exam papers, all accessible through an intuitive mobile interface.README 전문 보기 ↗Elearn Prepa is a React Native mobile application that provides an interactive and personalized learning experience for students preparing for competitive exams. The platform offers a rich set of features including course content, quizzes, exercises, flashcards, and past exam papers, all accessible through an intuitive mobile interface.
The application leverages modern mobile development technologies to deliver a seamless learning experience with features like real-time progress tracking, personalized learning paths, interactive quizzes with instant feedback, and offline content access. Built with Expo and React Native, it provides a native experience across iOS and Android platforms while maintaining a single codebase.
.
├── app/ # Main application screens and navigation
│ ├── (app)/ # Protected app routes requiring authentication
│ │ ├── (catalogue)/ # Shop and payment screens
│ │ ├── learn/ # Learning content and course screens
│ │ └── profile/ # User profile and settings
│ ├── (auth)/ # Authentication related screens
│ └── (callbacks)/ # Payment and external service callbacks
├── components/ # Reusable UI components
│ ├── shared/ # Shared components across screens
│ └── ui/ # Basic UI elements and primitives
├── contexts/ # React contexts for state management
├── hooks/ # Custom React hooks
├── lib/ # Core libraries and service integrations
├── services/ # Business logic and API services
├── types/ # TypeScript type definitions
└── utils/ # Utility functions and helpers
npm install -g expo-cli)# Clone the repository
git clone <repository-url>
cd elearn-prepa
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your configuration
# Start the development server
npx expo start
// Configure Supabase authentication in lib/supabase.ts
const supabaseUrl = process.env.SUPABASE_URL
const supabaseAnonKey = process.env.SUPABASE_ANON_KEY
const supabase = createClient(supabaseUrl, supabaseAnonKey, {
auth: {
storage: ExpoSecureStore,
autoRefreshToken: true,
persistSession: true,
detectSessionInUrl: false,
},
})
// Import necessary hooks and components
import { useAuth } from '@/contexts/auth'
import { useUserInfo } from '@/contexts/useUserInfo'
// Use authentication in your components
function MyComponent() {
const { user, signIn, signOut } = useAuth()
const { lastCourse, toDayXp } = useUserInfo()
// Component logic
}
import { useQuizContext } from '@/contexts/quizContext'
function QuizComponent() {
const {
currentQuestion,
handleAnswerSelect,
handleNextQuestion
} = useQuizContext()
return (
// Quiz UI implementation
)
}
import { useCourseProgress } from '@/hooks/useCourseProgress'
function CourseProgress({ courseId }) {
const { progress, markSectionAsComplete } = useCourseProgress(courseId)
// Progress tracking implementation
}
// Check if session exists
const { data: { session } } = await supabase.auth.getSession()
if (!session) {
// Redirect to login
}
try {
await initiatePayment(amount)
} catch (error) {
console.error('Payment error:', error)
// Handle specific error cases
}
The application follows a unidirectional data flow pattern with React Context for state management and SWR for data fetching.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Supabase │ │ React │ │ UI │
│ Database │◄────┤ Contexts │◄────┤ Components │
└──────────────┘ └──────────────┘ └──────────────┘
▲ ▲ ▲
│ │ │
│ │ │
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Services │ │ Hooks │ │ Actions │
│ │◄────┤ │◄────┤ │
└──────────────┘ └──────────────┘ └──────────────┘
Key interactions:
Cette application implémente un agent de mise à jour automatique qui gère les mises à jour OTA (Over-The-Air) via Expo Updates.
UpdatesContext (contexts/UpdatesContext.tsx)
UpdateBottomSheet (components/shared/UpdateBottomSheet.tsx)
UpdatesManager (components/shared/UpdatesManager.tsx)
L'agent est intégré dans la chaîne des providers de l'application :
<UpdatesProvider>
<UpdatesManager />
{/* Rest of the app */}
</UpdatesProvider>
L'agent utilise les paramètres suivants :
Updates.reloadAsync()Pour utiliser les mises à jour dans vos composants, utilisez le hook useAppUpdates :
import { useAppUpdates } from '@/hooks/useAppUpdates';
function SettingsScreen() {
const { hasUpdate, isChecking, checkNow, applyUpdate } = useAppUpdates();
return (
<TouchableOpacity
onPress={hasUpdate ? applyUpdate : checkNow}
disabled={isChecking}
>
<Text>{hasUpdate ? 'Appliquer la mise à jour' : 'Vérifier les mises à jour'}</Text>
</TouchableOpacity>
);
}
L'agent fonctionne sur iOS et Android et utilise la configuration Expo Updates déjà présente dans app.json :
{
"runtimeVersion": {
"policy": "appVersion"
},
"updates": {
"url": "https://u.expo.dev/7d5dd0db-20aa-4d48-8efe-e66031ebf960"
}
}
__DEV__) et dans Expo Go