Skip to content

Piano 72h — 36 lezioni basate sui docs ufficiali React Native

Ogni lezione segue una o più pagine della documentazione ufficiale (reactnative.dev/docs). Le 36 lezioni coprono TUTTE le sezioni principali dei docs.


BLOCCO 0 — JavaScript Bridge (6 ore, 3 lezioni)

Section titled “BLOCCO 0 — JavaScript Bridge (6 ore, 3 lezioni)”

Riferimento: Prerequisites, MDN JavaScript

Lez 01 — Setup Expo + JS Variabili e Tipi

Section titled “Lez 01 — Setup Expo + JS Variabili e Tipi”

Docs: Environment Setup

OraArgomentoAttività
1hNode.js, Expo, QR codenpx create-expo-app, Expo Go sul telefono
1hlet/const, string/number/boolean, console.logConvertire variabili Python in JS

Docs: MDN JavaScript Guide

OraArgomentoAttività
1hArray: map, filter, forEach, find, reduce10 esercizi array
1hOggetti, destrutturazione, spread, arrow functionsConvertire dict Python in oggetti JS

Docs: MDN JavaScript Guide

OraArgomentoAttività
1hTemplate literals, ternary operator, optional chainingString interpolation
1hModuli import/export, async/await, promessesetTimeout, Promise base

BLOCCO 1 — React Foundation (6 ore, 3 lezioni)

Section titled “BLOCCO 1 — React Foundation (6 ore, 3 lezioni)”

Riferimento: Intro to React

Docs: Intro React Native Components, Intro React

OraArgomentoCodice chiave
1hCore Components: View, Text<View>, <Text>
1hJSX rules, componenti funzione, export defaultconst App = () => <Text>Ciao</Text>

Docs: Props

OraArgomentoCodice chiave
1hProps: passare dati, destrutturare, default({ titolo, prezzo = 0 })
1hChildren, composizione, componenti piccoli riutilizzabiliCard > Avatar + Info

Docs: State, Handling Text Input

OraArgomentoCodice chiave
1huseState: concetto, dichiarazione, aggiornamentoconst [x, setX] = useState(0)
1honPress, onChangeText, Button, AlertAlert.alert('Titolo', 'Msg')

BLOCCO 2 — Core Components e Stile (6 ore, 3 lezioni)

Section titled “BLOCCO 2 — Core Components e Stile (6 ore, 3 lezioni)”

Riferimento: Components and APIs

Docs: View, Text, StyleSheet, Style

OraArgomentoCodice chiave
1hView: contenitore, nesting, stili inline<View style={{flex:1}}>
1hStyleSheet.create(), Text: fontSize, color, fontWeightconst s = StyleSheet.create({})

Docs: Height and Width, Layout Props

OraArgomentoCodice chiave
1hheight, width, flex, %, padding, marginpadding: 20, marginHorizontal: 10
1hborderWidth, borderRadius, box model completoCard con ombra e angoli arrotondati

Docs: Images, Image, ImageBackground

OraArgomentoCodice chiave
1hImage da web, Image locale, resizeMode<Image source={{uri:...}} style={...}/>
1hImageBackground, Image style propsSfondi con testo sovrapposto

BLOCCO 3 — Flexbox e Layout (6 ore, 3 lezioni)

Section titled “BLOCCO 3 — Flexbox e Layout (6 ore, 3 lezioni)”

Riferimento: Flexbox

Lez 10 — Flexbox: Direzione e Allineamento

Section titled “Lez 10 — Flexbox: Direzione e Allineamento”

Docs: Flexbox

OraArgomentoCodice chiave
1hflexDirection, justifyContent'row', 'column', 'center', 'space-between'
1halignItems, alignSelf'center', 'stretch', 'flex-end'

Docs: Flexbox, Layout Props

OraArgomentoCodice chiave
1hflex: rapporto, grow, shrinkHeader 0, Content 1, Footer 0
1hflexWrap, gap, griglia 2 colonneGriglia card con wrap

Docs: Layout Props, Shadow Props, Transforms

OraArgomentoCodice chiave
1hposition absolute/relative, overflow, zIndexBadge sovrapposto a card
1helevation, shadow, transform (rotate, scale)Ombre e trasformazioni

BLOCCO 4 — Scroll e Liste (6 ore, 3 lezioni)

