<?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: Gaurav Chaddha</title>
    <description>The latest articles on Forem by Gaurav Chaddha (@gauravchaddha1996).</description>
    <link>https://forem.com/gauravchaddha1996</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%2F17732%2F9d19fcb8-dbe9-4655-8b41-4aa519df37c2.jpg</url>
      <title>Forem: Gaurav Chaddha</title>
      <link>https://forem.com/gauravchaddha1996</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/gauravchaddha1996"/>
    <language>en</language>
    <item>
      <title>Practical guide to Dagger 2</title>
      <dc:creator>Gaurav Chaddha</dc:creator>
      <pubDate>Sun, 09 Sep 2018 12:52:41 +0000</pubDate>
      <link>https://forem.com/gauravchaddha1996/practical-guide-to-dagger-2-94a</link>
      <guid>https://forem.com/gauravchaddha1996/practical-guide-to-dagger-2-94a</guid>
      <description>&lt;p&gt;The post was published at my &lt;a href="https://gaurav.chaddha.me/dagger2"&gt;blog&lt;/a&gt;. If you don't have any idea about dependency injection or dagger, head over to the article link above. &lt;/p&gt;

&lt;p&gt;Keep reading if you have an idea about dagger annotations like @Inject, @Module, @Provides and @Component. These rules are for simple use-cases of dependency injection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule-set:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Use @Inject on constructors wherever you can (To declare dependencies).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make modules for stuff you can’t instantiate directly (e.g. Retrofit client as it’s built by it’s builder) or for stuff you can’t create like Context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also make ‘provides’ method in modules if you want to inject interfaces instead of implementations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use @Singleton if you want the dependencies to remain a Singleton.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Include all the required modules in the component and define where that component will inject dependencies to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use @Inject to ask dagger to inject dependencies you have declared.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>android</category>
      <category>dagger</category>
      <category>java</category>
    </item>
    <item>
      <title>Making my own startpage using HTML/CSS</title>
      <dc:creator>Gaurav Chaddha</dc:creator>
      <pubDate>Sun, 15 Apr 2018 12:50:39 +0000</pubDate>
      <link>https://forem.com/gauravchaddha1996/making-my-own-startpage-using-htmlcss---4fnb</link>
      <guid>https://forem.com/gauravchaddha1996/making-my-own-startpage-using-htmlcss---4fnb</guid>
      <description>&lt;p&gt;This week I learned HTML and CSS from &lt;a href="https://thinkful.com" rel="noopener noreferrer"&gt;Thinkful&lt;/a&gt; Frontend development course included in Github student pack. I always wanted to have a cool browser startpage, so I went ahead and coded one myself using HTML/CSS I had learned. It took me about 5-6 hours to create my first startpage. Here is how it looks.&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%2Fbz6cp8pnbc7kxk1rj49v.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%2Fbz6cp8pnbc7kxk1rj49v.png" width="800" height="449"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I also had to deploy a small server to serve the startpage to Firefox because I wanted the link to look better than "file:///". So some quick Google searches lead to a small startup server script. I then use that server's address and port as my home page in Firefox. &lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://github.com/GauravChaddha1996/startpage" rel="noopener noreferrer"&gt;https://github.com/GauravChaddha1996/startpage&lt;/a&gt;&lt;br&gt;
Care to share yours?&lt;/p&gt;

</description>
      <category>startpage</category>
      <category>showdev</category>
      <category>linux</category>
      <category>discuss</category>
    </item>
    <item>
      <title>You can't pull project ideas out of thin air </title>
      <dc:creator>Gaurav Chaddha</dc:creator>
      <pubDate>Sat, 31 Mar 2018 08:35:50 +0000</pubDate>
      <link>https://forem.com/gauravchaddha1996/you-cant-pull-project-ideas-out-of-thin-air--gfk</link>
      <guid>https://forem.com/gauravchaddha1996/you-cant-pull-project-ideas-out-of-thin-air--gfk</guid>
      <description>&lt;p&gt;&lt;em&gt;This &lt;a href="https://www.chaddhag.com/pullProjectIdeas"&gt;post&lt;/a&gt; was originally written for my blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I noticed some free-time coming my way as my current project is now completed. Now I'm not that creative to pull ideas out of thin air. Thus a need arrived - where to look for these inspirations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt; - I needed to decide the field I was going to work in - An app, or a front-end landing page maybe - or a full blown platform with scalable back-end.&lt;br&gt;
