<?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>Forem: moagggi</title>
    <description>The latest articles on Forem by moagggi (@moagggi).</description>
    <link>https://forem.com/moagggi</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%2F22271%2F6dedf458-d423-4fcc-9878-16ff53e4a2b9.png</url>
      <title>Forem: moagggi</title>
      <link>https://forem.com/moagggi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/moagggi"/>
    <language>en</language>
    <item>
      <title>DO backed static random number generator</title>
      <dc:creator>moagggi</dc:creator>
      <pubDate>Sun, 10 Jan 2021 14:18:30 +0000</pubDate>
      <link>https://forem.com/moagggi/do-backed-static-random-number-generator-56ao</link>
      <guid>https://forem.com/moagggi/do-backed-static-random-number-generator-56ao</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I built an Random Number Generator for the purpose of getting known to DO App Platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;Random Roulette&lt;/p&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://dt-do-app-platform-hackathon-evut5.ondigitalocean.app/"&gt;https://dt-do-app-platform-hackathon-evut5.ondigitalocean.app/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pSwBhuhH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m0wmyb6vrws89tj9snb4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pSwBhuhH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m0wmyb6vrws89tj9snb4.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;The UI is pretty basic but it fulfills the needs.&lt;br&gt;
It looks and works like a RNG, so it must be a RNG!&lt;br&gt;
Hopefully the UI is wacky enough for the submission category!&lt;/p&gt;
&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/moagggi"&gt;
        moagggi
      &lt;/a&gt; / &lt;a href="https://github.com/moagggi/dt_do_app__platform_hackathon"&gt;
        dt_do_app__platform_hackathon
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
dt_do_app__platform_hackathon&lt;/h1&gt;
&lt;p&gt;A random number generator as a submission to the DigitalOcean App Platform on DEV.to&lt;/p&gt;
&lt;p&gt;Read the full submission under: &lt;a href="https://dev.to/devteam/announcing-the-digitalocean-app-platform-hackathon-on-dev-2i1k" rel="nofollow"&gt;https://dev.to/devteam/announcing-the-digitalocean-app-platform-hackathon-on-dev-2i1k&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cloud.digitalocean.com/apps/new?repo=https://github.com/moagggi/dt_do_app__platform_hackathon/tree/main" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/df21703b4229f8d44f76c2d56073657a4ab450ca4566ba5d24d05bf528c298f8/68747470733a2f2f7777772e6465706c6f79746f646f2e636f6d2f646f2d62746e2d626c75652e737667" alt="Deploy to DO"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/moagggi/dt_do_app__platform_hackathon"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://choosealicense.com/licenses/mit/"&gt;MIT&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;I've already published other RNG apps to get known to new techniques and actually had a successful extended RNG.&lt;br&gt;
It's just super easy to get some basic knowledge about a new language/stack by replicating something you already know.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it
&lt;/h3&gt;

&lt;p&gt;The RNG itself is a simple descriptive html page with inline javascript. This makes it perfectly fitted for the "static site" deployment through DO App Platform.&lt;br&gt;
Though I didn't know about DO's App Platform before, the process from first commit to deployment is pretty straightforward and easy. It took me under 5 minutes to get DO up and running! Sweet :)&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;p&gt;Although the result will never be best-of-class, such a simple project always encourages me to learn new things - in an easy way. Once you've digged deep enough into a new thematic, you're always free to "come back" and improve the initial try.&lt;/p&gt;

&lt;p&gt;If you never start, you never level up!&lt;/p&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>Web Monetization API Wrapper for Android WebView</title>
      <dc:creator>moagggi</dc:creator>
      <pubDate>Thu, 21 May 2020 23:26:07 +0000</pubDate>
      <link>https://forem.com/moagggi/android-webview-javascriptinterface-web-monetization-api-events-wrapper-using-java-5cog</link>
      <guid>https://forem.com/moagggi/android-webview-javascriptinterface-web-monetization-api-events-wrapper-using-java-5cog</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I built a Web Monetization API events wrapper JavascriptInterface for Android WebView using Java.&lt;br&gt;
The usage and logic is quite the same as with the JavaScript API, as the events are actually the same. :)&lt;/p&gt;

&lt;p&gt;Getting the events wrapped on the Java side in the end is as easy as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;WebMonetizationWrapper&lt;/span&gt; &lt;span class="n"&gt;wrapper&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;WebMonetizationWrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createAndAddInterface&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webview&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;wrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addPendingEventHandler&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/*your Handler*/&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;wrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addStartEventHandler&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/*your Handler*/&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;wrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addStopEventHandler&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/*your Handler*/&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;wrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addProgressEventHandler&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/*your Handler*/&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Submission Category:
&lt;/h2&gt;