Section titled “BLOCCO 4 — Scroll e Liste (6 ore, 3 lezioni)”

Riferimento: Using ScrollView, Using List Views

Docs: ScrollView, SafeAreaView, KeyboardAvoidingView

OraArgomentoCodice chiave
1hScrollView verticale, orizzontale, contentContainerStyle<ScrollView> profilo scrollabile
1hSafeAreaView, KeyboardAvoidingViewForm che non si nasconde con tastiera

Docs: FlatList

OraArgomentoCodice chiave
1hdata, renderItem, keyExtractor<FlatList data={d} renderItem={fn}/>
1hListEmptyComponent, ItemSeparatorComponent, ListHeader/FooterLista contatti completa

Docs: SectionList, Optimizing FlatList Config, VirtualizedList

OraArgomentoCodice chiave
1hSectionList, numColumns, refreshing/onRefreshLista con sezioni
1hOttimizzazione: windowSize, getItemLayout, maxToRenderPerBatchPerformance checklist

BLOCCO 5 — Touch e Interazioni (6 ore, 3 lezioni)

Section titled “BLOCCO 5 — Touch e Interazioni (6 ore, 3 lezioni)”

Riferimento: Handling Touches

Docs: TouchableOpacity, TouchableHighlight, TouchableNativeFeedback

OraArgomentoCodice chiave
1hTouchableOpacity: onPress, onLongPress, activeOpacityCard cliccabile
1hPressable: hitSlop, pressRetentionOffset, statiBottone personalizzato con feedback

Docs: Gesture Responder System, Handling Touches

OraArgomentoCodice chiave
1honStartShouldSetResponder, onMoveShouldSetResponderView che cattura tocchi
1hPanResponder: gestureState, dx, dy, moveX/YElemento dragabile

Lez 18 — Switch, Modal, ActivityIndicator

Section titled “Lez 18 — Switch, Modal, ActivityIndicator”

Docs: Switch, Modal, ActivityIndicator, RefreshControl

OraArgomentoCodice chiave
1hSwitch on/off, Modal apri/chiudiImpostazioni con toggle
1hActivityIndicator, RefreshControl, ProgressBarStati di caricamento

BLOCCO 6 — Form e Input (6 ore, 3 lezioni)

Section titled “BLOCCO 6 — Form e Input (6 ore, 3 lezioni)”

Riferimento: Handling Text Input, TextInput

Docs: TextInput

OraArgomentoCodice chiave
1hvalue, onChangeText, placeholder, keyboardType, secureTextEntryForm login
1hmultiline, onSubmitEditing, blurOnSubmit, maxLengthForm registrazione

Docs: Button, Alert

OraArgomentoCodice chiave
1hButton: title, onPress, color, disabledPulsanti vari
1hAlert: alert(), alert con bottoni, prompt iOSConferme, scelte, errori

Combinazione di TextInput, Alert, Button, stato

OraArgomentoCodice chiave
1hPattern validazione: stato errori, check per camposetErrori({email: 'Email invalida'})
1hForm complesso multi-campo, submit, resetForm completo con validazione

BLOCCO 7 — Dati e Persistenza (6 ore, 3 lezioni)

Section titled “BLOCCO 7 — Dati e Persistenza (6 ore, 3 lezioni)”

Riferimento: AsyncStorage, Network

Docs: AsyncStorage

OraArgomentoCodice chiave
1hsetItem, getItem, removeItem, JSON.stringify/parseAsyncStorage.setItem('k', JSON.stringify(d))
1huseEffect per caricamento/salvataggio automaticoTodo List persistente

Docs: Network, Using Fetch

OraArgomentoCodice chiave
1huseEffect + fetch, async/await, response.json()const res = await fetch(url)
1hActivityIndicator, gestione errori, try/catchLista posts da API

Docs: Network, WebSocket

OraArgomentoCodice chiave
1hPOST: method, headers, body, JSON.stringifyInviare dati a API
1hWebSocket: onopen, onmessage, onerror, oncloseChat in tempo reale

BLOCCO 8 — Navigazione (6 ore, 3 lezioni)

Section titled “BLOCCO 8 — Navigazione (6 ore, 3 lezioni)”

Riferimento: Navigation

Docs: Navigation, React Navigation docs

OraArgomentoCodice chiave
1hInstallazione, createNativeStackNavigatorcreateNativeStackNavigator()
1hnavigation.navigate, route.params, header optionsLista → Dettaglio con parametri