I decided to build a full blown platform. This was important as my search will gravitate accordingly. I would suggest to choose the field and not the language . Rather build the project in the language which most suits the needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt; - Go hunting!&lt;/p&gt;

&lt;p&gt;I needed to compile a list of ideas before I can find a diamond among them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I hunted the apps present on my own phone. I got some brilliant ideas I can recombine and some that I would love to re-do.&lt;br&gt;
I categorized them and my categories were social media, wrapper clients (like Boost for reddit etc.) and services (Note-taking etc).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Next I explored public API's and aimed to find something easy to do. Maybe write a client above an already established API.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Todd Motto Public APIs Github repo is a great place to start looking - &lt;a href="https://github.com/toddmotto/public-apis"&gt;Repo link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/abhishekbanthia/Public-APIs"&gt;Abhishek Banthia Public-APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/deralexxx/security-apis"&gt;Security APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TonnyL/Awesome_APIs"&gt;More APIs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also combine different APIs into a common client making it easier for a person to use multiple platforms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then I went to the buzzword &lt;em&gt;Machine learning&lt;/em&gt; and tried finding machine learning models using github.&lt;br&gt;
Other buzzwords are &lt;em&gt;Artificial intelligence, Deep learning, AR, VR, Blockchain&lt;/em&gt; etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The best place in my opinion I trekked to was &lt;em&gt;Github Trending&lt;/em&gt;. You can explore different langauges of your selected field and see what's new. Integrate these github repos ideas with each other - and you have something new!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using Github search led to something interesting - a compiled list of &lt;a href="https://gist.github.com/MWins/41c6fec2122dd47fdfaca31924647499"&gt;project ideas&lt;/a&gt; (tons of it).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spent some time with &lt;em&gt;HackerNews&lt;/em&gt; everyday. I found some really interesting tech news and ML model submissions there.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some stuff I didn't do personally but you can try it out are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find sub-redddit of choosen language and keep an eye on its submission.&lt;/li&gt;
&lt;li&gt;Devrant &lt;a href="https://devrant.com/collabs"&gt;collabs&lt;/a&gt; (Of course- Take ideas with permission)&lt;/li&gt;
&lt;li&gt;Explore the new apps on PlayStore&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Project ideas
&lt;/h1&gt;

