<?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: Mustufa Ansari</title>
    <description>The latest articles on DEV Community by Mustufa Ansari (@mustufa786).</description>
    <link>https://dev.to/mustufa786</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%2F471850%2Fa41b8fcd-f99d-42b6-a020-de900b1c50a1.jpeg</url>
      <title>DEV Community: Mustufa Ansari</title>
      <link>https://dev.to/mustufa786</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mustufa786"/>
    <language>en</language>
    <item>
      <title>New Article - Coming Soon! </title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Thu, 26 Nov 2020 15:53:20 +0000</pubDate>
      <link>https://dev.to/mustufa786/new-article-coming-soon-15b7</link>
      <guid>https://dev.to/mustufa786/new-article-coming-soon-15b7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tDB5kh9f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w0sj1adunlr5fhci7ahj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tDB5kh9f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w0sj1adunlr5fhci7ahj.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
A new article is on the way which is about how you can implement Google Place Autocomplete API using retrofit - Dagger and none other than Google's recommended architectural pattern which is MVVM :)&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>java</category>
    </item>
    <item>
      <title>TextInputLayout Form Validation Using Data Binding in Android</title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Wed, 11 Nov 2020 11:52:15 +0000</pubDate>
      <link>https://dev.to/mustufa786/textinputlayout-form-validation-using-data-binding-in-android-8gf</link>
      <guid>https://dev.to/mustufa786/textinputlayout-form-validation-using-data-binding-in-android-8gf</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F1%2ATJMlSskm4YqOhY2WDz5UkA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F1%2ATJMlSskm4YqOhY2WDz5UkA.jpeg" alt="Photo by Christian Wiediger on Unsplash."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Afew days ago, I was working on a project where I had to implement form validation on &lt;code&gt;textInputLayout&lt;/code&gt; and &lt;code&gt;textInputEditText&lt;/code&gt; using data binding. &lt;br&gt;
Unfortunately, there is not enough documentation available for that.&lt;/p&gt;

&lt;p&gt;Finally, I achieved what I wanted through some research and experiments. This is what I wanted to achieve:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2AtpxwSUlj1viqJ2_3orsMFw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2AtpxwSUlj1viqJ2_3orsMFw.gif" alt="final design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2A7GTwESwDJZ_JQ-psn05XbQ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2A7GTwESwDJZ_JQ-psn05XbQ.gif" alt="final design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I know there are many developers who want the same actions and user-friendly behaviour on forms. &lt;/p&gt;

&lt;p&gt;Let’s get started.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Are We Going to Use?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kotlin&lt;/li&gt;
&lt;li&gt;Data binding&lt;/li&gt;
&lt;li&gt;Material library&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am going to break the whole project down into steps to make it easy for you to understand.&lt;/p&gt;

