Estamos buscando um desenvolvedor experiente para realizar a migração técnica de um aplicativo móvel existente. O aplicativo foi desenvolvido na versão 0.64 do React Native e utiliza TypeScript. O objetivo é atualizar o projeto para a última versão estável do React Native, garantindo a compatibilidade, estabilidade e desempenho em ambas as plataformas, Android e iOS. O trabalho envolve a análise de dependências, atualização de bibliotecas, refatoração de código para se adequar às novas APIs e funcionalidades, e a execução de testes abrangentes para assegurar que todas as funcionalidades existentes operem corretamente após a migração. É Essencial ter profundo conhecimento em React Native, TypeScript e práticas de desenvolvimento mobile.
Segue abaixo o
package.json para avaliar as bibliotecas e compatibilidade necessárias:
{
"main": "
index.js",
"scripts": {
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"start": "react-native start"
},
"dependencies": {
"@babel/plugin-syntax-bigint": "^7.8.3",
"@react-native-async-storage/async-storage": "^1.17.10",
"@react-native-clipboard/clipboard": "^1.13.2",
"@react-native-community/datetimepicker": "^4.0.1",
"@react-native-community/geolocation": "^2.0.2",
"@react-native-community/netinfo": "^7.1.2",
"@react-navigation/native": "5.8.10",
"@react-navigation/stack": "5.12.8",
"@types/react-native-version-check": "^3.4.5",
"base-64": "^1.0.0",
"big-integer": "^1.6.51",
"buffer": "^5.7.1",
"core-js": "^3.36.1",
"crypto-js": "^3.3.0",
"expo": "~43.0.2",
"expo-localization": "^11.0.0",
"expo-splash-screen": "~0.13.5",
"expo-status-bar": "~1.1.0",
"expo-updates": "~0.10.13",
"intl": "^1.2.5",
"jwt-decode": "3.1.2",
"moment": "^2.29.1",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.4",
"react-native-base64": "0.0.2",
"react-native-camera": "^4.2.1",
"react-native-collapsible": "^1.6.1",
"react-native-countdown-circle-timer": "^3.2.1",
"react-native-dropdown-select-list": "^2.0.5",
"react-native-elements": "^1.2.1",
"react-native-gesture-handler": "~1.10.2",
"react-native-mask-input": "^1.2.3",
"react-native-mask-text": "^0.14.1",
"react-native-masked-text": "^1.13.0",
"react-native-permissions": "^3.1.0",
"react-native-qrcode-scanner": "^1.5.4",
"react-native-reanimated": "~2.2.0",
"react-native-safe-area-context": "^3.3.2",
"react-native-screens": "~3.8.0",
"react-native-step-indicator": "^1.0.3",
"react-native-svg": "12.3.0",
"react-native-version-check": "^3.4.7",
"react-native-version-info": "^1.1.1",
"react-native-web": "0.17.1",
"react-native-wifi-reborn": "^4.7.0",
"react-redux": "^7.2.6",
"redux-persist": "^6.0.0",
"redux-saga": "^1.1.3",
"styled-components": "^5.3.5",
"toggle-switch-react-native": "^3.3.0"
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@types/crypto-js": "^4.1.1",
"@types/jest": "^27.4.1",
"@types/react": "^17.0.43",
"@types/react-native": "^0.67.3",
"@types/react-native-base64": "^0.2.0",
"@types/react-test-renderer": "^17.0.1",
"@types/styled-components-react-native": "^5.1.3",
"jest": "^27.5.1",
"ts-jest": "^27.1.4",
"typescript": "^4.6.3"
},
"private": true,
"prepare": "tsc"
}
Prazo de Entrega: Não estabelecido