&lt;p&gt;Here are some of the project ideas that I compiled&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use security API's to make a platform to scan files for you through different APIs&lt;/li&gt;
&lt;li&gt;Air quality / Water quality API clients&lt;/li&gt;
&lt;li&gt;Client which finds - other github repo like this (not based on topics rather more on context)&lt;/li&gt;
&lt;li&gt;Plugin on some editor to analyze code and offer advice to turn code more functional (Functional programming)&lt;/li&gt;
&lt;li&gt;Analysis of publically available data streams like Twitter to generate a report around a keyword (Like "android" was mentioned this many times, it's usage has come around this century, it's meaning, latest articles on this keyword etc.)&lt;/li&gt;
&lt;li&gt;A HackerNews client&lt;/li&gt;
&lt;li&gt;CamScanner clone&lt;/li&gt;
&lt;li&gt;News app&lt;/li&gt;
&lt;li&gt;Note-taking app with backend and offline sync functionality&lt;/li&gt;
&lt;li&gt;Markdown electron app&lt;/li&gt;
&lt;li&gt;Visualization of finance world&lt;/li&gt;
&lt;li&gt;Use those awesome Art API's to provide a way to search through art&lt;/li&gt;
&lt;li&gt;Rich-text editor plugin or component. Should be plug-and-play type and configurable.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>dev</category>
      <category>projects</category>
    </item>
    <item>
      <title>Learning from an imperfect design</title>
      <dc:creator>Gaurav Chaddha</dc:creator>
      <pubDate>Sun, 25 Mar 2018 16:37:16 +0000</pubDate>
      <link>https://forem.com/gauravchaddha1996/learning-from-an-imperfect-design-4np0</link>
      <guid>https://forem.com/gauravchaddha1996/learning-from-an-imperfect-design-4np0</guid>
      <description>&lt;p&gt;While implementing an advanced feature of my project, I learned that I cannot support it as it would break my design and other features. This occurred due to negligence and skipping research work. When I was designing my project, I deemed this feature as too advanced, and didn't recon it's implementation properly which lead to this failure. Fortunately I was able to include it in some other way, but still my perfect initial (or not so perfect) design failed me.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned&lt;/strong&gt;: &lt;em&gt;Don't leave any design aspect as todo, and be sure that it's implementation will fit your design. Also, be sure it's implementation won't break time and memory requirements.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Also, the project is now finally over. I feel, &lt;em&gt;complete&lt;/em&gt; and satisfied as a dev. So whatever project you are holding back on - just complete it. Release that v1.0, and the rest will follow. &lt;/p&gt;

&lt;h2&gt;
  
  
  Amazing links!
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The world is a scary place - &lt;a href="https://www.imperva.com/blog/2018/03/deep-dive-database-attacks-scarlett-johanssons-picture-used-for-crypto-mining-on-postgre-database/"&gt;Why Scarlett Johansson’s Picture Got My Postgre Database to Start Mining Monero&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;These guys rock - &lt;a href="https://theintercept.com/2018/03/16/twitter-bot-detector-software/"&gt;Hackers Are So Fed Up With Twitter Bots They’re Hunting Them Down Themselves&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Next gen password hashing algorithm - &lt;a href="https://github.com/P-H-C/phc-winner-argon2"&gt;The password hash Argon2, winner of PHC&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For anyone who enjoys art - &lt;a href="https://krita.org/en/"&gt;Krita&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>design</category>
      <category>beginners</category>
      <category>links</category>
    </item>
    <item>
      <title>What I learned this month</title>
      <dc:creator>Gaurav Chaddha</dc:creator>
      <pubDate>Sun, 18 Mar 2018 15:55:13 +0000</pubDate>
      <link>https://forem.com/gauravchaddha1996/what-i-learned-this-month-2nbi</link>
      <guid>https://forem.com/gauravchaddha1996/what-i-learned-this-month-2nbi</guid>
      <description>

&lt;p&gt;Two days ago, &lt;a href="https://dev.to/jrop"&gt;@jrop&lt;/a&gt; published an article &lt;strong&gt;What I learned this week&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I also started writing similar weekly update about anything I did the whole week on my &lt;a href="https://www.chaddhag.com/"&gt;blog&lt;/a&gt;. It really helped me see where my time went. But I think it would be better to share it on here too. So here goes - some of the things I learned and some amazing stuff I found online:  &lt;/p&gt;

&lt;p&gt;One day while coding, I noticed that a main file in my project had about 1000 lines, and a lot of it was repeated due to having different types. So I introduced &lt;strong&gt;generics&lt;/strong&gt;, and my code reduced to about 300 lines. The logic is now clear, code is more maintainable, easy to explain and expendable. I would recommend java/android devs to use it at appropriate places where logic is repeated for different types of data. Here is a good &lt;a href="https://www.journaldev.com/1663/java-generics-example-method-class-interface"&gt;resource&lt;/a&gt; to learn about generics. &lt;/p&gt;

&lt;p&gt;Also while doing some UI smoothing work, I found that mathematical equations work miracles. Calculations done using them produce smooth results which look natural and very eye-pleasing.  &lt;/p&gt;

