Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Applicazioni React Native per Android, iOS e Web

Applicazioni React Native per Android, iOS e Web

Luigi Maselli

October 26, 2016
Tweet

More Decks by Luigi Maselli

Other Decks in Technology

Transcript

  1. 1. Cos'é React / React Native 2. Interoperabilità tra Web

    e Nativo 3. Considerazioni Esempio pratico 2 / 35
  2. bio / contatti Luigi Maselli software developer 10+y / founder

    corso-javascript.it web: https://grigio.org github: grigio twitter: @grigi0 4 / 35
  3. Cos'è React? (in breve) Lib permette di strutturare la vs

    app come componenti Renderizza e aggiorna i componenti al cambiamento dello stato della vs app (nel browser / DOM) 6 / 35
  4. React / JSX import React from 'react' import {render} from

    'react-dom' // My component function MyApp() { return ( <div> <h1 style={{ fontSize:21 }}>Hello World</h1> </div> ) } // attach to the DOM render(<MyApp/>, document.querySelector('#app')); 11 / 35
  5. React / JSX import React from 'react' import {render} from

    'react-dom' // My component function MyApp() { return ( <div> <h1 style={{ fontSize:21 }}>Hello World</h1> </div> ) } // attach to the DOM render(<MyApp/>, document.querySelector('#app')); React Native / JSX import React from 'react' import { AppRegistry, View, Text } from 'react-native' // My component function MyApp() { return ( <View> <Text style={{ fontSize:21 }}>Hello World</Text> </View> ) } // Mount the app AppRegistry.registerComponent('HAgnosticNews', () => MyApp) 12 / 35
  6. React Native vs Cordova / Phonegap / Webview / Ionic

    Interazioni più fluide Riuso UI nativa 15 / 35
  7. React Native vs Nativo: Obj-C/Xcode, Java/XML/Android Studio JavaScript + bridge

    a UI nativa è quasi il Web, puoi usare i tool e l'editor/IDE che già conosci 18 / 35
  8. React Native vs Nativo: Obj-C/Xcode, Java/XML/Android Studio JavaScript + bridge

    a UI nativa è quasi il Web, puoi usare i tool e l'editor/IDE che già conosci Open Source by Facebook e usato in produzione 19 / 35
  9. React Native vs Nativo: Obj-C/Xcode, Java/XML/Android Studio JavaScript + bridge

    a UI nativa è quasi il Web, puoi usare i tool e l'editor/IDE che già conosci Open Source by Facebook e usato in produzione Multipiattaforma + componenti specifici (quando non c'è equivalente) 20 / 35
  10. ..e se il Web fosse una piattaforma React Native? React

    Native Web https://github.com/necolas/react-native-web 22 / 35
  11. ..e se il Web fosse una piattaforma React Native? React

    Native Web https://github.com/necolas/react-native-web Non è un progetto Facebook ma è supportato da create-react-app https://github.com/facebookincubator/create-react-app 23 / 35
  12. Cos'è create-react-app ? La via più veloce per iniziare un

    progetto React. ES6 Babel, Webpack,.. No boilerplate, 1 dipendenza, 0 configurazioni Mantenuto da Dan Abramov (Facebook) 25 / 35
  13. Componenti nativi Approccio 1: Build time, component.<platform>.js > component.js import

    { AppRegistry, View, Text } from 'react-native' // npm run start -> react-native-web via create-react-app/webpack // react-native run-android -> react-native via create-react-app/webpack 27 / 35
  14. Componenti nativi Approccio 1: Build time, component.<platform>.js > component.js import

    { AppRegistry, View, Text } from 'react-native' // npm run start -> react-native-web via create-react-app/webpack // react-native run-android -> react-native via create-react-app/webpack Approccio 2: Run time, if / operatore ternario ... import { Platform } from 'react-native' {Platform.OS === 'android' ? ( <StatusBar backgroundColor={'#d25500'} /> ) : <View />} // Platform: web, android, ios 28 / 35
  15. Considerazioni + App nativa Android/IOS + app HTML "gratis" +

    Sviluppo più leggero / no simulatore + Performance native + Componenti nativi + "Rifinisci dopo", componenti generici (e poi eventualmente nativi) 32 / 35
  16. Considerazioni - No HTML/CSS window, document,.. - Routing diverso, web/nativo,

    link href - CSS styles, Media queries -> js - SEO 33 / 35