Docs: React Navigation Tab docs

OraArgomentoCodice chiave
1hcreateBottomTabNavigator, tabBarIcon, screenOptions3 tab: Home, Cerca, Profilo
1hIcone con @expo/vector-icons, badge, coloriTab personalizzato

Docs: React Navigation nesting navigators

OraArgomentoCodice chiave
1hStack dentro Tab, navigate tra tabPattern standard: Tab + Stack per ogni tab
1hDrawer navigation, combinazioni multipleDrawer + Tab + Stack

BLOCCO 9 — UI Platform (6 ore, 3 lezioni)

Section titled “BLOCCO 9 — UI Platform (6 ore, 3 lezioni)”

Riferimento: Platform Specific Code, Appearance

Docs: Platform, Platform Specific Code, Appearance, useColorScheme

OraArgomentoCodice chiave
1hPlatform.OS, Platform.select, estensioni .android/.iosCodice diverso per Android/iOS
1huseColorScheme, Appearance, dark modeTema chiaro/scuro automatico

Lez 29 — StatusBar, Dimensions, PixelRatio

Section titled “Lez 29 — StatusBar, Dimensions, PixelRatio”

Docs: StatusBar, Dimensions, useWindowDimensions, PixelRatio

OraArgomentoCodice chiave
1hStatusBar, SafeAreaView, insetsBarra di stato personalizzata
1hDimensions, useWindowDimensions, PixelRatioLayout responsive

Docs: Share, Linking, Vibration, BackHandler

OraArgomentoCodice chiave
1hShare.share(), Linking.openURL, Linking.canOpenURLCondividere contenuti, aprire link
1hVibration.vibrate(), BackHandler, AppStateFeedback tattile, stato app

BLOCCO 10 — Animazioni (6 ore, 3 lezioni)

Section titled “BLOCCO 10 — Animazioni (6 ore, 3 lezioni)”

Riferimento: Animations

Docs: Animations, Animated

OraArgomentoCodice chiave
1hAnimated.Value, Animated.timing, useNativeDriverFadeIn, SlideIn all’avvio
1hAnimated.View, Animated.Text, interpolateOpacity + translateY combinati

Docs: Animated, Easing, AnimatedValue, AnimatedValueXY

OraArgomentoCodice chiave
1hspring, sequence, parallel, delay, loop, staggerAnimazioni composte
1hEasing, Animated.event, scroll-linked animationsAnimazioni legate allo scroll

Docs: LayoutAnimation, Transforms

OraArgomentoCodice chiave
1hLayoutAnimation.configureNext, presetAnimazioni layout automatiche
1hTransform: rotate, scale, translate, perspectiveCard che ruota al click

BLOCCO 11 — TypeScript (6 ore, 3 lezioni)

Section titled “BLOCCO 11 — TypeScript (6 ore, 3 lezioni)”

Riferimento: Using TypeScript

Docs: Using TypeScript

OraArgomentoCodice chiave
1hTipi base, type vs interface, array, unionistring, number, type Props={}
1htsconfig.json, strict mode, inferenza, any (evitare)Configurare progetto TS

Docs: Using TypeScript, Strict TypeScript API

OraArgomentoCodice chiave
1hProps tipizzate, useState, FlatListComponenti React con TS
1hNavigazione tipizzata, API types, errori comuniConvertire Todo List in TS

Docs: Publishing to App Store, Signed APK

OraArgomentoCodice chiave
1happ.json, icon, splash, EAS Buildeas build -p android --profile preview
1hPresentazione progetto, demo su telefonoREADME, screenshot, APK

BloccoLezioniArgomentoDocs ufficiali
001-03JavaScript BridgePrerequisites
104-06React FoundationIntro React, Props, State
207-09Core Components + StyleView, Text, Image, StyleSheet
310-12Flexbox e LayoutFlexbox, Layout Props
413-15Scroll e ListeScrollView, FlatList, SectionList
516-18Touch e InterazioniHandling Touches, Pressable
619-21Form e InputTextInput, Form validation
722-24Persistenza e APIAsyncStorage, Network
825-27NavigazioneReact Navigation
928-30UI PlatformPlatform, Appearance, Share
1031-33AnimazioniAnimated, LayoutAnimation
1134-36TypeScript + BuildUsing TypeScript, Publishing