&lt;p&gt;Memory usage is a pretty important thing too. I used &lt;strong&gt;android profiler&lt;/strong&gt; to analyze the Java heap dump, then filtered the classes via package name to check memory footprint of my app and library. The &lt;em&gt;retained size&lt;/em&gt; shows the amount of memory that will get free if this particular object is garbage collected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech articles and discovery
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Awesome use of machine learning - &lt;a href="https://mzucker.github.io/2016/09/20/noteshrink.html"&gt;Compressing and enhancing hand-written notes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Git messages are important, very important - &lt;a href="https://chris.beams.io/posts/git-commit/"&gt;How to Write a Git Commit Message&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Who doesn't want to look cool - &lt;a href="http://hackertyper.com/"&gt;Hackertyper&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Understanding zygote in android - &lt;a href="https://medium.com/@voodoomio/what-the-zygote-76f852d887d9"&gt;What the Zygote!?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Who doesn't love this - &lt;a href="http://www.zdnet.com/article/linus-torvalds-slams-cts-labs-over-amd-vulnerability-report/"&gt;Linus Torvalds slams CTS Labs over AMD vulnerability report&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;People at google are amazing - &lt;a href="https://www.blog.google/topics/machine-learning/making-music-using-new-sounds-generated-machine-learning/"&gt;Making music using new sounds generated with machine learning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google strikes again - &lt;a href="https://www.theverge.com/2018/3/14/17114494/google-maps-location-games-jurassic-world-walking-dead"&gt;Making amazing games like Pokemon Go with Maps&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ML again - &lt;a href="https://towardsdatascience.com/how-i-implemented-iphone-xs-faceid-using-deep-learning-in-python-d5dbaa128e1d"&gt;Implementing IphoneX faceId using deep learning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://insights.stackoverflow.com/survey/2018/"&gt;Stack Overflow developer survey 2018&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flanglet/kanzi/wiki"&gt;Block compressor in Java, Go and C++. &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Mr. Robot soundtrack
&lt;/h2&gt;

&lt;p&gt;Mr. Robot soundtrack is a great piece of music - specially while you are coding. Highly recommended to put you into the flow quickly. &lt;br&gt;
Oh and quick fact - &lt;em&gt;Sam esmail&lt;/em&gt;, the creator of &lt;em&gt;Mr. Robot&lt;/em&gt; was himself a hacker (a pretty bad one but still) - that explains why the show is so good and close to actual hacking or computer culture.&lt;/p&gt;


</description>
      <category>android</category>
      <category>git</category>
      <category>machinelearning</category>
      <category>mrrobot</category>
    </item>
    <item>
      <title>Learning android development</title>
      <dc:creator>Gaurav Chaddha</dc:creator>
      <pubDate>Sun, 25 Feb 2018 16:59:29 +0000</pubDate>
      <link>https://forem.com/gauravchaddha1996/learning-android-development--2o47</link>
      <guid>https://forem.com/gauravchaddha1996/learning-android-development--2o47</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%2Fuploads%2Farticles%2Fsef65mk8mpcmi17o68kl.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%2Fuploads%2Farticles%2Fsef65mk8mpcmi17o68kl.png"&gt;&lt;/a&gt;&lt;br&gt;
This &lt;a href="https://www.chaddhag.com/learningAndroidDevelopment" rel="noopener noreferrer"&gt;original post&lt;/a&gt; was written for my blog. Go check it out for more crazy stuff I write about. &lt;/p&gt;

&lt;p&gt;Android development is exciting, seeing those shiny animations makes one smile. This post is meant for people looking to start android development, and also for people who have covered the basics and now are looking to improve themselves.&lt;br&gt;
I would be providing resources I came across while learning android development.&lt;/p&gt;