&lt;p&gt;Set up the initial project and enable data-binding from &lt;code&gt;build.gradle(:app)&lt;/code&gt; by adding this line under the android{} tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataBinding{
    enabled true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To use &lt;code&gt;textInputLayout&lt;/code&gt; and &lt;code&gt;textInputEditText&lt;/code&gt;, you need to enable Material support for Android by adding this dependency in &lt;code&gt;build.gradle(:app)&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;implementation 'com.google.android.material:material:1.2.1'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Let’s make a layout of our form. I am making it simple because my goal is to define the core functional part of this feature rather than designing the layout.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/better-programming/android-free-courses-3b550ce388e6" rel="noopener noreferrer"&gt;Roadmap to Becoming a Successful Android Developer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I made this simple layout:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1000%2F1%2AccIBxJqJIIPFdx9XNLPVrQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1000%2F1%2AccIBxJqJIIPFdx9XNLPVrQ.png" alt="layout"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the &lt;code&gt;activity_main.xml&lt;/code&gt;:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;Our layout is ready. Let’s do some coding now.&lt;/p&gt;

&lt;p&gt;If you look at the GIF of the final app (earlier in the article), you will see how errors are showing and hiding accordingly as the conditions become true. &lt;/p&gt;

&lt;p&gt;This is because I have bound each text field with &lt;code&gt;TextWatcher&lt;/code&gt;, which continuously calls as a user types something in the field.&lt;/p&gt;

&lt;p&gt;Here, I have made a class inside MainActivity.kt that inherits from &lt;code&gt;TextWatcher&lt;/code&gt;:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Don’t worry about &lt;code&gt;view&lt;/code&gt;, which is passing in the constructor of the class. I will define it later.&lt;/p&gt;

&lt;p&gt;Here is the main part. Each text field has some conditions that need to be true before submitting the form. So, the code for each text field condition is as follows:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Now it’s time to bind each text field with the &lt;code&gt;textWatcher&lt;/code&gt; class that we created earlier:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;But how would &lt;code&gt;TextFieldValidation&lt;/code&gt; know which text field to bind? Scroll up and have a look at the comment that I have mentioned inside the &lt;code&gt;TextFieldValidation&lt;/code&gt; method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// checking ids of each text field and applying functions accordingly.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Notice I am passing a view inside the constructor of TextFieldValidation, the class that is responsible for segregating each text field and applying each of the methods above like this:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;Your final &lt;code&gt;MainActivity.kt&lt;/code&gt; would look like this:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2AtpxwSUlj1viqJ2_3orsMFw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2AtpxwSUlj1viqJ2_3orsMFw.gif" alt="final product"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2A7GTwESwDJZ_JQ-psn05XbQ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F640%2F1%2A7GTwESwDJZ_JQ-psn05XbQ.gif" alt="final product"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can download the complete source code for this project below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Mustufa786/TextInputLayout-FormValidation" rel="noopener noreferrer"&gt;Download Code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you have learned something new. Stay tuned for more articles like this. Happy coding!&lt;/p&gt;

</description>
      <category>android</category>
      <category>java</category>
      <category>kotlin</category>
      <category>programming</category>
    </item>
    <item>
      <title>Custom Error Screen Instead of Default Crash Dialog — Android</title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Sat, 07 Nov 2020 18:42:54 +0000</pubDate>
      <link>https://dev.to/mustufa786/custom-error-screen-instead-of-default-crash-dialog-android-h93</link>
      <guid>https://dev.to/mustufa786/custom-error-screen-instead-of-default-crash-dialog-android-h93</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3qzn1mddkju7oc5ktzcm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3qzn1mddkju7oc5ktzcm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I don’t know about you but I feel very embarrassed when I deliver an app to tester or client for testing and it get crash. That moment is very painful for me.&lt;/p&gt;

&lt;p&gt;I personally don’t like that crash alert dialog that appears when my app gets crash. So I found an interesting library that will show an error screen instead of an error dialog.&lt;/p&gt;

&lt;p&gt;Let’s get started.&lt;/p&gt;

&lt;p&gt;What I’m going to use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kotlin&lt;/li&gt;
&lt;li&gt;Android Studio&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Ereza/CustomActivityOnCrash" rel="noopener noreferrer"&gt;Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After creating a new project add this dependency in your &lt;code&gt;build.gradle(:app)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;implementation 'cat.ereza:customactivityoncrash:2.3.0'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I am making my custom crash layout. Like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1000%2F1%2ANSCivDY6GYAS8EiahMPEZg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1000%2F1%2ANSCivDY6GYAS8EiahMPEZg.png" alt="layout"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I downloaded this error image from &lt;a href="https://icons8.com/illustrations/illustration/pixeltrue-error" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Let’s do some coding part to catch the crash event and show custom screen instead of android default dialog.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Now you need to make an application class that will register in the android manifest to register crash library globally in-app.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Add this class in &lt;code&gt;AndroidManifest.xml&lt;/code&gt; using &lt;code&gt;name&lt;/code&gt; attribute.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F1%2AD4JvY_qoWzO9OQR_8lzJxQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F1%2AD4JvY_qoWzO9OQR_8lzJxQ.png" alt="AndroidManifest.xml"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now moving towards &lt;code&gt;MainActivity.kt&lt;/code&gt; to see this in action. We need to crash our app to see the crash screen. I am implementing a crashing code in my &lt;code&gt;onCreate&lt;/code&gt; method.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var array = mutableListOf&amp;lt;String&amp;gt;()
array[0] = "Hello"
findViewById&amp;lt;TextView&amp;gt;(R.id.textView).text = array[1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will crash my app as this code will generate &lt;code&gt;IndexOutOfBoundException&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Let’s run the app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F434%2F1%2AxQDZCptr2wjoxDQtJLQBFQ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F434%2F1%2AxQDZCptr2wjoxDQtJLQBFQ.gif" alt="final app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Download Source code from &lt;a href="https://github.com/Mustufa786/CustomCrashActivity" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>android</category>
      <category>java</category>
      <category>kotlin</category>
      <category>programming</category>
    </item>
    <item>
      <title>Multiple Polygons on google Map</title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Thu, 05 Nov 2020 06:59:14 +0000</pubDate>
      <link>https://dev.to/mustufa786/multiple-polygons-on-google-map-1kmh</link>
      <guid>https://dev.to/mustufa786/multiple-polygons-on-google-map-1kmh</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6HZzQ037--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tkperc1luqo4ju0i8nbc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6HZzQ037--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tkperc1luqo4ju0i8nbc.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Working on google maps nowadays for a client of our company. Client's requirement is to show multiple areas in which they are giving services. Each area has a specific store.&lt;br&gt;
The challenge was to make sure the user location must exist within the area.&lt;/p&gt;

&lt;p&gt;Once the user selects the area I have to make sure to select the store of that area as well. That was quite challenging for me.&lt;/p&gt;

&lt;p&gt;Have you ever worked on Polygon stuff on google map? Share your experience.&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Have you ever worked on AWS Cognito?</title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Tue, 03 Nov 2020 20:12:25 +0000</pubDate>
      <link>https://dev.to/mustufa786/have-you-ever-work-on-aws-cognito-471a</link>
      <guid>https://dev.to/mustufa786/have-you-ever-work-on-aws-cognito-471a</guid>
      <description>&lt;p&gt;Recently, I got a chance to work on AWS Cognito in android app. It took me 2 days to get it done because there is no proper documentation available on the internet. No repository available on Github that could define the complete implementation of Cognito in an app.&lt;/p&gt;

&lt;p&gt;But after doing a lot of research and experiments, I successfully implemented it.&lt;/p&gt;

&lt;p&gt;If you are thinking to work on Cognito in your next android app that is something I would cover in my next article on medium. Stay connected ;)&lt;/p&gt;

&lt;p&gt;Medium Account: &lt;a href="https://medium.com/@mustufaansari"&gt;Mustufa Ansari&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>android</category>
    </item>
    <item>
      <title>5 Best Android App Development Books</title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Tue, 03 Nov 2020 06:05:15 +0000</pubDate>
      <link>https://dev.to/mustufa786/5-best-android-app-development-books-1g2m</link>
      <guid>https://dev.to/mustufa786/5-best-android-app-development-books-1g2m</guid>
      <description>&lt;p&gt;Top Android Development Books! Learning Android is Easy now!&lt;/p&gt;

&lt;p&gt;Android development is without any doubt one of the most reliable career options available right now.&lt;br&gt;
With new advancements being made in technology with every passing hour, android development has a vast future in the market.&lt;/p&gt;

&lt;p&gt;But, there is obviously one problem anyone can face while opting for this field. Which is how to take the first step into this world of app development and conquer it.&lt;br&gt;
In the following article, we have put down eight of the most useful and helpful books for learning android app development in 2020.&lt;/p&gt;

&lt;p&gt;Let's get going!&lt;/p&gt;

&lt;h2&gt;
  
  
  1) Android Studio 3.0 Development Essentials - Android 8 Edition
