1645173480
La implementación de temas es un concepto común en las aplicaciones modernas; Los temas se utilizan para personalizar la apariencia y el estilo de la aplicación.
Como desarrollador, desea implementar este concepto con un enfoque minimalista mientras crea una lógica de integración para cada tema y activo de host. Luego, debe haber una solución estructurada de extremo a extremo para que las aplicaciones se integren fácilmente con estos temas. Finalmente, debe asegurarse de que funcionen de manera rápida y consistente en todos los componentes de su aplicación.
¡Esto puede ser mucho para tener en cuenta! Pero en React Native, hay varios enfoques que puede adoptar para implementar la integración de temas, lo que facilita esta tarea aparentemente difícil. En este artículo, revisaremos algunos de los métodos comunes que puede usar en sus aplicaciones React Native para implementar y cambiar entre los modos oscuro y claro.
Para seguir esta guía, debe tener un conocimiento práctico de React Native y Node.js instalado en su computadora.
Hay dos enfoques para comenzar con un proyecto React Native: React Native CLI y Expo CLI . Usaremos Expo CLI en este artículo.
Primero, necesita instalar Expo CLI en su computadora. Instálalo usando el siguiente comando:
npm install --global expo-cli
Cree una carpeta donde desee que viva el proyecto e inicialice su aplicación React Native con el siguiente comando Expo:
expo init dark_mode_switcher
Seleccione blank : a minimal app as clean as an empty canvas
, luego navegue hasta el dark_mode_switcher
directorio creado una vez que se haya creado la aplicación:
cd dark_mode_switcher
Para iniciar el servidor de desarrollo en iPhone, ejecute:
npm run ios
Abra la aplicación de la cámara y escanee el código QR presente en el terminal, o use la web de herramientas de desarrollo de Expo que se iniciará automáticamente.
Si está utilizando un dispositivo Android, ejecute:
npm run android
Instale la Expo Go
aplicación y luego, en Proyectos , escanee el código QR.
Debería poder ver lo siguiente al iniciar la aplicación en iPhone o Android:
En su App.js
archivo, cambie el texto renderizado a We are on Light mode
. Crearemos un botón que nos permitirá alternar entre modos.
Primero, importe un componente de botón de la react-native
siguiente manera:
import {Button} from "react-native"
Implementar el Button
después del Text
componente:
<Button title="Switch to Dark Mode" onPress={() => null} />
Dar Text
una clase de estilo:
<Text style={styles.text}>We are on Light mode!</Text>
Implemente el estilo en la sección de estilos:
text:{
marginBottom:20
}
Ahora, nuestra aplicación debería verse así:
A continuación, desarrollaremos la capacidad de cambiar entre modos con varios enfoques diferentes, para que pueda elegir la mejor opción para su caso de uso.
Redux es una herramienta de administración de estado que se puede usar en diferentes marcos de JavaScript, como React y React Native. Almacena las configuraciones de estado de sus elementos de IU y le permite almacenar contenedores de estado predecibles.
Podemos usar Redux para almacenar y controlar comportamientos predecibles, como el control del modo claro/oscuro. En esta sección, usaremos Redux para controlar las configuraciones de estado de si estamos en una pantalla de modo claro u oscuro.
Primero, necesitamos tener las bibliotecas react-redux
y redux
instaladas. Ejecute este comando npm para instalar las dependencias necesarias:
npm i react-redux redux
A continuación, cree un redux-store
directorio en el directorio raíz del proyecto para almacenar las constantes, las acciones, la tienda Redux y los reductores.
Las constantes son nombres de estado que le permiten encontrar fácilmente la funcionalidad específica que desea implementar en su aplicación. Para crear la theme
constante, cree un constants.js
archivo dentro del redux-store
directorio. Este archivo albergará la siguiente constante:
export const THEME_CHANGE = 'THEME_CHANGE';
En este caso, queremos cambiar entre los modos claro y oscuro. Por lo tanto, crearemos una switchMode
acción como se describe a continuación.
Primero, cree un actions.js
archivo dentro de redux-store
, luego agregue el siguiente switchMode
bloque de código de acción:
import { THEME_CHANGE } from "./constants";
// switch mode according to what is specified...
export const switchMode = (mode) => {
return {
type: THEME_CHANGE,
payload: mode,
};
};
Un reductor describe cómo sus acciones transforman el estado actual en el siguiente estado. El reductor verifica qué acción ejecutó cada vez que se llama a la acción anterior. En base a esto, el reductor de acción modificará los valores de estado y cambiará el modo según el tipo de acción.
Para configurar reductores, cree un reducers.js
archivo dentro del redux-store
directorio y agregue lo siguiente:
import { THEME_CHANGE } from './constants';
// Initially we will have a light mode
const initialState = {
mode: 'light'
};
// Handle our action of changing the theme
const themeReducer = (state = initialState, action) => {
switch (action.type) {
case THEME_CHANGE:
return {
...state,
mode: action.payload
}
default:
return state;
}
}
export default themeReducer;
La tienda Redux guarda los estados globalizados de sus componentes. Contiene todos los datos (o estado) a los que puede acceder desde cualquier lugar en todos los componentes de su aplicación.
Para configurar una tienda Redux, cree un store.js
archivo dentro de la carpeta redux-store
y configure lo siguiente:
import { createStore, combineReducers } from 'redux';
import themeReducer from './reducers';
// Set up a general reducer.
const rootReducer = combineReducers({
theme: themeReducer
});
// Create a store with the reducer.
const configureStore = () => {
return createStore(rootReducer);
}
// Export the configured store
export default configureStore;
Ahora puede acceder a la tienda en su aplicación. Para hacer eso, navegue hasta el App.js
archivo y adjunte sus componentes con un Provider
que acceda a la tienda como se muestra a continuación:
// Add the necessary imports.
import { Provider } from 'react-redux';
import configureStore from './redux_store/store';
// Initialize the store
const store = configureStore();
// Enclose all of the other components with Provider providing the store
export default function App() {
return (
<Provider store={store}>
...The rest of the code ...
</Provider>
);
}
¡Eso es! Hemos podido configurar Redux y configurarlo en nuestra aplicación. Ahora exploremos cómo usarlo para implementar el modo claro y oscuro.
Ahora usemos el Redux configurado para controlar los modos oscuro y claro. Para comenzar, cree un directorio dentro del directorio raíz del proyecto y asígnele el nombre components
. Dentro del components
directorio, crea un App.js
archivo y sigue estos pasos:
Primero, comience importando los componentes de la siguiente manera:
// view component
import { StatusBar } from 'expo-status-bar';
// component state management
import { useEffect, useState } from 'react';
// view component
import { StyleSheet, Text, View, Button } from 'react-native';
// redux hooks
import { useSelector, useDispatch } from 'react-redux';
// actions
import { switchMode } from '../redux_store/actions';s\
Renderice la siguiente vista con diferentes clases de estilo según el modo de tema:
export default function App() {
// get the current theme
const theme = useSelector(state => state.theme);
// initialize action dispatcher
const dispatch = useDispatch();
// define a component mode state
const [mode, setMode] = useState(theme.mode);// Handle changing the theme mode
const handleThemeChange = () => {
dispatch(switchMode(theme.mode === 'light' ? 'dark' : 'light'));
}
// Update the app Incase the theme mode changes
useEffect(() => {
setMode(theme.mode);
}, [theme]);
// Render a view with different style classes depending on the theme mode
return (
<View style={mode == 'light' ? styles.container_light : styles.container_dark}>
<Text style={mode == 'light' ? styles.text_light : styles.text_dark}>We are on {theme.mode} mode!</Text>
<Button title="Switch Mode" onPress={handleThemeChange} />
<StatusBar style="auto" />
</View>
);
}
Luego, agregue el siguiente estilo a la vista de renderizado:
const styles = StyleSheet.create({
container_light: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
}
,
container_dark: {
flex: 1,
backgroundColor: '#121212',
alignItems: 'center',
justifyContent: 'center',
}
,
text_light: {
marginBottom: 20,
color: '#000'
}
,
text_dark: {
marginBottom: 20,
color: "#fff"
}
}
);
Como se vio arriba, cada elemento tiene su propio estilo basado en los modos oscuro y claro. Para ver el componente que acabamos de crear, debemos renderizarlo desde el App.js
archivo que reside en el directorio raíz del proyecto.
Por lo tanto, actualizaremos el principal App.js
de la siguiente manera, para representar solo el componente que hemos creado anteriormente:
import { Provider } from 'react-redux';
import configureStore from './redux_store/index';
import MainComponent from './components/App';
const store = configureStore();
export default function App() {
return (
<Provider store={store}>
<MainComponent />
</Provider>
);
}
Ahora estamos listos para ver la funcionalidad de la aplicación. Asegúrese de que su servidor de desarrollo esté en funcionamiento. De lo contrario, inicie el servidor usando los comandos npm run ios
y npm run android
según el dispositivo móvil en el que se está ejecutando.
Modo de luz:
Modo oscuro:
La API de contexto es otra herramienta de administración de estado en React y React Native. Al igual que Redux, la API de contexto le permite pasar datos entre diferentes componentes. En nuestro caso, los datos que queremos compartir son los estados del tema.
La API de contexto usa estados para rastrear diferentes valores de aplicación. Por ejemplo, podemos usarlo para almacenar el modo de tema y hacerlo disponible en toda la aplicación.
Para comenzar, cree una carpeta en el directorio raíz del proyecto y asígnele el nombre context-store
. Dentro del context-store
directorio, crea un context.js
archivo y agrega lo siguiente:
// import createContext and useState
import { createContext, useState } from 'react';
// Initiate context
const ThemeContext = createContext();
const ThemeProvider = ({ children }) => {
// Manage theme state
const [theme, setTheme] = useState('light');
return (
<ThemeContext.Provider
value={{ theme, setTheme }}>
{children}
</ThemeContext.Provider>
)
}
export {
ThemeContext,
ThemeProvider
}
Aquí, estamos creando un ThemeContext
usando la createContext()
función. Luego envolvemos el valor predeterminado usando el Provider
. En este caso, el valor por defecto será el estado del tema claro.
Ahora podemos acceder a este estado en el archivo MainComponent
. Navegue hasta el App.js
archivo e importe el ThemeProvider
que acabamos de configurar, que está disponible globalmente en todas las aplicaciones y se puede acceder a él desde cualquier componente.
Luego, envuélvalo MainComponent
en ThemeProvider
algo así:
import {ThemeProvider} from './context-store/context';
Reemplace el Redux
proveedor con ThemeProvider
:
return (
<ThemeProvider>
<MainComponent />
</ThemeProvider>
);
Para obtener los valores establecidos de la API de contexto anterior, navegue hasta el components/App.js
archivo y agregue los siguientes componentes:
import {useContext} from "react";
import {ThemeContext} from '../context-store/context';
Luego, obtenga el tema del contexto actual:
const {theme,setTheme} = useContext(ThemeContext);
A continuación, cambie la handleThemeChange
función establecer el tema en el contexto:
const handleThemeChange = () => {
setTheme(theme === 'light' ? 'dark' : 'light');
}
Asegúrese de que cualquier cambio de tema se capture en la aplicación usando useEffect
:
useEffect(() => {
console.log('theme changed');
}, [theme]);
Finalmente, cambie la vista para que se corresponda con el tema:
return (
<View style={theme == 'light' ? styles.container_light : styles.container_dark}>
<Text style={theme == 'light' ? styles.text_light : styles.text_dark}>We are on {theme} mode!</Text>
<Button title="Switch Mode" onPress={handleThemeChange} />
<StatusBar style="auto" />
</View>
);
En esta etapa, nuestra configuración está completa. Asegúrese de que el servidor de desarrollo se esté ejecutando y verifique su aplicación. Intente cambiar los temas para probar si esto funciona como se esperaba.
Appearance es un módulo básico de React Native para obtener y escuchar cambios de tema en un dispositivo subyacente.
No necesitaremos configurar ningún proveedor en el App.js
archivo raíz para esta implementación. El dispositivo subyacente es el único que controla qué tema se mostrará en su aplicación.
En el components/App.js
archivo, solo necesitaremos importar el useColorScheme
Hook de la react-native
siguiente manera:
import {useColorScheme} from 'react-native';
Luego, desde Hook, obtén el tema actual del dispositivo subyacente:
const theme = useColorScheme();
Finalmente, renderice los componentes basados en ese tema. Debido a que el tema se controlará desde el dispositivo subyacente, no necesitaremos un botón para cambiar:
return (
<View style={theme == 'light' ? styles.container_light : styles.container_dark}>
<Text style={theme == 'light' ? styles.text_light : styles.text_dark}>We are on {theme} mode!</Text>
<StatusBar style="auto" />
</View>
);
Según la configuración de la interfaz de usuario de su dispositivo, debería recibir un tema similar:
Cada vez que cambie el modo de tema en la configuración de su dispositivo móvil, el cambio también debería reflejarse en su aplicación React Native.
React Navigation se usa para escribir navegadores como pilas, pestañas inferiores y navegadores de cajones. Se usa esencialmente para navegar entre diferentes pantallas en las aplicaciones React Native. También podemos usar React Navigation para cambiar a diferentes temas de pantalla.
Comience instalando el paquete así:
npm install @react-navigation/native
React Navigation utiliza el tema predeterminado del dispositivo móvil. Es muy útil, especialmente cuando se trata de múltiples pantallas. Cada pantalla solo cargará la configuración de tema predeterminada en su teléfono.
Para configurar esto, navegue hasta el App.js
archivo raíz del proyecto y agregue las siguientes configuraciones:
// color scheme hook
import {useColorScheme} from 'react-native';
// theme components and the navigation container
import {DarkTheme,DefaultTheme,NavigationContainer} from '@react-navigation/native';
Encapsule la vista NavigationContainer
que proporcionará el componente del tema a la aplicación MainComponent
:
return (
<NavigationContainer theme={scheme === 'dark' ? DarkTheme : DefaultTheme}>
<MainComponent />
</NavigationContainer>
);
La configuración anterior agregará algunos estilos a nuestro componente en función de los valores predeterminados del tema. Por lo tanto, en el components/App.js
archivo, realice los siguientes cambios:
Primero, importa el useTheme
gancho:
// useTheme hook
import {useTheme} from '@react-navigation/native';
A continuación, defina los colores a utilizar en función del tema actual:
const colors = useTheme().colors;
Finalmente, aplique el colors
en la vista. Los colores serán dinámicos según el tema actual:
return (
<View style={{ backgroundColor: colors.card, flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text style={{ color: colors.text }}>We are on {theme} mode!</Text>
<StatusBar style="auto" />
</View>
);
Para probar esta funcionalidad, asegúrese de que el servidor de desarrollo esté activo y funcionando. Su aplicación cargará la configuración predeterminada para los modos claro y oscuro. Debe actualizarlo desde la configuración de la interfaz de usuario de su teléfono para cambiar el tema.
Styled-components crea componentes React reutilizables y le permite escribir el código CSS real en su JavaScript, lo que significa que puede usar todos los componentes que tiene CSS. También podemos usar componentes con estilo para implementar el modo oscuro en React Native.
Comience instalando el paquete:
npm i styled-components
A continuación, navegue hasta el App.js
archivo en la carpeta raíz del proyecto e importe el ThemeProvider
desde styled-components
:
import {ThemeProvider} from 'styled-components';
Luego, defina las propiedades darkTheme
y lightTheme
:
const darkTheme = {
background: "#121212",
foreground: "#fff",
}
const lightTheme = {
background: "#fff",
foreground: "#000",
}
Encapsule el componente con ThemeProvider
, definiendo el tema y las propiedades de la siguiente manera:
return (
<ThemeProvider theme={scheme === 'dark' ? darkTheme : lightTheme}>
<MainComponent />
</ThemeProvider>
);
En el components/App.js
archivo, importe componentes con estilo de la siguiente manera:
importar con estilo desde 'componentes con estilo/nativo';
Ahora, defina componentes con estilo con propiedades dinámicas (fondo y primer plano) según el tema:
const StyledView = styled.View`
background-color: ${props => props.theme.background};
flex:1;
align-items:center;
justify-content:center;
`;
const StyledText = styled.Text`
color: ${props => props.theme.foreground};
`;
Finalmente, devuelva la vista con los componentes con estilo:
return (
<StyledView>
<StyledText>We are on {theme} mode!</StyledText>
<StatusBar style="auto" />
</StyledView>
);
El tema de su aplicación ahora debería responder según el tema establecido actual. Tendrás que cambiar el tema en la configuración de tu teléfono.
Los temas mejoran la experiencia del usuario y la accesibilidad de su aplicación. Por ejemplo, si su aplicación requiere que los usuarios se concentren en la pantalla durante un tiempo prolongado, los usuarios pueden cambiar al modo oscuro para su comodidad. También permite a los usuarios decidir qué apariencia es más cómoda para consumir su contenido.
Eso es todo por esta guía. ¡Espero que la haya encontrado útil!
Enlace: https://blog.logrocket.com/comprehensive-guide-dark-mode-react-native/
1598839687
If you are undertaking a mobile app development for your start-up or enterprise, you are likely wondering whether to use React Native. As a popular development framework, React Native helps you to develop near-native mobile apps. However, you are probably also wondering how close you can get to a native app by using React Native. How native is React Native?
In the article, we discuss the similarities between native mobile development and development using React Native. We also touch upon where they differ and how to bridge the gaps. Read on.
Let’s briefly set the context first. We will briefly touch upon what React Native is and how it differs from earlier hybrid frameworks.
React Native is a popular JavaScript framework that Facebook has created. You can use this open-source framework to code natively rendering Android and iOS mobile apps. You can use it to develop web apps too.
Facebook has developed React Native based on React, its JavaScript library. The first release of React Native came in March 2015. At the time of writing this article, the latest stable release of React Native is 0.62.0, and it was released in March 2020.
Although relatively new, React Native has acquired a high degree of popularity. The “Stack Overflow Developer Survey 2019” report identifies it as the 8th most loved framework. Facebook, Walmart, and Bloomberg are some of the top companies that use React Native.
The popularity of React Native comes from its advantages. Some of its advantages are as follows:
Are you wondering whether React Native is just another of those hybrid frameworks like Ionic or Cordova? It’s not! React Native is fundamentally different from these earlier hybrid frameworks.
React Native is very close to native. Consider the following aspects as described on the React Native website:
Due to these factors, React Native offers many more advantages compared to those earlier hybrid frameworks. We now review them.
#android app #frontend #ios app #mobile app development #benefits of react native #is react native good for mobile app development #native vs #pros and cons of react native #react mobile development #react native development #react native experience #react native framework #react native ios vs android #react native pros and cons #react native vs android #react native vs native #react native vs native performance #react vs native #why react native #why use react native
1593420654
Have you ever thought of having your own app that runs smoothly over multiple platforms?
React Native is an open-source cross-platform mobile application framework which is a great option to create mobile apps for both Android and iOS. Hire Dedicated React Native Developer from top React Native development company, HourlyDeveloper.io to design a spectacular React Native application for your business.
Consult with experts:- https://bit.ly/2A8L4vz
#hire dedicated react native developer #react native development company #react native development services #react native development #react native developer #react native
1616494982
Being one of the emerging frameworks for app development the need to develop react native apps has increased over the years.
Looking for a react native developer?
Worry not! WebClues infotech offers services to Hire React Native Developers for your app development needs. We at WebClues Infotech offer a wide range of Web & Mobile App Development services based o your business or Startup requirement for Android and iOS apps.
WebClues Infotech also has a flexible method of cost calculation for hiring react native developers such as Hourly, Weekly, or Project Basis.
Want to get your app idea into reality with a react native framework?
Get in touch with us.
Hire React Native Developer Now: https://www.webcluesinfotech.com/hire-react-native-app-developer/
For inquiry: https://www.webcluesinfotech.com/contact-us/
Email: sales@webcluesinfotech.com
#hire react native developers #hire dedicated react native developers #hire react native developer #hiring a react native developer #hire freelance react native developers #hire react native developers in 1 hour
1626928787
Want to develop app using React Native? Here are the tips that will help to reduce the cost of react native app development for you.
Cost is a major factor in helping entrepreneurs take decisions about investing in developing an app and the decision to hire react native app developers in USA can prove to be fruitful in the long run. Using react native for app development ensures a wide range of benefits to your business. Understanding your business and working on the aspects to strengthen business processes through a cost-efficient mobile app will be the key to success.
#best react native development companies from the us #top react native app development companies in usa #cost of hiring a react native developer in usa #top-notch react native developer in usa #best react native developers usa #react native
1623299374
React Native allows developers to develop mobile apps that have compatibility with Android, iOS & other operating systems. Due to the features like Native-like functionality and single code reusability and the access of various frameworks in the market, React Native has excelled as the most suitable framework for cross-platform mobile app development.
Why Do Businesses Prefer React Native App Development?
React Native is integrated with JS library that works as the fundamental for developing the app UI. Most businesses choose for developing React Native apps just due to their cross-platform & open-source features. A few further reasons why entrepreneurs & developers choose React Native app development include:
• Lowered Expedition Time
• Simple UI
• Cross-Platform and Code Sharing
• Lesser Workforce and Resources
• Community Assistance
• In-Built Elements and Reusable Codes
• Hot Reload
• JavaScript as Programming Language
• Easy to Execute Updates
Factors That Decide Cost of React Native App Development
If you are an entrepreneur or start-up and looking for cost-effective app development, React Native is one of the ideal options available out there.
• App’s UI/UX Design
• User Authorization
• App Complexity and Functionality
• App Development Team
• App Maintenance
• App Add-ons
• App Distribution
• Location of Development Company
• App Category
React Native cost depends widely on the complexity of a project or the app requirements. The price may also vary based on business requirements. React Native app development per hour can cost from $20 and $30 per hour in India. It can vary as per different locations.
Is React Native a good choice for mobile apps development?
Yes, React Native is the best choice for mobile app development as React apps are faster to develop and it offers better quality than hybrid apps. Additionally, React Native is a mature cross-platform framework.
Best React Native App Development Agency
AppClues Infotech is a leading React Native App Development Company in USA that build robust & innovative mobile app as per your specific business needs. They have a dedicated team of designers and programmers help to make a perfect mobile app.
If you have any mobile app development project in mind get in touch with AppClues Infotech and get the best solution for your business.
#react native app development cost #react native development company #best react native development company in usa #hire react native developers #hire dedicated react native developers & programmers #hire a react native development company