&lt;h1&gt;
  
  
  Getting started with android development
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Learning pre-requisites skills&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think that one should learn a a bit of Java language before going into android development. You can take a course on Udacity, or watch Youtube videos or a book. I learned it from two sources: TheNewBoston Youtube video playlist of “Java (Beginner) Programming Tutorials” (Tip: Don’t install Eclipse. Go for IntelliJ IDEA) and a book called “Java: A Beginner’s Guide” by Herbert Schildt.&lt;/p&gt;

&lt;p&gt;I would recommend to install Ubuntu or any other Linux distro as Android studio, the IDE used to develop android apps is painfully slow on Windows if you don’t have a SSD. This will help you learn Linux. Also if you have the time, do a course or watch videos on Git to learn it’s basics. Learning git would definitely benefit you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Learning the basics&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that you know the pre-requisites, we can move to learn the basics of android development. I would recommend using either of the resources (Do some research to find which one suites you best)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/training/" rel="noopener noreferrer"&gt;Google Developers Training&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/google" rel="noopener noreferrer"&gt;Udacity-Google Partnership&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/index.html" rel="noopener noreferrer"&gt;Getting started - Android Developers&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;(I learned from this) &lt;a href="https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl" rel="noopener noreferrer"&gt;Android App Development for Beginners by TheNewBoston&lt;/a&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Although TheNewBoston videos are pretty good, I would recommend to use the other resources as they are from Google themselves.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;After you have learned the basics about android development, you should be comfortable in using Android Studio IDE, logcat, debugger, and should know about Activity lifecycle, Fragments, Screen navigation, View Pager, Notifications, RecyclerView, SharedPreferences, Context, Dialogs, Basic threading, Services etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Improving your skills
&lt;/h1&gt;

