<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paulo Roberto</title>
    <description>The latest articles on DEV Community by Paulo Roberto (@paoru5444).</description>
    <link>https://dev.to/paoru5444</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F303658%2F84c9ea1d-7431-47ea-afd7-4a464c814172.png</url>
      <title>DEV Community: Paulo Roberto</title>
      <link>https://dev.to/paoru5444</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/paoru5444"/>
    <language>en</language>
    <item>
      <title>Atualizando seu app React Native 👨🏾‍💻</title>
      <dc:creator>Paulo Roberto</dc:creator>
      <pubDate>Tue, 15 Nov 2022 14:28:13 +0000</pubDate>
      <link>https://dev.to/paoru5444/atualizando-seu-app-react-native-lha</link>
      <guid>https://dev.to/paoru5444/atualizando-seu-app-react-native-lha</guid>
      <description>&lt;p&gt;Atualizar um projeto feito em React Native nunca é uma tarefa fácil, principalmente se você já não atualiza seu app a alguns anos, questões como mudanças na arquitetura e no core do RN podem tornar a sua vida bem dificil.&lt;/p&gt;

&lt;p&gt;Porém existem ferramentas essenciais que podem facilitar muito a sua vida na hora do update, nesse artigo vamos falar um pouco sobre elas. Bora?&lt;/p&gt;

&lt;h3&gt;
  
  
  Decidindo a nova versão:
&lt;/h3&gt;

&lt;p&gt;Primeiramente analise a sua versão atual, se o seu projeto está na versão 0.60 por exemplo, precisamos fazer um questionamento, vale a pena ir direto para a 0.70 que conta diversas mudanças na arquitetura do core do React Native?&lt;/p&gt;

&lt;p&gt;Nessas horas vale seguir o exemplo do Jason e ir por partes 🔪, o seguinte link: &lt;a href="https://reactnative.dev/versions" rel="noopener noreferrer"&gt;https://reactnative.dev/versions&lt;/a&gt; é uma lista com a documentação e o changelog de todas as atualizações do React Native versão a versão, da 0.60 até a 0.69.&lt;/p&gt;

&lt;p&gt;Então recomendo que você leia o que mudou, o que você vai precisar alterar para que o seu app continue funcionando normalmente, e assim, evite dores de cabeça atualizando para uma versão com break changes grandes demais.&lt;/p&gt;

&lt;h3&gt;
  
  
  Requerimentos e Políticas das Lojas:
&lt;/h3&gt;

&lt;p&gt;Outra questão importante são os requerimentos das lojas, por exemplo, esse ano a Play Store emitiu um comunicado aonde os apps deveriam ter um nivel de api 31 como requerimento minimo para fazer upload de apps na loja.&lt;/p&gt;

&lt;p&gt;Isso acontece todo ano, mudanças nesses requerimentos e políticas, então o ideal é estar sempre atualizando o seu aplicativo para versões mais recentes e estáveis.&lt;/p&gt;

&lt;p&gt;Link do comunicado da Play Store: &lt;a href="https://developer.android.com/google/play/requirements/target-sdk" rel="noopener noreferrer"&gt;https://developer.android.com/google/play/requirements/target-sdk&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Meus 10 centavos:
&lt;/h3&gt;

&lt;p&gt;Não deixe o seu projeto ficar defasado em relação aos requerimentos das lojas, o pior cenário possível de um update é você ter que fazer as pressas porque senão você ou a sua empresa não consegue lançar novas versões nas lojas.&lt;/p&gt;

&lt;p&gt;É seu dever como desenvolvedor(a) mobile sempre acompanhar esses requerimentos, e antecipar updates para que o seu projeto fique sempre disponível de subir nas lojas.&lt;/p&gt;

&lt;p&gt;Fica a dica 😉&lt;/p&gt;




&lt;h3&gt;
  
  
  Atualizando
&lt;/h3&gt;

&lt;p&gt;Por fim, após seguir os tópicos anteriores e descobrir a versão mais correta e lógica para atualizar seu app, é hora de botar a mão na massa. Para isso existem algumas ferraementas que irão te auxiliar MUITO!&lt;/p&gt;

&lt;h4&gt;
  
  
  React Native Upgrader:
&lt;/h4&gt;

&lt;p&gt;É uma ferramenta do próprio React Native que faz uma análise do seu projeto e atualiza a versão automaticamente. O comando é o seguinte e deve ser digitado no terminal do seu projeto:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx react-native upgrade 0.61.0-rc.0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Embora pareça uma abordagem prática e rápida, isso raramente é o suficiente, projetos tendem a ser complexos com libs externas e internas, com várias dependências que por vezes ficam icompatíveis e que fazem com que essa abordagem automática nem sempre funcione.&lt;/p&gt;