&lt;/h2&gt;

&lt;p&gt;Being an all-rounder book, Android Studio 3.0 given a great introduction to producing Android applications. With more than 700 pages, it covers almost everything you need to know about programming.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pVgCbt_F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.engbookspdf.com/uploads/original/Android-Studio-Development-Essentials.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pVgCbt_F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.engbookspdf.com/uploads/original/Android-Studio-Development-Essentials.png" alt="Android Studio 3.0 Development Essentials"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It covers almost everything, including; development environment to printing and database management, architecture and design to multimedia aspects.&lt;/p&gt;

&lt;p&gt;It discusses everything in detail and makes sure you have a strong base in order to build a programming future.&lt;/p&gt;

&lt;h2&gt;
  
  
  2) Head First Android Development: A Brain-Friendly Guide
&lt;/h2&gt;

&lt;p&gt;Head First comes with a strong focus on graphical and easy-to-understand language, rather than the basic and textual information.&lt;/p&gt;

&lt;p&gt;The main aim of this book is to help the readers to learn and understand the new concepts and make sure the concepts stay with them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kBMWFL0Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1328761643l/9625998.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kBMWFL0Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1328761643l/9625998.jpg" alt="Head First Android Development: A Brain-Friendly Guide"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The book also comes with a key book, which is referenced a lot of times in the course in different ways to help with it. The book comes with a lot of diagrams, flowcharts, and tidbits to help with what is written.&lt;/p&gt;

