<?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: Rex Serubii</title>
    <description>The latest articles on DEV Community by Rex Serubii (@ultimaterex).</description>
    <link>https://dev.to/ultimaterex</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%2F391483%2Fcb29e3fd-9540-4128-a3e3-fe330f9de947.jpeg</url>
      <title>DEV Community: Rex Serubii</title>
      <link>https://dev.to/ultimaterex</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ultimaterex"/>
    <language>en</language>
    <item>
      <title>Reading ID Cards using your camera</title>
      <dc:creator>Rex Serubii</dc:creator>
      <pubDate>Thu, 21 May 2020 06:38:19 +0000</pubDate>
      <link>https://dev.to/ultimaterex/reading-id-cards-using-your-camera-5e97</link>
      <guid>https://dev.to/ultimaterex/reading-id-cards-using-your-camera-5e97</guid>
      <description>&lt;p&gt;Last Year, I made an android application that allows you to scan Passports and ID cards with your camera and extract all the data from the card's machine readable zones; it was pretty fun to optimize and implement!&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/ultimaterex"&gt;
        ultimaterex
      &lt;/a&gt; / &lt;a href="https://github.com/ultimaterex/Zone-Reader"&gt;
        Zone-Reader
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Simple app that reads identification documents
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Zone Reader&lt;/h1&gt;
&lt;p&gt;Zone Reader is an Android based identification reader application, written in kotlin using firebase and google libraries.&lt;/p&gt;
&lt;h1&gt;
features&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Supports reading from most valid ICAO 9303 documents.&lt;/li&gt;
&lt;li&gt;Supports saving and sharing read data to common formats.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Libraries&lt;/h3&gt;
&lt;p&gt;Zone Reader uses a number of open source projects to work properly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Karumi/Dexter/"&gt;Dexter&lt;/a&gt;- Permissions made easy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://firebase.google.com/" rel="nofollow"&gt;Firebase&lt;/a&gt; - Is what makes this all run.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bumptech/glide"&gt;Glide&lt;/a&gt; - The best image loader I've used so far&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/jetpack/androidx/releases/camera" rel="nofollow"&gt;CameraX&lt;/a&gt; - Great camera class by Google&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CameraKit/camerakit-android"&gt;Camera Kit&lt;/a&gt; - Fallback camera class&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Build for yourself&lt;/h3&gt;
&lt;p&gt;This app requires you to add your own api key and google-services.json, then build it through android studio&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/ultimaterex/Zone-Reader"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I ended up writing it fully in Kotlin in android studio, with Sourcetree as my GUI Git tool. I decided to use Firebase for my OCR and the new alpha CameraX builds to allow it to work without any manual input from the user.&lt;br&gt;
    My initial builds used the CameraKit library to provide basic camera capture for my use case. Once I had figured out how to use the CameraX library, I decided to move it over as a fallback implementation so I didn't have to deprecate it completely. &lt;/p&gt;

&lt;p&gt;Honestly, getting used to the CameraX library with Firebase was a pretty large undertaking since it's still in alpha, but the results were worth it for "on the fly analyzation". I chose to fully write the project in Kotlin, so I could get used to the language. &lt;/p&gt;

&lt;p&gt;Some libraries I used while making it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Karumi/Dexter/"&gt;Dexter&lt;/a&gt;- Permissions made easy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://firebase.google.com/"&gt;Firebase&lt;/a&gt; - What makes this all run.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bumptech/glide"&gt;Glide&lt;/a&gt; - The best image loader I've used so far.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/jetpack/androidx/releases/camera"&gt;CameraX&lt;/a&gt; - A great camera class by Google.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CameraKit/camerakit-android"&gt;Camera Kit&lt;/a&gt; - Fallback camera class.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional Thoughts
&lt;/h2&gt;

&lt;p&gt;Honestly, building this project gave me a newfound love for Kotlin and how easy it was to transition from Java. I would consider writing in Kotlin again for future projects.&lt;/p&gt;

</description>
      <category>octograd2020</category>
      <category>devgrad2020</category>
    </item>
  </channel>
</rss>