&lt;p&gt;Link para o site: &lt;a href="https://reactnative.dev/docs/upgrading" rel="noopener noreferrer"&gt;https://reactnative.dev/docs/upgrading&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  React Native Upgrade Helper:
&lt;/h4&gt;

&lt;p&gt;É uma ferramenta incrível criada pela comunidade que pega como input 2 versões do React Native, e lista cada mudança necessária para fazer o update de forma manual.&lt;/p&gt;

&lt;p&gt;Recomendo que tire alguns minutos, leia as mudanças de uma versão para outra e então comece a editar o seu projeto.&lt;/p&gt;

&lt;p&gt;O aprendizado sobre os arquivos nativos do React Native é gigante quando precisamos fazer tarefas desse tipo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft141l7o3bvyt8upw7098.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft141l7o3bvyt8upw7098.png" alt="react native upgrade helper" width="800" height="845"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Dependency Management (rnx-kit):
&lt;/h4&gt;

&lt;p&gt;Lembra que eu falei sobre várias dependências que com o tempo acabam ficando incompatíveis com a versão que você quer atualizar e que ao atualizar, irão gerar problemas no build do seu projeto?&lt;/p&gt;

&lt;p&gt;Entonces, essa lib &lt;code&gt;rnx-kit&lt;/code&gt; vai ajudar muito a identificar quais libs são essas e como atualizar elas para a versão compatível.&lt;/p&gt;

&lt;p&gt;E vai por mim, fazer isso manualmente é algo bem massivo, envolve muita leitura de changelog e tentativa e erro para achar uma versão no meio do caminho que é compativel com o seu projeto. Tenho pesadelos com &lt;code&gt;expo-unimodules&lt;/code&gt; até hoje 😭&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u58idvv3dg7gnoe4u0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u58idvv3dg7gnoe4u0n.png" alt="dependency managment" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Bom pessoal, nesse artigo eu trouxe algumas ferramentas e reflexões que foram necessárias para mim quando precisei fazer um update do meu projeto em React Native.&lt;/p&gt;

&lt;p&gt;Eu espero que essas informações consigam alcançar alguem que estaja com a mesma missão em mãos e que precise de um norte.&lt;/p&gt;

&lt;p&gt;No mais um abraço, até a próxima 👋&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>upgrade</category>
      <category>tutorial</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Publicação Gerenciada Manual nas lojas de aplicativos 🚀</title>
      <dc:creator>Paulo Roberto</dc:creator>
      <pubDate>Sat, 29 Oct 2022 15:01:08 +0000</pubDate>
      <link>https://dev.to/paoru5444/publicacao-gerenciada-manual-nas-lojas-de-aplicativos-3j36</link>
      <guid>https://dev.to/paoru5444/publicacao-gerenciada-manual-nas-lojas-de-aplicativos-3j36</guid>
      <description>&lt;p&gt;Olá, me chamo Paulo e atualmente trabalho como desenvolvedor mobile utilizando React Native, muito prazer 👋&lt;/p&gt;

&lt;p&gt;Recentemente no trabalho surgiu uma demanda para subir para ambas as lojas de aplicativos, uma nova versão do aplicativo ao qual eu trabalho.&lt;/p&gt;

&lt;p&gt;Porém um requisito para esse deploy era que após a revisão do aplicativo, o mesmo ficasse ali esperando até o momento do lançamento que seria feito de forma coordenada nas duas lojas no mesmo dia e horário.&lt;/p&gt;

&lt;p&gt;Como não achei uma informação sobre o assunto em cursos, resolvi trazer este artigo com o propósito de compartilhar essa experiência que tive no dia a dia de trabalho.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o termo Deploy:
&lt;/h2&gt;

&lt;p&gt;Entendemos Deploy como o código em produção ou o ato de enviar o mesmo para lá, mas também gosto dessa definição da mesma palavra (Cambridge):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To move soldiers or equipment to a place where they can be used when they are needed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Essa estratégia presente nas lojas serve justamente para isso, preparar o conjunto do deploy e deixar disponivel para subir em um momento mais estratégico. &lt;/p&gt;

&lt;p&gt;Nesse artigo eu vou mostrar como fazer uma pulicação(deploy) gerenciada e manual na play console e na apple store connect, vamos lá? 😉&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Play Console
&lt;/h2&gt;