&lt;p&gt;Foundational Technology&lt;/p&gt;
&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/moagggi"&gt;
        moagggi
      &lt;/a&gt; / &lt;a href="https://github.com/moagggi/AndroidWebMonetizationWrapper"&gt;
        AndroidWebMonetizationWrapper
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A WebMonetization API Wrapper for Android
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
AndroidWebMonetizationWrapper&lt;/h1&gt;
&lt;p&gt;A WebMonetization API Wrapper for Android&lt;/p&gt;
&lt;h2&gt;
Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Any Android IDE&lt;/li&gt;
&lt;li&gt;GSON Dependency &lt;code&gt;com.google.code.gson:gson:__current_version__&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;div class="highlight highlight-source-java"&gt;&lt;pre&gt;&lt;span class="pl-smi"&gt;WebView&lt;/span&gt; webview &lt;span class="pl-k"&gt;=&lt;/span&gt; &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-smi"&gt;WebView&lt;/span&gt;(context);
webview&lt;span class="pl-k"&gt;.&lt;/span&gt;getSettings()&lt;span class="pl-k"&gt;.&lt;/span&gt;setJavaScriptEnabled(&lt;span class="pl-c1"&gt;true&lt;/span&gt;);

&lt;span class="pl-smi"&gt;WebMonetizationWrapper&lt;/span&gt; wrapper &lt;span class="pl-k"&gt;=&lt;/span&gt; &lt;span class="pl-smi"&gt;WebMonetizationWrapper&lt;/span&gt;&lt;span class="pl-k"&gt;.&lt;/span&gt;createAndAddInterface(webview);
wrapper&lt;span class="pl-k"&gt;.&lt;/span&gt;addPendingEventHandler(&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;/*&lt;/span&gt;your Handler&lt;span class="pl-c"&gt;*/&lt;/span&gt;&lt;/span&gt;);
wrapper&lt;span class="pl-k"&gt;.&lt;/span&gt;addStartEventHandler(&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;/*&lt;/span&gt;your Handler&lt;span class="pl-c"&gt;*/&lt;/span&gt;&lt;/span&gt;);
wrapper&lt;span class="pl-k"&gt;.&lt;/span&gt;addStopEventHandler(&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;/*&lt;/span&gt;your Handler&lt;span class="pl-c"&gt;*/&lt;/span&gt;&lt;/span&gt;);
wrapper&lt;span class="pl-k"&gt;.&lt;/span&gt;addProgressEventHandler(&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;/*&lt;/span&gt;your Handler&lt;span class="pl-c"&gt;*/&lt;/span&gt;&lt;/span&gt;);

webview&lt;span class="pl-k"&gt;.&lt;/span&gt;setWebViewClient(&lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-smi"&gt;WebViewClient&lt;/span&gt;() {
    &lt;span class="pl-k"&gt;@Override&lt;/span&gt;
    &lt;span class="pl-k"&gt;public&lt;/span&gt; &lt;span class="pl-k"&gt;void&lt;/span&gt; &lt;span class="pl-en"&gt;onPageFinished&lt;/span&gt;(&lt;span class="pl-smi"&gt;WebView&lt;/span&gt; &lt;span class="pl-v"&gt;view&lt;/span&gt;, &lt;span class="pl-smi"&gt;String&lt;/span&gt; &lt;span class="pl-v"&gt;url&lt;/span&gt;) {
        &lt;span class="pl-c1"&gt;super&lt;/span&gt;&lt;span class="pl-k"&gt;.&lt;/span&gt;onPageFinished(view, url);
        &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;//&lt;/span&gt;attach after every page load&lt;/span&gt;
        wrapper&lt;span class="pl-k"&gt;.&lt;/span&gt;attach(view);
    }
});&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
Additional&lt;/h2&gt;
&lt;p&gt;See &lt;a href="https://webmonetization.org/docs/api" rel="nofollow"&gt;https://webmonetization.org/docs/api&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/moagggi/AndroidWebMonetizationWrapper"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;I built a small demo app around the wrapper, for testing, with a TextView, Button and a WebView (the white area with 5 buttons).&lt;br&gt;
As the demo app just mimics/polyfills the embed Web Monetization browser/extension logic the demo app has to be manually initialized and attached via two button clicks (init, attach).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9-yId61Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e4dnl2g3s2njknptwztd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9-yId61Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e4dnl2g3s2njknptwztd.jpg" alt="First screen with init and attach button"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;IRL no polyfill is needed, as the API is then already populated (or absent) from the start.&lt;/p&gt;

&lt;p&gt;After initialization and attaching, the API events are the same as &lt;em&gt;you wouldn't get from any other guy&lt;/em&gt; (c). I mean, legit Web Monetization API. &lt;/p&gt;

