An Interest In:
Web News this Week
- April 21, 2024
- April 20, 2024
- April 19, 2024
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
Expo (React Native) et UI Kitten: Styl avec plein de chatons
Dans cette partie je vais crer mon app Expo (React Native) et je vais y ajouter la librairie de composants UI Kitten.
Expo (React Native)
Expo te permets de faire des applications React Native sans effort!
Je mesure bien mes mots, car entre les composants dj a notre disposition offerts par Expo ainsi que les guides pour mettre en place une Map, du Paiement avec Stripe et j'en passe... La vie devient simple et agrable.
Rappellons-nous que l'ide de cette srie de tutos est de crer quelque chose de viable sans branlette intellectuelle
UI Kitten
Une librarie trs chatonise et super style. Sauf si tu as un designer ou designeuse qui t'a fait des maquettes quali, tu peux aujourd'hui faire une appli tout fait style grace cette lib.
Prrequis (les classiques
- NodeJS LTS
- VS Code
- Un terminal (ou l'outils de commande si tu veux)
Intialisation de mon projet
npx create-expo-app MaPetitePrise --template tabs
Ca va nous donner de la navigations et TypeScript, on se mettra bien bien!
Tu peux prsent ouvrir VS Code et lancer:
# Mac a.k.a les riches npm run ios# Windows a.k.a les gamersnpm run android
On fera un tour des lieux un peu plus tard.
Je vais mettre en place UI Kitten present
npm i @ui-kitten/components @eva-design/eva # entrenpx expo install [email protected] # entre
Pour que ca fonctionne aussi en mode Web, si jamais j'ai l'envie de gnrer une app web aussi (eh oui c'est possible! )
J'ajoute ceci mon app.json
:
"expo": { ... "web": { ... "build": { "babel": { "include": [ "@ui-kitten/components" ] } } ... }
Une derniere chose et on est bons, dans mon fichier App.tsx
j'ajoute un wrapper ApplicationProvider
autours de mes composants:
//...import * as eva from '@eva-design/eva';import { ApplicationProvider } from '@ui-kitten/components';export default function App() { const isLoadingComplete = useCachedResources(); const colorScheme = useColorScheme(); if (!isLoadingComplete) { return null; } else { return ( <ApplicationProvider {...eva} theme={eva.light}> <SafeAreaProvider> <Navigation colorScheme={colorScheme} /> <StatusBar /> </SafeAreaProvider> </ApplicationProvider> ); }}
Je si tout marche bien:
npm run ios
Je prends le composants TabOneScreen
pour voir:
Je vais surement avoir des composants en collisions avec ma lib UI Kitten, du coup je supprime toute ligne qui les concerne genre celle l:
import { Text, View } from '../components/Themed';
// TabOneScreen.tsximport { Text, Button, Layout } from "@ui-kitten/components"export default function TabOneScreen({ navigation,}: RootTabScreenProps<"TabOne">) { return ( <Layout style={{ flex: 1, justifyContent: "center", alignItems: "center" }}> <Text category="h1">HOME</Text> <Button onPress={() => alert("Hey!")}>Clique!</Button> </Layout> )}
Ca va marcher mais... si j'essaye ca:
//...const FacebookIcon = (props) => ( <Icon name='facebook' {...props} />);// Dans le composant//... <Button accessoryLeft={FacebookIcon} onPress={() => alert("Hey!")}>Clique!</Button>//...
Dans mon terminal:
npm i @ui-kitten/eva-icons
Retour dans mon App.tsx
import { StatusBar } from "expo-status-bar"import { SafeAreaProvider } from "react-native-safe-area-context"import * as eva from "@eva-design/eva"// J'importe le IconRegistryimport { ApplicationProvider, IconRegistry } from "@ui-kitten/components"// J'importe aussi le pack d'iconesimport { EvaIconsPack } from "@ui-kitten/eva-icons"import useCachedResources from "./hooks/useCachedResources"import useColorScheme from "./hooks/useColorScheme"import Navigation from "./navigation"export default function App() { const isLoadingComplete = useCachedResources() const colorScheme = useColorScheme() if (!isLoadingComplete) { return null } else { return ( <> <IconRegistry icons={EvaIconsPack} /> <ApplicationProvider {...eva} theme={eva.light}> <SafeAreaProvider> <Navigation colorScheme={colorScheme} /> <StatusBar /> </SafeAreaProvider> </ApplicationProvider> </> ) }}
PS : Si vous tes intress par la secu et le time management, go check @boutvalentin et ses articles / formations faits avec (et passion) sur tous ses sujets.
PSS : Si vous tes intress par la Cyberscurit, go check @emiliebout et ses articles / formations faits avec passion (et ) sur tous ses sujets.
Original Link: https://dev.to/sidali/expo-react-native-et-ui-kitten-style-avec-plein-de-chatons-22h2
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To