<?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: Kimura, L. 木村</title>
    <description>The latest articles on DEV Community by Kimura, L. 木村 (@kimuradev).</description>
    <link>https://dev.to/kimuradev</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%2F216552%2Fc3df3bde-c5da-4bab-b707-f84a6905fc97.jpg</url>
      <title>DEV Community: Kimura, L. 木村</title>
      <link>https://dev.to/kimuradev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kimuradev"/>
    <language>en</language>
    <item>
      <title>Trusted Web Activity + Android App Bundle</title>
      <dc:creator>Kimura, L. 木村</dc:creator>
      <pubDate>Tue, 17 Sep 2019 00:22:10 +0000</pubDate>
      <link>https://dev.to/kimuradev/trusted-web-activity-android-app-bundle-240n</link>
      <guid>https://dev.to/kimuradev/trusted-web-activity-android-app-bundle-240n</guid>
      <description>&lt;p&gt;Golden tip when publishing your TWA at PlayStore.&lt;/p&gt;

&lt;p&gt;If you didn't see the previous article, about TWA &lt;a href="https://dev.to/kimuradev/trusted-web-activities-54lc"&gt;take a look here.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jyQ5C9yp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kwgxxogen53ycavvpcxy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jyQ5C9yp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kwgxxogen53ycavvpcxy.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today I'm going to talk about a problem that some of you may encounter when publishing an App to the store using the &lt;strong&gt;Android App Bundle format.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For those who do not know, this is the new &lt;a href="https://developer.android.com/platform/technology/app-bundle"&gt;official&lt;/a&gt; model of publishing an application on the Play Store. Through this new format, Google promises &lt;strong&gt;better efficiency&lt;/strong&gt; in builds and releases, as well as &lt;strong&gt;increasing compression&lt;/strong&gt; and &lt;strong&gt;reducing the size&lt;/strong&gt; of your application.&lt;/p&gt;

&lt;p&gt;If you want to know more, I will leave the link below:&lt;br&gt;
&lt;a href="https://developer.android.com/guide/app-bundle/"&gt;https://developer.android.com/guide/app-bundle/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  That said, where do I want to go?
&lt;/h1&gt;

&lt;p&gt;Well, with this new way of publishing, we have a very interesting option to select your &lt;a href="https://support.google.com/googleplay/android-developer/answer/7384423"&gt;app signing&lt;/a&gt; through the Google store itself. And if you did, you need to &lt;strong&gt;replace&lt;/strong&gt; your key generated via Android Studio with the key that was generated on the Play Store, otherwise authentication between your app and your site &lt;strong&gt;will fail&lt;/strong&gt;, and the URL bar will be appearing in your app, similar to the one in the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--niNYDLZ_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/1woyddo8nkm30z7gb6zj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--niNYDLZ_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/1woyddo8nkm30z7gb6zj.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To prevent this from happening, and your TWA looks like a native App, just enter your app's &lt;strong&gt;settings&lt;/strong&gt; on the PlayStore, and in the left side menu look for the &lt;strong&gt;Release Management&lt;/strong&gt; option and select the &lt;strong&gt;App Signing&lt;/strong&gt; option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DzU036ld--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sv8haij2m2l4vo6pa9un.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DzU036ld--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sv8haij2m2l4vo6pa9un.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the right side, you should open a screen like the one below, informing you which is the &lt;strong&gt;SHA-256 Certified Fingerprint&lt;/strong&gt;, which you should replace in your &lt;strong&gt;assetlinks.json&lt;/strong&gt; file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Khvy98mt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/14bc3xths7j8kdhzqmg0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Khvy98mt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/14bc3xths7j8kdhzqmg0.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That done, just &lt;strong&gt;upload&lt;/strong&gt; your json file to your website, and your TWA will be working properly!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FppWhA2r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pajyjhs5rp1fwun1zis2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FppWhA2r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pajyjhs5rp1fwun1zis2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, today was just a quick tip that can help anyone who is experiencing this little problem!&lt;/p&gt;

&lt;p&gt;If you have some question you can find me on twitter &lt;a href="http://twitter.com/kimuradev"&gt;@kimuradev&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;See u guys!&lt;/p&gt;