&lt;p&gt;Para realizar essa configuração no painel da google, primeiro precisamos acessar "Visão geral da publicação" no menu lateral esquerdo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nqht1ejtyu5xkq267i1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nqht1ejtyu5xkq267i1.png" alt="Menu lateral, visão da publicação" width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dentro da tela vai existir uma sessão bem no inicio que diz: Status da publicação gerenciada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0z6ntmq0mgo6hw3tn9p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0z6ntmq0mgo6hw3tn9p.png" alt="Sessão status da publicação gerenciada" width="800" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa sessão indica o status atual da sua &lt;strong&gt;publicação gerenciada&lt;/strong&gt;, podendo alternar entre ativada e desativada, na mesma sessão clique no botão "Ativar sessão gerenciada" e pronto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffttv77vmvnz6hqyfveia.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffttv77vmvnz6hqyfveia.png" alt="Alternar configurações de publicação gerenciada" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lembra do nosso conceito de deploy citado acima? Então, quando a sua versão for aprovada no review, a atualização irá ficar aguardando o lançamento e as mudanças não serão publicadas até que sejam &lt;strong&gt;revisadas, aprovadas e publicadas por meio da página "Publicação gerenciada".&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ℹ️ &lt;em&gt;Vale mencionar também que a forma de gerenciamento pode ser alternada a qualquer momento, inclusive durante a revisão, aonde forma aplicada será aquela &lt;strong&gt;ativa no momento da aprovação do artefato&lt;/strong&gt;, caso desativada o console irá automativamente enviar a nova versão para os usuários.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Apple Store Connect
&lt;/h2&gt;

&lt;p&gt;Na Apple Store o processo é igualmente simples, após criar a sua nova versão no painel&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzraltjupiw053b7lo4l4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzraltjupiw053b7lo4l4.png" alt="Nova versão do app ios" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Você conseguirá visualizar as opções referentes a sua nova versão criada, descendo até o final da listagem de opções, encontraremos a sessão &lt;strong&gt;Liberação da versão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4twflaa7gmp228ld6a5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4twflaa7gmp228ld6a5.png" alt="Sessão liberação da versão nas configurações da versão" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aqui teremos 3 opções, Liberar manualmente, Automaticamente ou Liberar automativamente não antes dê, aonde:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Liberar manualmente esta versão:&lt;/strong&gt; é o gerenciamento que estamos buscando, após a revisão a versão ficara posicionada ali e esperando o momento do deloy que será feita manualmente apertando o botão.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Liberar automativamente esta versão:&lt;/strong&gt; Essa opção de gerenciamento envia a versão para os usuários assim que aprovada nos testes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Liberar automativamente não antes dê:&lt;/strong&gt; Essa opção de gerenciamento envia a versão para os usuários assim que aprovada nos testes e que a data seja maior que a programada no painel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Iremos seguir com a opção: Liberar manualmente, e enviaremos a versão para revisão, assim que aprovada o botão de &lt;strong&gt;Lançamento&lt;/strong&gt; irá aparecer no topo a direita de &lt;strong&gt;App para iOS X.X.X&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ℹ️ &lt;em&gt;Vale lembrar que na apple store, também é permitido editar as configurações da versão até que a .ipa seja aprovada pela equipe de reviwers, caso necessite mudar a estratégia, a loja irá liberar a versão selecionada nas configurações no momento da aprovação, assim como na Google Play Console.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Bom galera, espero ter ajudado pessoas com o mesmo desafio ao apresentar uma ferramenta disponivel no painel de gerenciamento das lojas de aplicativos.&lt;/p&gt;

&lt;p&gt;Esse estilo de publicação pode ser muito util por sinal em casos especificos como esse aonde o lançamento tem data programada e que existe um ar de espectativa entre todos os stakeholders do projeto e que deve ser feito de forma coordenada na data e horário especificados.&lt;/p&gt;

&lt;p&gt;Se você já costuma fazer esse tipo de deploy em loja me conta um pouco aqui como vem sendo a sua experiência, se não, me diga se está planejando algo do tipo no seu proximo deploy. 🚀&lt;/p&gt;

&lt;p&gt;Um abraço! 😁&lt;/p&gt;

&lt;h3&gt;
  
  
  Referências:
&lt;/h3&gt;

&lt;p&gt;Suporte Google: &lt;a href="https://support.google.com/googleplay/android-developer/answer/9859654?hl=pt-BR" rel="noopener noreferrer"&gt;Clique aqui (Link)&lt;/a&gt;&lt;br&gt;
Suporte Apple: &lt;a href="https://help.apple.com/app-store-connect/en.lproj/static.html" rel="noopener noreferrer"&gt;Clique aqui (Link)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>ios</category>
      <category>android</category>
      <category>reactnative</category>
    </item>
  </channel>
</rss>
