<?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: Chingiz Huseynzade</title>
    <description>The latest articles on DEV Community by Chingiz Huseynzade (@chingiz).</description>
    <link>https://dev.to/chingiz</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%2F4246%2F900bd3ce-996e-4e3e-97c4-cbc2bc20b0fb.jpg</url>
      <title>DEV Community: Chingiz Huseynzade</title>
      <link>https://dev.to/chingiz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chingiz"/>
    <language>en</language>
    <item>
      <title>DevNews for DEV Community</title>
      <dc:creator>Chingiz Huseynzade</dc:creator>
      <pubDate>Thu, 07 May 2020 08:46:01 +0000</pubDate>
      <link>https://dev.to/chingiz/devnews-for-dev-community-2dfk</link>
      <guid>https://dev.to/chingiz/devnews-for-dev-community-2dfk</guid>
      <description>&lt;h2&gt;
  
  
  DevNews for DEV Community
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=hundredthirtythree.dev_news" rel="noopener noreferrer"&gt;DevNews&lt;/a&gt; is open source Flutter application that using &lt;a href="https://dev.to/api"&gt;dev.to&lt;/a&gt; api to fetch articles.&lt;/p&gt;

&lt;h2&gt;
  
  
  About The Project
&lt;/h2&gt;

&lt;p&gt;I remember back then twitter api was so popular and different people build beautiful apps for twitter. I used one of that application and it was super cool. &lt;/p&gt;

&lt;p&gt;Remembering this and seeing that dev.to api is accessible for building anything I took the challenge. Within 2 week I built this simple app which makes it accessible reading dev.to articles.&lt;/p&gt;

&lt;p&gt;Building it with Flutter made it more fun, since it is my first released Flutter application I took care of it and made id &lt;a href="https://github.com/chingiz/dev_news" rel="noopener noreferrer"&gt;open source&lt;/a&gt; letting everybody contribute to build app with more features covering all the api.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&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%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/chingiz" rel="noopener noreferrer"&gt;
        chingiz
      &lt;/a&gt; / &lt;a href="https://github.com/chingiz/dev_news" rel="noopener noreferrer"&gt;
        dev_news
      &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;br&gt;
&lt;p&gt;
  &lt;a href="https://github.com/chingiz/dev_news" rel="noopener noreferrer"&gt;
    &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fchingiz%2Fdev_newsandroid%2Fapp%2Fsrc%2Fmain%2Fres%2Fmipmap-xxxhdpi%2Fic_launcher.png" alt="Logo" width="100" height="100"&gt;
  &lt;/a&gt;
  &lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;DevNews&lt;/h3&gt;
&lt;/div&gt;
  &lt;p&gt;
    DevNews is open source Flutter application that using &lt;a href="https://dev.to" rel="nofollow"&gt;dev.to&lt;/a&gt; api to fetch articles
    &lt;br&gt;
    &lt;br&gt;
    &lt;a href="https://github.com/chingiz/dev_news/issues" rel="noopener noreferrer"&gt;Report Bug&lt;/a&gt;
    ·
    &lt;a href="https://github.com/chingiz/dev_news/issues" rel="noopener noreferrer"&gt;Request Feature&lt;/a&gt;
  &lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/chingiz/dev_news#table-of-contents" rel="noopener noreferrer"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chingiz/dev_news#about-the-project" rel="noopener noreferrer"&gt;About The Project&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/chingiz/dev_news#installation" rel="noopener noreferrer"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chingiz/dev_news#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chingiz/dev_news#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;About The Project&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;DevNews is open source Flutter application that using &lt;a href="https://dev.to" rel="nofollow"&gt;dev.to&lt;/a&gt; api to fetch articles.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/chingiz/dev_newsscreenshots/Image%201.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fchingiz%2Fdev_newsscreenshots%2FImage%25201.png" width="200px"&gt;&lt;/a&gt;&lt;a rel="noopener noreferrer" href="https://github.com/chingiz/dev_newsscreenshots/Image%202.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fchingiz%2Fdev_newsscreenshots%2FImage%25202.png" width="200px"&gt;&lt;/a&gt;&lt;a rel="noopener noreferrer" href="https://github.com/chingiz/dev_newsscreenshots/Image%203.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fchingiz%2Fdev_newsscreenshots%2FImage%25203.png" width="200px"&gt;&lt;/a&gt;&lt;a rel="noopener noreferrer" href="https://github.com/chingiz/dev_newsscreenshots/Image%204.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fchingiz%2Fdev_newsscreenshots%2FImage%25204.png" width="200px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;App screenshots created with &lt;a href="https://previewed.app/" rel="nofollow noopener noreferrer"&gt;Previewed&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Installation&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Follow flutter installation instructions &lt;a href="https://flutter.dev/docs/get-started/install" rel="nofollow noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Clone the repo and from this &lt;code&gt;dev_news&lt;/code&gt; directory, run&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;flutter pub get