&lt;h2&gt;
  
  
  3) Android Programming: The Big Nerd Ranch Guide
&lt;/h2&gt;

&lt;p&gt;This book has been written by Big Nerd Ranch, who has been giving intensive boot camps for developers. They have combined all the camps into a book form for guiding new programmers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kaTKqpxm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.informit.com/ShowCover.aspx%3Fisbn%3D0134706056" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kaTKqpxm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.informit.com/ShowCover.aspx%3Fisbn%3D0134706056" alt="Android Programming: The Big Nerd Ranch Guide"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This book does not require any previous Android development experience, just a bit of Java knowledge, in order to focus on Android elements.&lt;/p&gt;

&lt;p&gt;The book takes the help of images and examples to explain every topic. It is a must for you if you are new to Android development.&lt;/p&gt;

&lt;h2&gt;
  
  
  4)Android Development for Gifted Primates: A Beginner's Guide
&lt;/h2&gt;

&lt;p&gt;This book is basically a great and interesting option to consider. The writer often uses strong language to explain certain things and is never afraid to express an opinion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YfcD0EDf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1532854786l/40973316._SY475_.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YfcD0EDf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1532854786l/40973316._SY475_.jpg" alt="Android Development for Gifted Primates: A Beginner's Guide"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This book takes the learner from the basics to completing their first task. It is available in a hard-form, as well as an E-Book. This book requires only some basic knowledge about Java or any other programming language to start.&lt;/p&gt;

&lt;p&gt;You will be able to learn how to set up Android Studio development environment and how to create a user interface using XML, and a lot more.&lt;/p&gt;

&lt;h2&gt;
  
  
  5) Android Cookbook: Problems and Solutions for Android Developers
&lt;/h2&gt;

&lt;p&gt;This book covers some depth aspects such as location services or dealing with hardware-specific aspects like sensors and cameras. This guide basically targets those people that have a certain exposure to Android devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ehEjZUck--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1328761623l/11205932.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ehEjZUck--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1328761623l/11205932.jpg" alt="Android Cookbook: Problems and Solutions for Android Developers"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>books</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to Make Android Apps With Python</title>
      <dc:creator>Mustufa Ansari</dc:creator>
      <pubDate>Mon, 02 Nov 2020 20:54:39 +0000</pubDate>
      <link>https://dev.to/mustufa786/how-to-make-android-apps-with-python-1pl6</link>
      <guid>https://dev.to/mustufa786/how-to-make-android-apps-with-python-1pl6</guid>
      <description>&lt;p&gt;In this article, I am gonna show you we can develop android apps on python.&lt;/p&gt;