&lt;p&gt;There is the stopped alas pre-pending state&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fnu-a8yk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nvzh0ywnc3a1d3nog6ga.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fnu-a8yk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nvzh0ywnc3a1d3nog6ga.jpg" alt="pre-pending state screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;as well as the then following pending state with event data&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rJsgjx9r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vaby17dbs0usbwmcxo8o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rJsgjx9r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vaby17dbs0usbwmcxo8o.jpg" alt="pending state screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The data ATM is the same (despite the event name) for pending, started&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WEK8x4XJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zhayq602fo6lke9sewkb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WEK8x4XJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zhayq602fo6lke9sewkb.jpg" alt="started state screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and stopped&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_4-NJ2XV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kxkcam8jfnwu2ljlq30s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_4-NJ2XV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kxkcam8jfnwu2ljlq30s.jpg" alt="stopped state screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then there's also the progress event between with the current fragment and the total (that's the manual sum of all previous fragments)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YEFJRfLL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ztgjsuffixjp5mh4gcg6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YEFJRfLL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ztgjsuffixjp5mh4gcg6.jpg" alt="progress screen"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;I basically started with noting the event names and data as well as creating the needed String constants and separate Java sub- and super-classes.&lt;/p&gt;

&lt;p&gt;After that I created the Java side Handler register and invoke logic.&lt;/p&gt;

&lt;p&gt;Finally I've written the JavaScript code registering all events, that's wrapping them and passing it through to the Java side.&lt;/p&gt;

&lt;p&gt;It is important to re-attach the wrapper after each page load, something fast accomplished with the next lines&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;webview&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setWebViewClient&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WebViewClient&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onPageFinished&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;WebView&lt;/span&gt; &lt;span class="n"&gt;view&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onPageFinished&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;view&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;//attach after every page load&lt;/span&gt;
        &lt;span class="n"&gt;wrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;attach&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;view&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now you're having the Web Monetization events fully in your Android app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources/Info
&lt;/h2&gt;

&lt;p&gt;See &lt;a href="https://webmonetization.org/docs/api#browser-events"&gt;https://webmonetization.org/docs/api#browser-events&lt;/a&gt; for more.&lt;/p&gt;

&lt;p&gt;(c) RCA / Rick Astley&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>gftwhackathon</category>
      <category>webmonetization</category>
      <category>webview</category>
    </item>
    <item>
      <title>Starting working on my new Hackathon project</title>
      <dc:creator>moagggi</dc:creator>
      <pubDate>Tue, 12 May 2020 23:02:35 +0000</pubDate>
      <link>https://forem.com/moagggi/starting-working-on-my-new-hackothon-project-knm</link>
      <guid>https://forem.com/moagggi/starting-working-on-my-new-hackothon-project-knm</guid>
      <description>&lt;p&gt;I'm excited that I am starting on building a Java Wrapper (for Android) for the inbuilt WebView creating a JavaScriptInterface that's able to expose the JavaScript API to Java.&lt;/p&gt;

&lt;p&gt;The repo on GitHub is already live and I start creating the code.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/moagggi"&gt;
        moagggi
      &lt;/a&gt; / &lt;a href="https://github.com/moagggi/AndroidWebMonetizationWrapper"&gt;
        AndroidWebMonetizationWrapper
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A WebMonetization API Wrapper for Android
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Stay tuned and good luck on your submissons, too!&lt;/p&gt;

</description>
      <category>gftwhackathon</category>
    </item>
    <item>
      <title>Integrating Finnhub.io with Twilio</title>
      <dc:creator>moagggi</dc:creator>
      <pubDate>Thu, 30 Apr 2020 20:33:31 +0000</pubDate>
      <link>https://forem.com/moagggi/integrating-finnhub-io-with-twilio-5da</link>
      <guid>https://forem.com/moagggi/integrating-finnhub-io-with-twilio-5da</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I built a Integration for Twilio to get the current stocks quote from my favourite api Provider.&lt;/p&gt;

&lt;p&gt;As there was no app using the already published api from Finnhub that fitted my Needs, I thought this would be the perfect fit.&lt;/p&gt;

&lt;p&gt;Instead of making a complete app myself, I decided to use this correlation, to use a Twilio Integration. The result should work on-the-go, be easy to use, be easy to implement and most importantly, work in rural Areas without excessive mobile Network Access.&lt;/p&gt;

&lt;p&gt;This were the reasons to use the Twilio Service with SMS capability.&lt;br&gt;
The result fitted all my needs, was easy to create and even works without Internet Access. In the end using SMS for the request initiation fitted perfectly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Category Submission:
&lt;/h2&gt;

&lt;p&gt;Interesting Integrations&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/moagggi/twilio-dev_to"&gt;https://github.com/moagggi/twilio-dev_to&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;I used the awesome prebuilt official PHP SDK from Twilio with no issues, as well as the inbuilt PHP functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources/Info
&lt;/h2&gt;

&lt;p&gt;To successfully deploy the project you need a self controlled PHP environment, as well as an API-Key from Finnhub.io (get one there, it's free).&lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>twilio</category>
      <category>finnhub</category>
    </item>
  </channel>
</rss>