flutter run
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note: for firebase please follow documentation in order to successfully build application.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Contributing&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are &lt;strong&gt;greatly appreciated&lt;/strong&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fork the Project&lt;/li&gt;
&lt;li&gt;Create your Feature Branch (&lt;code&gt;git checkout -b feature/AmazingFeature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Commit your Changes (&lt;code&gt;git commit -m 'Add some AmazingFeature'&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Push to the Branch (&lt;code&gt;git push origin feature/AmazingFeature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open a Pull Request&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/chingiz/dev_news" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Future work
&lt;/h2&gt;

&lt;p&gt;Since dev.to api is in beta I didn't dive into it and kept it simple. After first release of it I'm gonna build more features on it, of course with the help of the big and glorious DEV Community.&lt;/p&gt;

&lt;p&gt;Hope, you will love it &amp;lt;3.&lt;/p&gt;

&lt;p&gt;and I didn't of course forget Apple users, soon it is going to be available for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=hundredthirtythree.dev_news&amp;amp;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1" rel="noopener noreferrer"&gt;&lt;img alt="Get it on Google Play" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fplay.google.com%2Fintl%2Fen_us%2Fbadges%2Fstatic%2Fimages%2Fbadges%2Fen_badge_web_generic.png"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>android</category>
      <category>devnews</category>
    </item>
    <item>
      <title>Flutter? Learn or not</title>
      <dc:creator>Chingiz Huseynzade</dc:creator>
      <pubDate>Sat, 21 Jul 2018 07:03:16 +0000</pubDate>
      <link>https://dev.to/chingiz/flutter-learn-or-not-3j95</link>
      <guid>https://dev.to/chingiz/flutter-learn-or-not-3j95</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7v77ghO6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.duckduckgo.com/iu/%3Fu%3Dhttps%253A%252F%252Fscdn.androidcommunity.com%252Fwp-content%252Fuploads%252F2018%252F02%252Fflutter.jpeg%26f%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7v77ghO6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.duckduckgo.com/iu/%3Fu%3Dhttps%253A%252F%252Fscdn.androidcommunity.com%252Fwp-content%252Fuploads%252F2018%252F02%252Fflutter.jpeg%26f%3D1" alt="Flutter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last 1 week of my research was about Flutter. It was an interesting topic for me since its release time. I had too many questions in my head. Does it really worth to learn Flutter, when there is java/kotlin, swift, and react native? Let's start with basic question.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Flutter?
&lt;/h3&gt;

&lt;p&gt;As Google says "&lt;a href="https://flutter.io"&gt;Flutter&lt;/a&gt; is Google’s mobile app SDK for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is a free and open source.". Currently Flutter is in beta v0.5.1, but lately, they released &lt;a href="https://medium.com/flutter-io/flutter-release-preview-1-943a9b6ee65a?linkId=53249457"&gt;Release Preview 1&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Does it worth to learn it?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2jSPTdh6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media3.giphy.com/media/26FL35TKSXu8KwiR2/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2jSPTdh6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media3.giphy.com/media/26FL35TKSXu8KwiR2/giphy.gif" alt="worthit"&gt;&lt;/a&gt;&lt;br&gt;
There are plenty of learning resources to learn Flutter. Before learning you should know the syntax of &lt;a href="https://www.dartlang.org"&gt;Dart programming language&lt;/a&gt;. Dart is an object-oriented programming language which is similar to &lt;a href="http://www.oracle.com/technetwork/java/index-138747.html"&gt;Java&lt;/a&gt;, C# and many more languages. But as Android Developer I would say, it is too similar to Java. There are some differences, the main similarity is that everything is Object.&lt;/p&gt;

&lt;p&gt;It is really fast, has native performance and flexible UI.&lt;/p&gt;

&lt;p&gt;I have had seen many apps which are written with Ionic and other tools. We can differ them by looking touching and by performance. But when I build an app with Flutter I couldn't differentiate it from a native app which is similar to React Native apps.&lt;/p&gt;

&lt;p&gt;It is really worth to learn because...because building complex layouts in android(have experience) is the pain. Android has a lot of problems... You can see the roar of the developer in this &lt;a href="https://medium.com/@drinfo/fuck-you-android-framework-ddbb02c4ae48"&gt;article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In Flutter everything is Widget. What else can make a developer happy? Flutter let's you make everything easily which broad widget controlling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Any challenges?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Czo1cUna--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://flutter.io/images/homepage/header-illustration.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Czo1cUna--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://flutter.io/images/homepage/header-illustration.png" alt="Flutter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Challenge for newbie would be Dart itself. If you have not experienced above mentioned languages then it will be hard for you to learn Flutter(you should learn Dart before it). Don't get me wrong. You're great!&lt;/p&gt;

&lt;p&gt;For experienced developers, challenges would be learning the architecture of Flutter. Mainly thinking and applying methods. You should think more before doing something. Because seeing design then trying to implement it would be hard create. That's why by looking to &lt;a href="https://docs.flutter.io"&gt;API&lt;/a&gt; or some examples would help you to learn it fast.&lt;/p&gt;

&lt;p&gt;Main challenge here is when you first create flutter app it's android project not comes with configured for Kotlin. And for iOS project you should install Cocoapods. Android app would give compile error when building because of some installed dependencies written in Kotlin and for iOS pod install required. You would say doesn't Flutter's extension for &lt;a href="https://code.visualstudio.com"&gt;VSCode&lt;/a&gt; or &lt;a href="https://www.jetbrains.com/idea/"&gt;IntelliJ IDEA&lt;/a&gt; handle it? Well, sometimes it crashes since it's in early development process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Thank you for reading till here. I really recommend learning Flutter since if you build one app means it is ready for android and ios. Feel free to discuss anything.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>android</category>
      <category>ios</category>
    </item>
    <item>
      <title>How do you save your secret keys on Android Development securely?</title>
      <dc:creator>Chingiz Huseynzade</dc:creator>
      <pubDate>Mon, 16 Apr 2018 23:19:00 +0000</pubDate>
      <link>https://dev.to/chingiz/how-do-you-save-your-secret-keys-on-android-development-securely-1e3o</link>
      <guid>https://dev.to/chingiz/how-do-you-save-your-secret-keys-on-android-development-securely-1e3o</guid>
      <description>

</description>
      <category>android</category>
      <category>secretkey</category>
      <category>security</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Why I choose Conductor over Fragment?</title>
      <dc:creator>Chingiz Huseynzade</dc:creator>
      <pubDate>Mon, 12 Mar 2018 10:35:10 +0000</pubDate>
      <link>https://dev.to/chingiz/why-i-choose-conductor-over-fragment--4b5b</link>
      <guid>https://dev.to/chingiz/why-i-choose-conductor-over-fragment--4b5b</guid>
      <description>&lt;p&gt;If we go to repository page of &lt;a href="https://github.com/bluelinelabs/Conductor"&gt;Conductor&lt;/a&gt; it says that "A small, yet full-featured framework that allows building View-based Android applications". It really does what it says and there are too many pros than cons that I can talk about.&lt;/p&gt;

&lt;p&gt;First thing first, it is very easy to integrate and helps you to build single activity application for Android. When Activities first appeared in the documentation of it is written that "a single, focused thing that the user can do". It means that you can do all the things inside one activity and handle all other things with the help of Conductor or Fragment. Moreover, with the single activity you can manage:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Navigation drawer in all the views
- Toolbar
- Low memory footprint (previous Activities with views exist in the stack, which can cause an out-of-memory exception in endless navigation applications)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  So what should turn you into choosing Conductor
&lt;/h2&gt;

&lt;p&gt;Conductor has four main components that you should know first before starting.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Controller - The Controller is the View wrapper that will give you all of your lifecycle management features. Think of it as a lighter-weight and more predictable Fragment alternative with an easier to manage lifecycle.

2. Router - A Router implements navigation and backstack handling for Controllers. Router objects are attached to Activity/containing ViewGroup pairs. Routers do not directly render or push Views to the container ViewGroup, but instead, defer this responsibility to the ControllerChangeHandler specified in a given transaction.

3. ControllerChangeHandler - ControllerChangeHandlers are responsible for swapping the View for one Controller to the View of another. They can be useful for performing animations and transitions between Controllers. Several default ControllerChangeHandlers are included.

4. ControllerTransaction - Transactions are used to define data about adding Controllers. RouterControllerTransactions are used to push a Controller to a Router with specified ControllerChangeHandlers, while ChildControllerTransactions are used to add child Controllers.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;As we all know when we are using Fragment we need FragmentManager to replace them. Conductor helps you to write minimal code for replacing Views. We should extend all our views to Controller and then if we want to change View calling &lt;code&gt;getRouter().pushController(YourAnotherViewWhichIsController())&lt;/code&gt; which is an important part of Conductor is enough. &lt;/p&gt;

&lt;p&gt;The best part of Conductor is that other than Fragment its Controllers lifecycle is simpler to understand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_e5kbngN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/bluelinelabs/Conductor/raw/develop/docs/Controller%2520Lifecycle.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_e5kbngN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/bluelinelabs/Conductor/raw/develop/docs/Controller%2520Lifecycle.jpg" alt="A lifecycle diagram of Controller"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's navigation and backstack handling is best. Simpler like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// On MainActivity
@Override
    public void onBackPressed() {
        if (!router.handleBack()) {
            super.onBackPressed();
        }
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In conclusion, the thing main thing that turned me into Conductor is it's easy to use structure, backstack handling, and easy lifecycle.&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://github.com/bluelinelabs/Conductor"&gt;https://github.com/bluelinelabs/Conductor&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.polidea.com/blog/Introduction_To_Single_Activity_Applications/"&gt;https://www.polidea.com/blog/Introduction_To_Single_Activity_Applications/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;P.S. It's my first post on dev.to and I'm non-native speaker. I can make mistakes. I'm sorry for that.&lt;/p&gt;

</description>
      <category>android</category>
      <category>conductor</category>
      <category>fragment</category>
    </item>
  </channel>
</rss>