</description>
      <category>android</category>
      <category>web</category>
      <category>playstore</category>
      <category>app</category>
    </item>
    <item>
      <title>Trusted Web Activities</title>
      <dc:creator>Kimura, L. 木村</dc:creator>
      <pubDate>Thu, 12 Sep 2019 23:56:39 +0000</pubDate>
      <link>https://dev.to/kimuradev/trusted-web-activities-54lc</link>
      <guid>https://dev.to/kimuradev/trusted-web-activities-54lc</guid>
      <description>&lt;p&gt;A new way to integrate your web app with your Android!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D-7fGwQx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/9l17mlfzv9ers5nkoywh.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D-7fGwQx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/9l17mlfzv9ers5nkoywh.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey guys, today I'll tell you a little bit more about TWA.&lt;/p&gt;

&lt;p&gt;But after all, &lt;strong&gt;what is a TWA, why and when to use?&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What is there today?
&lt;/h1&gt;

&lt;p&gt;Well, first of all, it's worth remembering that even before &lt;strong&gt;TWA&lt;/strong&gt;, there are &lt;strong&gt;two other ways&lt;/strong&gt; to integrate our web content into an Android app:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebViews:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WebView is the most used component, mainly because there are some successful frameworks in the market, such as Ionic, that work in this format. With it you have &lt;strong&gt;full-screen&lt;/strong&gt; support of your application, working with &lt;strong&gt;cookies&lt;/strong&gt;, and linking Javascript code to Android code. The downside is that its &lt;strong&gt;performance is compromised&lt;/strong&gt; and varies with each operating system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yg3CqP06--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7eknd5nkt1g50z5gld7i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yg3CqP06--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7eknd5nkt1g50z5gld7i.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chrome Custom Tabs:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chrome Custom Tabs, or &lt;strong&gt;CCT&lt;/strong&gt;, in turn was introduced to Chrome in version 45. And unlike WebView, instead of looking like a full-screen application, the user will see it as an &lt;strong&gt;Activity&lt;/strong&gt; with a custom toolbar. However this customization is &lt;strong&gt;limited&lt;/strong&gt; and the user will always see the content URL. And finally, your app will have no access to web state, such as cookie, storage, etc…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8kba2LNY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/50cwkiipkk9hq4qpsfqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8kba2LNY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/50cwkiipkk9hq4qpsfqc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Cool, so what changes with TWA?
&lt;/h1&gt;

&lt;p&gt;Well, first of all, your TWA will run Chrome in full screen. &lt;strong&gt;And what does that mean?&lt;/strong&gt; It means that for the user it is transparent. It will feel like a &lt;strong&gt;native application&lt;/strong&gt; is actually running. And this is because of the ability to &lt;strong&gt;verify&lt;/strong&gt; that your site and application are &lt;strong&gt;digitally certified&lt;/strong&gt; through &lt;a href="https://developers.google.com/digital-asset-links/v1/getting-started"&gt;&lt;strong&gt;Digital Link Assets&lt;/strong&gt;&lt;/a&gt; (which we talk about in the PWA article), and therefore are reliable.&lt;/p&gt;

&lt;p&gt;TWA also has access to &lt;strong&gt;all Chrome features&lt;/strong&gt; and can perform certain &lt;strong&gt;features&lt;/strong&gt; not possible in WebViews. Some of these features are, for example, push notifications, autofill forms in Chrome, background synchronization, among others.&lt;/p&gt;

&lt;p&gt;And just like CCT, a TWA can &lt;strong&gt;share&lt;/strong&gt; data stored in Chrome, including cookies, as well as share session states, etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Okay, but when and why use it?
&lt;/h1&gt;

&lt;p&gt;Well, there are several situations, where not necessarily an application is the main product of disclosure of your company. A classic example is &lt;strong&gt;shopping sites&lt;/strong&gt;, or market places. The checkout system is often somewhat complex, and is often worth keeping in web format. That's where the &lt;strong&gt;versatility&lt;/strong&gt; that TWA brings.&lt;/p&gt;

&lt;p&gt;You can work on your native application until you checkout. From there you call your site through &lt;strong&gt;Trusted Web Activities&lt;/strong&gt;, perform every checkout operation that already works today, and if you want, go back to the native app to complete the user purchase.&lt;/p&gt;

&lt;p&gt;Well, the idea was to really explain a little bit more about what TWA really is, and what its advantages are.&lt;/p&gt;

&lt;p&gt;Questions, doubts or suggestions are welcome! Just ping me on Twitter for &lt;a href="http://twitter.com/kimuradev"&gt;&lt;strong&gt;@kimuradev&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See ya!&lt;/p&gt;

</description>
      <category>android</category>
      <category>web</category>
      <category>twa</category>
      <category>pwa</category>
    </item>
  </channel>
</rss>