&lt;p&gt;Next to improve your skills, I would recommend to learn the following things one by one or as the need arises (Keep in mind that this list isn’t a complete guide — it is merely what I felt from my experience is important, and learning them will take a long time) :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MVP architecture, MVVM architecture, Android code style and guidelines, Material design, Design support library, Basic animations, Constraint layout.&lt;/li&gt;
&lt;li&gt;3rd party libraries like ButterKnife, Glide, Picasso, Timber.&lt;/li&gt;
&lt;li&gt;Networking using OkHttp, Gson, Volley, Retrofit or any other.&lt;/li&gt;
&lt;li&gt;Database and ORM’s. Example: Room, SQLlite, Realm, ORMLite, greenDOA etc.&lt;/li&gt;
&lt;li&gt;Custom views and Loaders.&lt;/li&gt;
&lt;li&gt;Design Patterns, Testing, FindBugs, PMD, Functional Programming concepts, Firebase, RxJava, RxAndroid, Dagger, SOLID Principles. (These are pretty advanced so try not to jump to these. Take your time.)&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;p&gt;The best resource I have come across learning, better than even courses is blog posts. Most of what I've learned is from reading blogs and then implementing it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Great publications about android development on Medium: 
&lt;a href="https://android.jlelse.eu/" rel="noopener noreferrer"&gt;AndroidPub&lt;/a&gt;, &lt;a href="https://mindorks.com/" rel="noopener noreferrer"&gt;Mindorks&lt;/a&gt;, &lt;a href="https://medium.com/google-developer-experts" rel="noopener noreferrer"&gt;Google Developer Experts&lt;/a&gt;, &lt;a href="https://labs.ribot.co.uk/" rel="noopener noreferrer"&gt;Ribot Labs&lt;/a&gt;, &lt;a href="https://medium.engineering/" rel="noopener noreferrer"&gt;Medium Engineering&lt;/a&gt;, &lt;a href="https://medium.freecodecamp.org/" rel="noopener noreferrer"&gt;FreeCodeCamp&lt;/a&gt;, &lt;a href="https://hackernoon.com/" rel="noopener noreferrer"&gt;Hackernoon&lt;/a&gt;, &lt;a href="https://medium.com/upday-devs" rel="noopener noreferrer"&gt;Upday Devs&lt;/a&gt;, &lt;a href="https://proandroiddev.com/" rel="noopener noreferrer"&gt;ProAndroidDev&lt;/a&gt;, &lt;a href="https://medium.com/lateral-view" rel="noopener noreferrer"&gt;Lateral View&lt;/a&gt;, &lt;a href="https://medium.com/fueled-android" rel="noopener noreferrer"&gt;Fueled Android&lt;/a&gt;, &lt;a href="https://blog.aritraroy.in/" rel="noopener noreferrer"&gt;Aritra Musings&lt;/a&gt;, &lt;a href="https://lorentzos.com/" rel="noopener noreferrer"&gt;Dionysis’ Lorentzos blog&lt;/a&gt;, &lt;a href="https://medium.com/google-developers" rel="noopener noreferrer"&gt;Google Developers&lt;/a&gt;, &lt;a href="https://medium.com/inloop" rel="noopener noreferrer"&gt;Inloop&lt;/a&gt;, &lt;a href="https://medium.com/android-circle" rel="noopener noreferrer"&gt;Android Circle&lt;/a&gt;, &lt;a href="https://medium.com/exploring-android" rel="noopener noreferrer"&gt;Exploring Android&lt;/a&gt; etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codelabs.developers.google.com/" rel="noopener noreferrer"&gt;Google Developer Codelabs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Follow the people who write in these publications here and on twitter to get updates about what they post. This is a good way to keep up with what is new and to improve yourself. &lt;/li&gt;
&lt;li&gt;Subscribe to newsletters to get curated lists of good posts and news:
&lt;a href="http://androidweekly.net/" rel="noopener noreferrer"&gt;Android Weekly&lt;/a&gt;, &lt;a href="https://www.androiddevdigest.com/" rel="noopener noreferrer"&gt;Android Dev Digest&lt;/a&gt;, &lt;a href="https://infinum.co/our-stuff" rel="noopener noreferrer"&gt;Infinum Android team&lt;/a&gt;, &lt;a href="https://android.jlelse.eu/" rel="noopener noreferrer"&gt;Android Pub newsletter&lt;/a&gt; etc.&lt;/li&gt;
&lt;li&gt;Regularly visit the subreddit &lt;a href="https://www.reddit.com/r/androiddev/" rel="noopener noreferrer"&gt;/r/androiddev&lt;/a&gt; to get updates and news about android development. &lt;/li&gt;
&lt;li&gt;Make a Twitter account and follow some android developers. I wrote a &lt;a href="https://www.reddit.com/r/androiddev/comments/6cawdz/which_android_developers_do_you_follow/dhvoayc/?context=0" rel="noopener noreferrer"&gt;comment&lt;/a&gt; on reddit about some android developers one can follow. &lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Tips for software development
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Care about code quality - read about modularity, seperation of concern, MVP, MVC, MVVM, function length, class size, variable name etc. Apply the good practices you read about this stuff.&lt;/li&gt;
&lt;li&gt;Development takes time. You will first need to learn basic syntax and some basic components before jumping in.&lt;/li&gt;
&lt;li&gt;Slowly increase the projects complexity per each 2–3 projects. Learn new things and apply them.&lt;/li&gt;
&lt;li&gt;Wisely choose what tech or library or framework you use, and read the docs first. Google the problem instead of asking somebody first. Try every stack overflow possible, you will learn the ways of “not doing” a task, which is very important.&lt;/li&gt;
&lt;li&gt;If you feel the need to diversify yourself — Read &lt;a href="https://github.com/shekhargulati/52-technologies-in-2016" rel="noopener noreferrer"&gt;Shekhar Gulati 52 Technologies&lt;/a&gt; in 2016.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;You can also refer to this awesome &lt;a href="https://blog.mindorks.com/how-to-learn-android-development-f33dd6dba40d" rel="noopener noreferrer"&gt;guide&lt;/a&gt; from &lt;strong&gt;Mindorks&lt;/strong&gt;.&lt;/p&gt;




</description>
      <category>android</category>
      <category>androiddevelopment</category>
    </item>
  </channel>
</rss>
