├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 React Native Drops 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Native F.A.Q 2 | 3 | Este é um documento colaborativo. Qualquer um pode contribuir mesmo que não faça parte da organização (via fork). 4 | Antes de contribuir, verifique as issues. Escolha uma issue e mãos à obra. 5 | Caso não encontre uma issue para sua contribuição, crie sua issue. 6 | 7 | Junte-se a nós no Telegram também: 8 | 9 | React Native Drops - https://t.me/reactnativedrops 10 | 11 | 12 | ## Expo (https://expo.io/) 13 | 14 | ### O que é Expo? 15 | 16 | Expo (antigo Exponent) é um conjunto de ferramentas e bibliotecas open source (toolchain) construído em cima do React Native. 17 | 18 | Seu objetivo principal é auxiliar na construção de aplicações nativas em iOS e Android usando Javascript e React. 19 | Além das ferramentas e bibliotecas, uma série de serviços foram incorporados/integrados ao Expo - push notifications e publicação nas lojas de apps são um exemplo. 20 | 21 | ### Quais as vantagens de se usar Expo? 22 | 23 | - Facilidade para iniciantes: usando Expo, você não precisa quebrar a cabeça instalando e configurando o XCode, Android Studio (que praticamente 99% das pessoas batem cabeça). 24 | 25 | - Agilidade de desenvolvimento: o conjunto de ferramentas, facilita e agiliza bastante o ciclo de desenvolvimento. 26 | 27 | - APIs e bibliotecas integradas no Expo SDK: as necessidades básicas de uma app são supridas pelo Expo SDK - tudo isso sem ter que fazer link de bibliotecas nativas. 28 | 29 | 30 | ### Quando não usar Expo? 31 | 32 | Expo não está pronto mas está em constante evolução. Algumas bibliotecas e APIs ainda não são suportadas como por exemplo, suporte a bluetooth. Nesse caso, você terá que fazer um 'eject' e usar React Native puro. Por isso, é importante levantar estes requisitos não-funcionais antes decidir usar Expo. 33 | 34 | Outra deficiência do Expo, pelo menos por enquanto, é que ele não suporta código rodando em background. Ou seja, se você precisa fazer tracking de geolocalização em background, tocar aúdio em backeground, gerenciar push notifications em background, esqueça o Expo. Mas é bom saber que essa feature está em desenvolvimento e será liberada em breve. 35 | 36 | Outra coisa, se você precisa muito que seu binário de seu app seja muito pequeno, atenção. Qualquer app feito com Expo terá 25mb (iOS) ou 20mb (Android). Por que isso? Bom, Expo inclui uma série de bibliotecas no Expo SDK. E mesmo que você use apenas uma delas (notificações, por exemplo), você carregará todo o restante das bibliotecas no pacote final. A boa notícia que isso já está sendo tratado e em breve seus apps serão mais "magros". 37 | 38 | E por último, se você quiser usar um serviço especfico de push notification, OneSignal por exemplo, e não o serviço de Push Notification do Expo, você vai precisar usar [ExpoKit](https://docs.expo.io/versions/latest/guides/expokit.html) ou React Native puro. 39 | 40 | 41 | 42 | --------------------------------------------------------------------------------