&lt;p&gt;An android app is an application developed to operate on the android platform. The official language for Android development is Java (general-purpose programming language) but android python development may also be done. Python is a high-level programming language that is widely used in web development, app development, analyzing and computing scientific and numeric data, and software development.&lt;/p&gt;

&lt;p&gt;However, Android's favored language of implementation is Java so if you wish to run python Android application, you need to have a way to run your Python code on a Java there are several ways by which it can be done.&lt;/p&gt;

&lt;h2&gt;
  
  
  TRANSPILERS
&lt;/h2&gt;

&lt;p&gt;Transpiler - takes Python ASCII text file, compiles it to CPython Bytecode, and then transpires that bytecode into Java-compatible bytecode.&lt;/p&gt;

&lt;p&gt;It also allows you to use native JAVA objects the same as Python objects which allows us to seamlessly create an android application in native android API. The result is that your Python source code files are compiled directly to a Java class file.&lt;/p&gt;

&lt;h2&gt;
  
  
  TECHNOLOGICAL PLATFORMS
&lt;/h2&gt;

&lt;p&gt;Apart from transpilers, there is a various technological platform in the market i.e. PyMob where android applications can be codded solely in Python and the compiler tool-flow (PyMob) translate them in native source codes for different platforms. &lt;/p&gt;

&lt;p&gt;There are a few aspects that make these technological platforms approach distinctive.&lt;br&gt;
Undoubtedly, developing apps in Python is least complex than Obj-C, Java or JavaScript.&lt;/p&gt;

&lt;p&gt;The spec for a single stand has to be coded in Python.&lt;br&gt;
Thirdly, these platforms generate native source code for all the supported platforms. The generated native source code is virtually indistinguishable from a handwritten code and can be further optimized by native compilers.&lt;/p&gt;

&lt;h2&gt;
  
  
  BRIEFCASE PACKAGE
&lt;/h2&gt;

&lt;p&gt;Python to the android application can be written directly against the native Android APIs. Once you are done coding your native Android application, your python code required to be transient cased to package as an Android application. &lt;/p&gt;

&lt;p&gt;A briefcase is a tool for renovating a Python project into a standalone native application. You can package projects for MAC, Windows, AppleTv, android, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  KIVY FRAMEWORK
&lt;/h2&gt;

&lt;p&gt;Android python development can be done by Kivy framework to develop Android apps. Kivy enables you to build the UI in an exceedingly straightforward Python script but then you have to package it into a standalone Kivy - Open source Python library for rapid development of applications that takes innovative user interfaces in use, such as multi-touch apps.&lt;/p&gt;

&lt;p&gt;Kivy processed on Linux, Windows, OS X, Android, and iOS and can be supported by similar platforms. It can use natively most inputs, protocols, and devices including WM_Touch, WM_Pen, Mac OS X Trackpad and Magic Mouse, Mtdev, Linux Kernel HID, TUIO. A multi-touch mouse simulator is included. &lt;/p&gt;

&lt;p&gt;Kivy is 100% absolve to use, underneath an MIT license (starting from 1.7.2) and LGPL 3 for the previous versions, the framework is stable and has a well-documented API.&lt;/p&gt;

&lt;h2&gt;
  
  
  QPYTHON
&lt;/h2&gt;

&lt;p&gt;QPython is an alternative (for Android) that is a Python script engine for the Android system, which runs Python programs on any Android device. Comprising of a Python interpreter, a console, and an editor.&lt;/p&gt;

</description>
      <category>python</category>
      <category>android</category>
      <category>java</category>
      <category>kotlin</category>
    </item>
  </channel>
</rss>
