<?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: Denizhan Dalgıç</title>
    <description>The latest articles on DEV Community by Denizhan Dalgıç (@devdalgic).</description>
    <link>https://dev.to/devdalgic</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%2F951961%2Ff30fe64d-e632-46dc-bed2-04e324ee3f25.JPG</url>
      <title>DEV Community: Denizhan Dalgıç</title>
      <link>https://dev.to/devdalgic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devdalgic"/>
    <language>en</language>
    <item>
      <title>Get More Exposure in App Store with In-App Events: A Guide for Expo and React Native</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Wed, 15 Jan 2025 21:00:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/get-more-exposure-in-app-store-with-in-app-events-a-guide-for-expo-and-react-native-142</link>
      <guid>https://dev.to/devdalgic/get-more-exposure-in-app-store-with-in-app-events-a-guide-for-expo-and-react-native-142</guid>
      <description>&lt;p&gt;Struggling with exposure in App Store? Trying new keywords but not getting expected results?&lt;/p&gt;

&lt;p&gt;Well, even though it is not a replacement, there are more ways to get more visibility for your app on App Store.&lt;/p&gt;

&lt;p&gt;They are called &lt;strong&gt;in-app events&lt;/strong&gt;. It is a way of presenting your app in a new way that is temporary (it is an event, after all). See the example:&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%2Foyp9j6eudmzv6lr2lmfl.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%2Foyp9j6eudmzv6lr2lmfl.png" alt="Credit: apple.com" width="800" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To achieve such results, Apple has a very detailed documentation on how to set up App Store Connect-side of things &lt;a href="https://developer.apple.com/app-store/in-app-events/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's why I intend to focus on explaining implementation side. To submit an in-app event, you need to have &lt;strong&gt;universal links&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Universal Links, and Why Should You Care?
&lt;/h2&gt;

&lt;p&gt;Universal Links are iOS’s answer to the challenge of connecting the web and apps seamlessly. They enable links to open directly within your app (if installed) or fallback gracefully to a web page. For apps promoting In-App Events, this means you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drive users directly to the event details or sign-up screen.&lt;/li&gt;
&lt;li&gt;Ensure a smooth, app-first experience.&lt;/li&gt;
&lt;li&gt;Increase conversions by reducing friction.
Whether you’re promoting a limited-time offer, a gaming tournament, or a virtual event, Universal Links make sure your users don’t miss out.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creating and Hosting A Universal Link
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Existing Website
&lt;/h3&gt;

&lt;p&gt;If you have a live existing website, follow these steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create Your Apple App Site Association (AASA) File
&lt;/h3&gt;

&lt;p&gt;The AASA file is the blueprint that tells iOS which URLs your app can handle. Think of it as a handshake between your app and your domain.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build the file according to the format.
Here's an example.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
 "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.example.myapp",
        "paths": ["*", "/event/*"]
      }
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Replace &lt;a href="https://developer.apple.com/help/account/manage-your-team/locate-your-team-id" rel="noopener noreferrer"&gt;TEAMID&lt;/a&gt; with your Apple Developer Team ID.&lt;/li&gt;
&lt;li&gt;Replace com.example.myapp with your app’s bundle ID.&lt;/li&gt;
&lt;li&gt;Adjust paths for URLs you want your app to handle (e.g., /event/* for event-specific pages).&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Host the file.
Upload it to &lt;strong&gt;https:///.well-known/apple-app-site-association&lt;/strong&gt;. Ensure it’s served over HTTPS without redirection.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 2: Create a Free Website to Host Your Universal Link
&lt;/h3&gt;

&lt;p&gt;If you don't have a live website or want to create a new website for any other reason, there's a tool for that.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Login to &lt;a href="https://www.aasagenerator.com" rel="noopener noreferrer"&gt;AASAGenerator.com&lt;/a&gt; with Github
&lt;/h4&gt;

&lt;p&gt;AASA Generator is a website where you can enter your team ID and app ID to have your universal link created automatically for you, hosted for free on Github.io.&lt;br&gt;
Login with your Github account and prepare your team ID and app ID.&lt;/p&gt;
&lt;h4&gt;
  
  
  2. Enter app details
&lt;/h4&gt;

&lt;p&gt;Enter your app details and the prefix you'd like to use. Your website's URL will be .github.io. You can enter anything you like.&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%2Fs58ahg5w9188rkbz9svf.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%2Fs58ahg5w9188rkbz9svf.png" alt="App details" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  3. Deploy your site
&lt;/h4&gt;

&lt;p&gt;Once you are on the next page, click deploy.&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%2F49td754auwe12cfscero.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%2F49td754auwe12cfscero.png" alt="Repository creation" width="800" height="735"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.aasagenerator.com" rel="noopener noreferrer"&gt;AASA Generator&lt;/a&gt; will perform these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your repository will be initialized.&lt;/li&gt;
&lt;li&gt;Your AASA file and website configuration will be created.&lt;/li&gt;
&lt;li&gt;Files will be committed to your repository.&lt;/li&gt;
&lt;li&gt;Github Pages deployment will start.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can easily track the website deployment status here.&lt;/p&gt;

&lt;p&gt;Once it is deployed, your link is ready! If a user that does not have your app installed on their device, they will be taken to App Store page.&lt;/p&gt;

&lt;p&gt;Now, we need to add this to our Expo app.&lt;/p&gt;
&lt;h2&gt;
  
  
  Add Universal Link to Your Expo React Native App
&lt;/h2&gt;

&lt;p&gt;All you have to do is add the website to your app.json file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "expo": {
    "ios": {
      "associatedDomains": ["applinks:yourwebsite.github.io"]
    }
  }
}

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

&lt;/div&gt;



&lt;p&gt;Some notes about AASA:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;a href="https://docs.expo.dev/linking/into-your-app#handle-urls" rel="noopener noreferrer"&gt;here&lt;/a&gt; to find out how to handle links into your app.&lt;/li&gt;
&lt;li&gt;iOS downloads your AASA when your app is first installed or when updates are installed from the App Store. The operating system does not refresh frequently after that. Hence, if you want to change your path, a full app update is needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Universal Links: A Game-Changer for Engagement
&lt;/h2&gt;

&lt;p&gt;Universal Links are more than just a technical feature—they’re a bridge between your web presence and your app. For iOS In-App Events, they offer an opportunity to amplify engagement and make the user experience delightfully frictionless.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drive Conversions: No more lost users due to redirects or broken links.&lt;/li&gt;
&lt;li&gt;Enhance Experience: Make your events more accessible and engaging.&lt;/li&gt;
&lt;li&gt;Build Trust: A seamless journey shows users you value their time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ready to Level Up?
&lt;/h3&gt;

&lt;p&gt;By combining Universal Links with Expo and React Native, you can create a polished, professional experience for your users. Whether you’re promoting a live stream, a flash sale, or a special event, the right setup ensures your audience can always find their way—straight to your app.&lt;/p&gt;

&lt;p&gt;You're done!&lt;/p&gt;

&lt;p&gt;Let me know when you submit your in-app events in the comments.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>ios</category>
      <category>reactnative</category>
      <category>marketing</category>
    </item>
    <item>
      <title>💎 Selling Jewelry as A Software Developer</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Thu, 14 Dec 2023 15:09:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/selling-jewelry-as-a-software-developer-175j</link>
      <guid>https://dev.to/devdalgic/selling-jewelry-as-a-software-developer-175j</guid>
      <description>&lt;p&gt;Embark on a journey of self-discovery with a twist! I was faced with an exciting opportunity when my close friend proposed an idea that sparked my interest - "Let's sell silver jewelry!" Despite my initial hesitation, I couldn't resist the chance to explore new territory and challenge myself.&lt;/p&gt;

&lt;p&gt;We came up with a name, designed a logo, and created social media profiles. Our jeweler sent us the 15 products we’ve selected.&lt;/p&gt;

&lt;p&gt;🛒 Firstly, we registered to the top local e-commerce websites in Turkey 🇹🇷 and Etsy. Preparing the documents needed for registration was cumbersome, but we didn’t have any other choice.&lt;/p&gt;

&lt;p&gt;📸 Next, we took various photos of our products from various angles. It wasn’t enough. They just didn’t have any appeal this way. It was probably because of our equipment and lack of knowledge about lighting and manual settings of a camera. To overcome this, I delved into Photoshop. After hours and hours of editing and a couple of YouTube videos, they were ready.&lt;/p&gt;

&lt;p&gt;💵 After carefully publishing our stunning silver jewelry on various e-commerce websites and social media, we eagerly awaited the flood of sales. However, despite our best efforts to optimize our product names and descriptions, the sales were slow to come.&lt;/p&gt;

&lt;p&gt;We were determined to uncover the root of the problem and took a deep dive into our strategy. Could it be the quality of our jewelry? Were we not presenting ourselves as professionals? It didn't take us long to realize that the key issue was trust. Who would trust a brand new page with their hard-earned money?&lt;/p&gt;

&lt;p&gt;With that in mind, we took things to the next level by creating a sleek and professional website complete with WordPress and Shopify. We also made the investment to add more inventory to our offerings, ensuring that our customers would have a wide range of stunning silver jewelry to choose from. By building trust with our customers and showcasing our commitment to quality, we were confident that our sales will soar.&lt;/p&gt;

&lt;p&gt;📦 Also, we had a new feature we believed was going to make our brand distinct: Gift boxes. Customers could choose from a variety of boxes with various gifts including books, handmade candles, glass tubes of coffee, and cups, all in wooden boxes with our logo on them. These all were supplementary gifts, the main thing being silver jewelry.&lt;/p&gt;

&lt;p&gt;As a developer, I was thrilled to dive into the world of WordPress and discover its wealth of features and versatility. Despite my usual preference for custom coding, I was pleasantly surprised by how smoothly WordPress operates and how it allowed me to bring my vision to life without any restrictions.&lt;/p&gt;

&lt;p&gt;😓 However, in spite of our blood, sweat, and tears, we just couldn’t manage it. We tried Instagram Reels, offered deep discounts, and expanded our inventory by adding bracelets made with natural stones. No luck.&lt;/p&gt;

&lt;p&gt;And then, we pulled the plug. The only thing we had, in the end, was a box full of jewelry, in the materialistic sense. &lt;/p&gt;

&lt;p&gt;✅ Here are the lessons I’ve learned:&lt;/p&gt;

&lt;p&gt;💫 People appreciate some level of authenticity rather than the dull seriousness of professionalism. We tried to look solid and perfect on all ends and I believe it was one of our biggest mistakes.&lt;/p&gt;

&lt;p&gt;📈 Your products’ rank in search results determines the fate of your business. Your product reviews, sales per listing visit, and so much more. It’s all about that particular site’s algorithm and how it scores your listings.&lt;/p&gt;

&lt;p&gt;Have any fellow software developers here tried e-commerce? What were your outcomes in your case? Let us know in the comments!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>🗓️ 3 Phases of A Conference - How to Make the Most Out of It</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Thu, 07 Dec 2023 16:59:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/3-phases-of-a-conference-how-to-make-the-most-out-of-it-1jo2</link>
      <guid>https://dev.to/devdalgic/3-phases-of-a-conference-how-to-make-the-most-out-of-it-1jo2</guid>
      <description>&lt;p&gt;🆙 Unleash your full potential and level up your career with the power of face-to-face conferences! These events are a rare opportunity to expand your professional network, stay ahead of the curve with the latest industry developments, and potentially connect with the right partners or investors who can help bring your vision to life. So why wait? Embrace the power of face-to-face interaction and take your career to new heights!&lt;/p&gt;

&lt;p&gt;💬 This may seem easy, but it’s not. You don’t just start a chat with random people and get offers.&lt;/p&gt;

&lt;p&gt;👣 We can say an event has three phases: Before, during, and after. Let's dig into each phase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before the Event
&lt;/h2&gt;

&lt;p&gt;✍️ You need to plan and start getting in touch with people attending the conference with whom you want to meet.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Define your specific and relevant goals for the conference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Determine who you need to meet and have a chat with to achieve these goals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find out if they’re attending the conference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Message them before the event and set a certain time to meet.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;💻 Some events have online platforms in which you can see who is attending, set up meetings, and more. You need to use them well. Remember, face-to-face interactions are where the magic happens, so prioritize building real-life connections. Message them first through the event platform and if you don’t get an answer, start messaging them on a platform you know they use often (can be LinkedIn) and keep messaging until you get an answer.&lt;/p&gt;

&lt;p&gt;🎙️ You may notice I haven’t mentioned the sessions of the conference. It’s because I believe meeting with people face to face is more fruitful. It’s even possible that the event organizer will post the sessions on YouTube.&lt;/p&gt;

&lt;p&gt;🔨 This doesn’t apply to workshops, though. They can be really valuable, and you should take a look at the schedule, see if there is one, and register if needed.&lt;/p&gt;

&lt;p&gt;Additionally, if there are booths of companies at the event, take a look at which companies will be present and where in the venue. This will make you know your way around and being resourceful will help you feel confident.&lt;/p&gt;

&lt;p&gt;🪪 Oh, and get some business cards printed. You’ll need them.&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%2Fkuja4x2furx1avjlq8g4.jpg" 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%2Fkuja4x2furx1avjlq8g4.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  During the Event
&lt;/h2&gt;

&lt;p&gt;🔎 Keep an eye out for those you've tried to connect with before, as a chance encounter could be the moment you've been waiting for. Always have your LinkedIn app at the ready, and don't be afraid to swap business cards or connect on the spot. And don't miss out on the fun of freebies from company booths - they can also serve as a great icebreaker in the future.&lt;/p&gt;

&lt;p&gt;📛 Be proactive, inspect everyone's badges to see who might be worth connecting with, and keep an open mind to new possibilities. Don't make the mistake of letting your guard down too early - after a successful presentation or accomplishment, there may still be opportunities waiting for you.&lt;/p&gt;

&lt;p&gt;🌆 Embrace the experience, widen your horizons, and never stop being proactive.&lt;/p&gt;

&lt;p&gt;Once, I had the chance to do a presentation of my company to a group of investors during an event. After the presentation, I felt like my job at the event was done. And this feeling reduced my efforts dramatically for the rest of the event. I could’ve done a lot more.&lt;/p&gt;

&lt;h2&gt;
  
  
  After the Event
&lt;/h2&gt;

&lt;p&gt;🥴 This phase can be the most tedious and painful. Don't let frustration get the best of you in this critical phase. Yes, the follow-up can be challenging, but the rewards are worth it. You never know who will turn into a valuable business partner or who may refer you to someone who is interested in your product. Keep your head up and stay persistent!&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%2Fsq6j99u88vwxndcufzw4.jpg" 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%2Fsq6j99u88vwxndcufzw4.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚪 Think of every missed opportunity as a potential door that could open in the future. By maintaining communication with everyone you met at the event, you're keeping those doors ajar. So, send a friendly follow-up message and bring up a memorable moment from the event to rekindle the connection.&lt;br&gt;
People can ghost you and you will never even know why. However, this is not always about your product. There are lots of possible reasons and people on the other end won’t bother messaging you about it. This is nothing personal and is completely normal.&lt;/p&gt;

&lt;p&gt;🗓️ They may have something on their personal agenda. Maybe they’re about to leave their current company, and they can’t help you in their new job. There can be a decision from leadership. Maybe the company is there just for the show, and they aren’t looking for new partnerships at the moment.&lt;br&gt;
What you should do is get in touch with everyone you’ve met during the event and arrange a meeting to discuss possible business opportunities. Keep messaging until you get an answer.&lt;/p&gt;

&lt;p&gt;✉️ In these messages and the meetings you will have, you should refer to something that happened during the event. It can be a topic you’ve discussed with this particular person like “You shocked me when you said…” or it can be something about the event itself like “The food was a disaster, don’t you think?” This will help build a connection.&lt;/p&gt;

&lt;p&gt;🚀 Overall, the key to getting the most out of a conference is to come prepared with specific goals and a plan to achieve them and to be proactive in networking and making connections.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>business</category>
    </item>
    <item>
      <title>↔️ A Matter of Left and Right</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Fri, 01 Dec 2023 15:39:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/-a-matter-of-left-and-right-4ap1</link>
      <guid>https://dev.to/devdalgic/-a-matter-of-left-and-right-4ap1</guid>
      <description>&lt;p&gt;Pragmatic Thinking and Learning: Refactor Your Wetware is a must-read book for anyone interested in improving their cognitive abilities. The knowledge about our cognitive abilities could help us greatly sculpt our workflow, enhancing efficiency and output.&lt;/p&gt;

&lt;p&gt;Written by Andy Hunt, this book delves into the intricacies of human thinking and provides practical advice for individuals seeking to enhance their learning and problem-solving skills.&lt;br&gt;
One of the most fascinating concepts introduced in the book is the idea of R-mode and L-mode thinking. These two modes of thinking are characterized by different approaches to problem-solving and decision-making.&lt;/p&gt;

&lt;p&gt;R-mode thinking, also known as "right-brained" thinking, is intuitive, imaginative, and holistic. It is often associated with creative endeavors like art, music, and writing. As someone who enjoys writing, I can attest to the fact that R-mode thinking plays a significant role in my creative process. When I'm brainstorming ideas for a new article or blog post, I rely heavily on my R-mode thinking to generate new and exciting ideas.&lt;/p&gt;

&lt;p&gt;On the other hand, L-mode thinking, also known as "left-brained" thinking, is analytical, logical, and linear. It is often associated with fields like mathematics, science, and engineering. As a former engineering student, I know firsthand how important L-mode thinking can be when solving complex mathematical problems.&lt;/p&gt;

&lt;p&gt;While these two modes of thinking may seem like opposites, they are not mutually exclusive. In fact, the most effective problem-solvers and decision-makers are those who can seamlessly switch between the two modes of thinking as needed.&lt;br&gt;
The book emphasizes the importance of developing both R-mode and L-mode thinking to achieve a more balanced approach to problem-solving and decision-making. I found this concept particularly intriguing because, as someone who believes that interdisciplinary thinking is needed to create astonishing results, I often think to myself how I can utilize each better.&lt;/p&gt;

&lt;p&gt;The book suggests several activities that can help individuals develop their R-mode and L-mode thinking. For example, meditation, creative writing, and exploring new hobbies can help develop R-mode thinking, while solving puzzles, studying mathematics and logic, and learning programming can help develop L-mode thinking.&lt;/p&gt;

&lt;p&gt;In conclusion, the concept of R-mode and L-mode thinking introduced in Pragmatic Thinking and Learning is both fascinating and practical. By understanding the strengths and weaknesses of each mode and developing both R-mode and L-mode thinking, individuals can enhance their cognitive abilities and achieve a more balanced approach to problem-solving and decision-making.&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>♾️ Infinite Intelligence in Software</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Thu, 23 Nov 2023 15:07:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/infinite-intelligence-in-software-54og</link>
      <guid>https://dev.to/devdalgic/infinite-intelligence-in-software-54og</guid>
      <description>&lt;p&gt;"Think and Grow Rich" by Napoleon Hill is a timeless masterpiece that has helped millions of individuals achieve success in their personal and professional lives. One of the most intriguing concepts introduced in the book is the idea of infinite intelligence.&lt;/p&gt;

&lt;p&gt;Infinite intelligence, according to Hill, is the source of all knowledge and wisdom. It is the divine force that permeates the universe and is available to anyone who seeks it with an open mind and a positive attitude. As someone who has always been interested in spirituality and personal growth, the concept of infinite intelligence resonated deeply with me.&lt;/p&gt;

&lt;p&gt;Hill suggests that by tapping into the infinite intelligence, individuals can achieve their goals and dreams more easily and efficiently. This can be done by developing a strong belief in oneself and one's abilities, setting clear goals and objectives, and taking consistent and focused action towards those goals.&lt;/p&gt;

&lt;p&gt;In my own life, I have experienced the power of infinite intelligence firsthand. Whenever I am faced with a difficult decision or a challenging problem, I make a conscious effort to quiet my mind and seek guidance from within. This often involves meditation, journaling, or simply taking a few deep breaths and tuning out the noise around me.&lt;/p&gt;

&lt;p&gt;Through this process, I have been able to tap into my own intuition and gain clarity and insight into my situation. I have found that the more I trust in the power of infinite intelligence, the more opportunities and solutions seem to present themselves to me.&lt;/p&gt;

&lt;p&gt;Hill also suggests that by surrounding oneself with positive and supportive individuals, one can amplify the power of infinite intelligence. This has certainly been true in my own life, as I have found that having a strong support system of friends, family, and mentors has helped me stay focused and motivated on my path towards success.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about software?
&lt;/h2&gt;

&lt;p&gt;As a software developer, I'm always looking for ways to improve my craft and make a positive impact on the world. That's why I was intrigued when I came across this concept.&lt;br&gt;
According to the book, Infinite Intelligence is the universal power that can help us achieve our goals and dreams. As software developers, we can tap into this power to create technology that makes a positive impact on society.&lt;br&gt;
One way to tap into Infinite Intelligence is to approach software development with an open mind and a willingness to learn. We should be open to new ideas and technologies, and always be looking for ways to improve our skills and knowledge.&lt;/p&gt;

&lt;p&gt;Another way to tap into Infinite Intelligence is to focus on creating software that solves real-world problems. By understanding the needs and challenges of our users, we can create technology that makes a positive impact on their lives. Whether it's developing software for education, healthcare, or the environment, we can use our skills as software developers to make a difference in the world.&lt;/p&gt;

&lt;p&gt;In addition to focusing on the needs of our users, we should also be mindful of the impact our software has on the world. We should be aware of the environmental impact of our software development processes, and take steps to minimize our carbon footprint. We should also be mindful of the social impact of our technology, and ensure that our software promotes inclusivity and equality.&lt;/p&gt;

&lt;p&gt;Finally, we can tap into Infinite Intelligence by cultivating a positive mindset and a belief in our own abilities. By staying focused on our goals and believing in ourselves, we can overcome challenges and achieve our dreams.&lt;/p&gt;

&lt;p&gt;In conclusion, the concept of Infinite Intelligence can be a powerful tool for software developers looking to make a positive impact on the world. By approaching software development with an open mind, a focus on solving real-world problems, and a commitment to environmental and social responsibility, we can tap into this universal power and create technology that makes a difference in the world. So let's embrace the power of Infinite Intelligence and use our skills as software developers to make the world a better place.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>♻️ ESG Applies for Software Devs, too</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Thu, 16 Nov 2023 15:39:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/esg-applies-for-software-devs-too-7n1</link>
      <guid>https://dev.to/devdalgic/esg-applies-for-software-devs-too-7n1</guid>
      <description>&lt;p&gt;In recent years, there has been a growing awareness of the importance of Environmental, Social, and Governance (ESG) factors in the business world. ESG refers to a set of criteria that investors use to evaluate a company's performance on non-financial metrics, such as environmental impact, social responsibility, and ethical governance. As a software developer 🧑‍💻 , you might be wondering how ESG factors into your work. Let's explore how software development can play a role in promoting ESG goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌎 Environmental Responsibility
&lt;/h2&gt;

&lt;p&gt;Environmental responsibility is a critical aspect of ESG that has become increasingly important in recent years. As we become more aware of the impact of human activity on the environment, it is essential that we prioritize sustainability in all areas of our lives, including software development.&lt;/p&gt;

&lt;p&gt;As a software developer, there are several ways you can promote environmental responsibility through your work. One key area to focus on is energy efficiency. The software we develop can be resource-intensive, requiring significant energy consumption to run. By optimizing code, reducing server load, and using efficient algorithms, we can minimize the amount of energy required to run software, which can have a significant impact on reducing our carbon footprint.&lt;/p&gt;

&lt;p&gt;Another way to promote environmental responsibility in software development is to design software that is sustainable. This means creating software that can be used for extended periods without becoming outdated or obsolete. By designing software with long-term sustainability in mind, we can help to reduce the amount of waste generated by software development.&lt;/p&gt;

&lt;p&gt;In addition to energy efficiency and sustainability, there are other areas of environmental responsibility that software developers can focus on. For example, we can develop software that helps to reduce waste, promote recycling, and encourage conservation. We can also design software that helps to monitor and mitigate environmental risks, such as pollution or deforestation.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌞 Social Responsibility
&lt;/h2&gt;

&lt;p&gt;Social responsibility is a topic that is close to my heart. As a software developer, I have come to realize that the technology we create has a significant impact on the world we live in. It is, therefore, our responsibility to ensure that the software we develop promotes social responsibility.&lt;/p&gt;

&lt;p&gt;One way to promote social responsibility in software development is to focus on accessibility and inclusivity. We live in a diverse world with people of all abilities, cultures, and backgrounds, and it's crucial that we design software that caters to everyone's needs. By prioritizing accessibility in our software development work, we can help to ensure that everyone can access and use the technology we create, regardless of their abilities or limitations.&lt;/p&gt;

&lt;p&gt;Developing software that helps to address social issues works, too. For example, we can create software that helps people learn new skills, find employment, or access essential services such as healthcare or education. By designing software that serves a social purpose, we can help to make a positive impact on society and make a difference in people's lives.&lt;/p&gt;

&lt;p&gt;As software developers, we also have a responsibility to ensure that the software we create is ethical and respects people's privacy. We should be mindful of the data we collect and use, and ensure that it is done in a transparent and responsible manner. By taking a principled and ethical approach to software development, we can build trust and confidence in the technology we create and make a positive impact on society.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧑‍⚖️ Governance and Ethics
&lt;/h2&gt;

&lt;p&gt;Governance and ethics are critical aspects of ESG that software developers should take seriously. As a developer, I understand the importance of ensuring that the software we create adheres to ethical and governance standards.&lt;br&gt;
One way to promote good governance and ethics in software development is to ensure that our code is secure and free from vulnerabilities. Cybersecurity threats are becoming increasingly prevalent, and it's crucial that we take steps to protect our users' data and privacy. By prioritizing security in our software development work, we can help to ensure that our software is safe and reliable.&lt;/p&gt;

&lt;p&gt;Another way to promote good governance and ethics is to ensure that our code is well-documented and adheres to industry standards. Good documentation makes it easier for other developers to understand our code and build on top of it, which can help to foster collaboration and innovation. Adhering to industry standards can also help to ensure that our code is reliable and easy to maintain over time.&lt;br&gt;
We also have a responsibility to ensure that our code is ethical and aligns with our values. For example, we should be mindful of the impact our software has on society and take steps to mitigate any negative effects. We should also ensure that our code is inclusive and does not discriminate against any particular group of people.&lt;/p&gt;

&lt;p&gt;In addition to ensuring that our code adheres to good governance and ethical standards, we should also be transparent and accountable in our development processes. This means being open about how we develop our software and being willing to accept feedback and criticism from our users and peers.&lt;/p&gt;

&lt;p&gt;By prioritizing ESG considerations in your software development work, you can help to build a better world. As someone who is passionate about software development and social responsibility, I believe that software can be a powerful force for good. By designing and developing software with ESG goals in mind, we can make a positive impact on the environment, society, and governance. So, let's make a commitment to building software that not only meets business objectives but also promotes ESG principles. Together, we can create a better future for everyone.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>Design Tokens: Cool Philosophy, Cumbersome Experience</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Wed, 08 Nov 2023 15:20:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/design-tokens-cool-philosophy-cumbersome-experience-3im8</link>
      <guid>https://dev.to/devdalgic/design-tokens-cool-philosophy-cumbersome-experience-3im8</guid>
      <description>&lt;p&gt;Have you ever found yourself struggling to turn UI/UX designs into code? It can feel like a never-ending journey through the digital wilderness. Unfortunately, it’s not getting any easier. UI/UX design is constantly evolving, with new trends, devices, and user expectations popping up faster than you can say “responsive design.” As a result, coders often feel like they’re playing catch-up.&lt;/p&gt;

&lt;p&gt;Figma is one of the leading design platforms used in various companies of all sizes. It is used where I work, too. For our new product, our designers created the screens and everything. Then, they marked the design as “ready for development.” They also noted Figma has a new feature called “Dev mode”.&lt;/p&gt;

&lt;p&gt;Curious about new things, I turned on “Dev mode” in the design file, hoping it would make things easier.&lt;/p&gt;

&lt;p&gt;In the typography guidelines page, I saw they used a couple of the font features.&lt;/p&gt;

&lt;p&gt;I checked layouts for the Android XML code. It was as useless as before.&lt;/p&gt;

&lt;p&gt;Looked at texts for TextView code. Useless as ever.&lt;/p&gt;

&lt;p&gt;Then, I went to see how colors are defined. For this project, our design team used tokens for colors. But, does Figma list these colors in Android color resource format? Or, in any other format at all? Or, can devs even see all of the tokens in one place?&lt;/p&gt;

&lt;p&gt;Of course not.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Design tokens are in beta for designers, and the feature is non-existent for developers in Figma.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I just want to start by saying, I’m totally on board with the whole design tokens thing, and I think they’re pretty awesome. You know, it’s just so helpful to have a common language that both the design and code folks can use to make sure we’re all on the same page.&lt;/p&gt;

&lt;p&gt;But here’s the kicker — our tools are struggling, and they’re struggling hard. It’s like they’re stuck in the past while design philosophies are evolving faster than a superhero on caffeine.&lt;/p&gt;

&lt;p&gt;Don’t get me wrong, I’m all about progress and keeping things fresh, but our tools need a serious update to keep pace with the ever-changing design world. We want to ride the wave of these new design philosophies, but it feels like we’re on a rusty old bicycle.&lt;/p&gt;

&lt;p&gt;So, yeah, I’m all for design tokens, but we’ve got to get our tools up to speed.&lt;/p&gt;

&lt;p&gt;After chatting with our designers, we found out that they can export tokens as JSON. It’s better, but I still had to manually define a hundred colors one by one. It’s error-prone and inefficient.&lt;/p&gt;

&lt;p&gt;Tried using ChatGPT to reformat the JSON to Android format. It couldn’t understand how to do it.&lt;/p&gt;

&lt;p&gt;Then I did this:&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;a href="https://devdalgic.github.io/token-android-parser/?source=post_page-----6374d783c97d--------------------------------" rel="noopener noreferrer"&gt;
      devdalgic.github.io
    &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Paste your exported Figma JSON and instantly get Android colors. You can choose the naming format and whether you want to use uppercase letters for hex color naming.&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%2Fvxsfuym0mlsncbmmnbyl.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%2Fvxsfuym0mlsncbmmnbyl.png" alt="Image description" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I believe exported format of JSON can differ, but the tools should be fine. Let me know if you find it helpful!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>programming</category>
      <category>design</category>
    </item>
    <item>
      <title>Advanced Typography: Using OTF Font Features in Android</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Mon, 06 Nov 2023 15:25:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/advanced-typography-using-otf-font-features-in-android-1f2d</link>
      <guid>https://dev.to/devdalgic/advanced-typography-using-otf-font-features-in-android-1f2d</guid>
      <description>&lt;p&gt;When it comes to typography, there’s more to it than just choosing between medium and semibold font weights. Modern OpenType fonts come packed with a variety of advanced font features that allow for a more sophisticated and visually stunning typographic experience.&lt;/p&gt;

&lt;p&gt;These features, ranging from ligatures to contextual alternates and beyond, offer designers and typographers greater control over how text is displayed, resulting in more creative and expressive typography. Whether working on a design project or simply trying to make your text stand out, these font features are essential for achieving the best possible results.&lt;/p&gt;

&lt;p&gt;Please note that the features mentioned are only available in OpenType fonts. Therefore, the font file you use must have .otf extension. Additionally, font features and their names may differ from font to font. Not all fonts may support the feature you are looking for.&lt;/p&gt;

&lt;p&gt;To provide a clear example, I will be using Inter font, which is widely used and has detailed documentation. The following image illustrates ss01 and ss02 features of the font.&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%2F5m2j84tfzfk7j3cgly24.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%2F5m2j84tfzfk7j3cgly24.png" alt="Image taken from https://rsms.me/inter/" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After adding the OTF file to /res/font folder, we need to set the attribute to use features. If we don’t modify the features, the font will be presented in its default settings.&lt;/p&gt;

&lt;p&gt;We need to set the attribute as in the example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;TextView
  tools:text="Placeholder text"
  android:fontFeatures="ss01" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And, when you want to combine features, separate the feature names with commas as in the example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;TextView
  tools:text="Placeholder text"
  android:fontFeatures="ss01, ss02" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But where are those abbreviations coming from? When you visit the lab, you’ll see a section named features in the sidebar. There, you can play with any features you like and see the results of the change on the left side. The feature names are also given there for reference.&lt;/p&gt;

&lt;p&gt;And there you go. This is an example of how you can do advanced text styling in TextView.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>Do not use AndroidViewModel</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Thu, 02 Nov 2023 16:58:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/do-not-use-androidviewmodel-1hme</link>
      <guid>https://dev.to/devdalgic/do-not-use-androidviewmodel-1hme</guid>
      <description>&lt;p&gt;Browsing the Google developer documentation for Android, I stumbled upon AndroidViewModel class. Although I use view models, I never heard of it.&lt;/p&gt;

&lt;p&gt;Looking at the reference, things became even more strange. It has a reference to the Application class. Its description clearly says: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Application context aware ViewModel&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And here is the source code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/**
 * Application context aware {@link ViewModel}.
 * &amp;lt;p&amp;gt;
 * Subclasses must have a constructor which accepts {@link Application} as the only parameter.
 * &amp;lt;p&amp;gt;
 */
public class AndroidViewModel extends ViewModel {
    @SuppressLint("StaticFieldLeak")
    private Application mApplication;

    public AndroidViewModel(@NonNull Application application) {
        mApplication = application;
    }

    /**
     * Return the application.
     */
    @SuppressWarnings("TypeParameterUnusedInFormals")
    @NonNull
    public &amp;lt;T extends Application&amp;gt; T getApplication() {
        //noinspection unchecked
        return (T) mApplication;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look at this abomination. The constructor needs an instance of Application. The property mApplication even has StaticFieldLeak suppressed.&lt;/p&gt;

&lt;p&gt;Like, what? I thought the whole philosophy behind the view models was to isolate business logic from the Android framework.&lt;/p&gt;

&lt;p&gt;It's safe to say that the context class is one of the most commonly used classes in the Android world. Junior developers who use view models should avoid making a habit of passing this class around. However, this is not a product of a junior developer. This is an official library.&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%2Fevyt158hlum02xl7flz6.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%2Fevyt158hlum02xl7flz6.png" alt="Image description" width="800" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In fact, the official recommendations for Android architecture suggest not using AndroidViewModel. It recommends to move the dependency to the UI or the data layer. Exactly. Here are the top reasons why:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Memory leaks&lt;/li&gt;
&lt;li&gt;Lack of testability&lt;/li&gt;
&lt;li&gt;Coupling&lt;/li&gt;
&lt;/ol&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%2F866ygx8kf77ai7ivjcc4.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%2F866ygx8kf77ai7ivjcc4.png" alt="Image description" width="800" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Context is highly coupled with the Android framework and we should always avoid using any Android-specific classes in our view models.&lt;/p&gt;

&lt;h2&gt;
  
  
  When you are creating a view model class, the right class to inherit is ViewModel and ViewModel only.
&lt;/h2&gt;

&lt;p&gt;This sparks a question: Why is there an official implementation of such a thing in the first place?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>3 Android Studio Plugins for a Better Developer Experience for Kotlin</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Thu, 02 Nov 2023 15:47:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/3-android-studio-plugins-for-a-better-developer-experience-for-kotlin-3jfc</link>
      <guid>https://dev.to/devdalgic/3-android-studio-plugins-for-a-better-developer-experience-for-kotlin-3jfc</guid>
      <description>&lt;p&gt;As software developers and engineers, it is crucial that we make the most of the tools available to us to minimize mistakes and maintain high code quality. Our time is precious, and we should use it wisely by focusing on resolving complex issues instead of tedious, repetitive tasks. In this article, I will explore three plugins that have helped me improve my coding process without adding extra hassle.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Code Quality: SonarLint ✅
&lt;/h2&gt;

&lt;p&gt;When it comes to software development, linters are an incredibly valuable tool for developers. What they do is analyze source code for a variety of potential issues, such as coding style violations, bugs, errors, and other problems. It’s important to note that linters don’t actually execute the code, but they do provide developers with feedback on potential issues that need to be addressed.&lt;/p&gt;

&lt;p&gt;The term “linters” actually stems from a historical tool known as “lint,” which was specifically used to check C programming language code. Nowadays, linters are available for a wide range of programming languages and are absolutely crucial for modern software development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7973-sonarlint?source=post_page-----57b8182ba9df--------------------------------" rel="noopener noreferrer"&gt;Get the plugin here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One specific linter tool that’s worth mentioning is SonarLint. It’s a static code analysis tool that is particularly helpful for developers who want to identify and resolve code issues as they write it. It’s part of the larger SonarQube ecosystem, which is known for providing code quality and security analysis for projects.&lt;/p&gt;

&lt;p&gt;One of the standout features of SonarLint is that it’s designed to work directly within integrated development environments (IDEs) and code editors, which means it can provide real-time feedback to developers during the coding process. All of this makes SonarLint an incredibly powerful and helpful tool for anyone involved in software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Code Styling: Ktlint ✅
&lt;/h2&gt;

&lt;p&gt;If you’re working on a Kotlin project, you’ll want to take a closer look at Ktlint. This powerful linter, developed by Pinterest, ensures that your code adheres to the official Kotlin and Android coding standards.&lt;/p&gt;

&lt;p&gt;With Ktlint, you can maintain consistency and quality throughout your codebase, making it easier to read, understand, and maintain. It’s an indispensable tool for teams and developers who want to streamline their development process and ensure that their code is top-notch.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: If you don’t like seeing warnings in your code due to styling, you may prefer using Android Studio’s built-in code formatter by right-clicking a Kotlin file and selecting “Reformat code” or by performing this operation automatically during committing.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://plugins.jetbrains.com/plugin/15057-ktlint-unofficial-?source=post_page-----57b8182ba9df--------------------------------" rel="noopener noreferrer"&gt;Get the plugin here.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. ADB Shortcuts: ADB Idea 🚧
&lt;/h2&gt;

&lt;p&gt;The ADB Idea plugin is an extremely useful tool that streamlines Android app development by providing easy access to commonly used ADB commands.&lt;/p&gt;

&lt;p&gt;This plugin offers a variety of shortcuts and features that are specifically designed for Android Debug Bridge (ADB), which is a command-line tool that is utilized to interact with Android devices and emulators. By using this plugin, you can save time by avoiding the need to constantly type out package and device names.&lt;/p&gt;

&lt;p&gt;The following commands are included in the plugin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ADB Uninstall App
ADB Kill App
ADB Start App
ADB Restart App
ADB Clear App Data
ADB Clear App Data and Restart
ADB Start App With Debugger
ADB Restart App With Debugger
ADB Grant/Revoke Permissions
ADB Enable/Disable Wi-Fi
ADB Enable/Disable Mobile Data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Additionally, if you have multiple devices connected, the plugin will display a window that allows you to select the device that you want to execute the command on. Overall, the ADB Idea plugin is an excellent tool that can help to simplify and improve the Android app development process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7380-adb-idea?source=post_page-----57b8182ba9df--------------------------------" rel="noopener noreferrer"&gt;Get the plugin here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The cover image is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>tools</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>💪 Gain Lean Muscle and Lead a Lean Startup</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Wed, 01 Nov 2023 15:23:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/gain-lean-muscle-and-lead-a-lean-startup-1cme</link>
      <guid>https://dev.to/devdalgic/gain-lean-muscle-and-lead-a-lean-startup-1cme</guid>
      <description>&lt;p&gt;Do you feel exhausted from investing your time, energy, and money into a business concept only to witness it fail miserably? This is a heartbreaking experience, and regrettably, it happens frequently to business owners. &lt;/p&gt;

&lt;p&gt;However, what if there was an alternative? What if you could establish and expand your business without putting everything on the line?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A healthy mind in a healthy body."&lt;br&gt;
-M. Kemal Ataturk&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Physical activity is tightly coupled with brain activity. That's a fact. Exercise and a good diet keep your body healthy. They have various benefits to the processes happening in our bodies every single moment.&lt;/p&gt;

&lt;p&gt;I believe if one wants to lead a startup, one needs to have a consistent level of physical activity in their life. You don't need to take my word for it, it's science.&lt;/p&gt;

&lt;p&gt;That's what I and my co-founder did while we were growing our mobile games studio. We even became kind of gym buddies.&lt;/p&gt;

&lt;p&gt;After this kind of habit is made and one starts gaining lean muscle, one needs to find out how to grow a lean startup. That's where Lean Startup by Eric Ries comes in.&lt;/p&gt;

&lt;p&gt;➡️ Learn about the concept of lean startup methodology, which prioritizes experimentation, iteration, and learning from customers, to minimize waste, reduce risk, and increase chances of success.&lt;/p&gt;

&lt;p&gt;To apply this approach to your business, understand its core principles and strategies. Eric Ries’ book, The Lean Startup, breaks down these components and offers real-world examples and case studies to demonstrate its effectiveness. This business book provides a fresh perspective on entrepreneurship and innovation, emphasizing the importance of experimentation and customer feedback.&lt;/p&gt;

&lt;p&gt;The main points made in the book are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;🕴️Conventional business planning methods, which involve conducting thorough market research and making long-term plans, are struggling to keep up with the fast-paced and unpredictable nature of the startup industry. The need for quick action and the constantly changing market and technological landscape make traditional strategies ineffective. Startups require a new approach to successfully navigate the challenges and uncertainties of the industry.&lt;/li&gt;
&lt;li&gt;    🧪 The Lean Startup approach emphasizes the importance of quick experimentation and iteration to identify and validate the most promising opportunities. This philosophy recognizes that time is a precious resource and a critical factor for success in the dynamic realm of startups. By shortening the traditional timeline of product development and market entry, this approach maximizes the power of agility. In a constantly changing landscape, the ability to pivot swiftly is a valuable asset. Instead of sticking to a static plan that may quickly become obsolete, the Lean Startup methodology promotes a continuous cycle of action, feedback, and refinement. This cycle is not just about progress; it’s also a strategy for resilience. Startups can efficiently test hypotheses and assumptions through rapid experimentation, like sifting through a treasure chest of ideas to discover the gems that hold the most promise.&lt;/li&gt;
&lt;li&gt;    📝 A key aspect of the Lean Startup approach is the “minimum viable product” (MVP), which is a simplified version of a product or service that is introduced to the market as quickly as possible to gather feedback and gain insight into customer needs. This idea acknowledges that striving for perfection can impede progress and that waiting for a fully polished product could be a costly error. Instead, the MVP recognizes imperfection as a stepping stone towards perfection. It serves as a model, a preview, and a glimpse of what’s to come. By releasing an MVP, entrepreneurs embark on an exploration journey. It’s like freeing a young bird from its nest, observing how it flies, and understanding where its wings require strengthening. The MVP is the foundation on which customer feedback is expressed, theories are evaluated, and hypotheses are confirmed. It doesn’t need to be loaded with features, it just needs to capture the heart of the idea.&lt;/li&gt;
&lt;li&gt;    📊 One of the key ideas in the Lean Startup framework is the “build-measure-learn” feedback loop. This process involves continuously gathering and analyzing data from customer interactions to make iterative improvements to the product or service. By operating in a customer-centric and adaptive manner, startups can stay finely tuned.&lt;/li&gt;
&lt;li&gt;    🎤 The Lean Startup approach places great importance on developing and testing hypotheses related to customer needs and market demand. These hypotheses serve as guiding principles, directing the product development process using customer insights as the guiding force.&lt;/li&gt;
&lt;li&gt;    ✅ The Lean Startup approach aims to quickly identify and capture the most promising opportunities. Rather than wasting time and resources on a product or service that may not resonate with customers, this methodology strives to ensure that all efforts align with genuine customer needs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Whether you’re starting from scratch or seeking to pivot an existing business, The Lean Startup provides valuable insights to help you make better decisions, more efficiently. Give it a read and your business (and your peace of mind) may benefit.&lt;/p&gt;

</description>
      <category>php</category>
      <category>webdev</category>
      <category>framework</category>
    </item>
    <item>
      <title>🔐 Unlock Your Full Potential: The 7 Habits of Highly Effective People</title>
      <dc:creator>Denizhan Dalgıç</dc:creator>
      <pubDate>Tue, 31 Oct 2023 16:31:00 +0000</pubDate>
      <link>https://dev.to/devdalgic/unlock-your-full-potential-the-7-habits-of-highly-effective-people-3fbi</link>
      <guid>https://dev.to/devdalgic/unlock-your-full-potential-the-7-habits-of-highly-effective-people-3fbi</guid>
      <description>&lt;p&gt;Do you find yourself always busy, but not achieving much? Or do you face difficulties in reaching your goals despite putting in maximum effort? If you can relate to this, know that you’re not alone. Many individuals feel stuck and unable to make significant progress in their personal or professional lives.&lt;/p&gt;

&lt;p&gt;Imagine a world where people can break free from their past limitations and achieve greatness in all aspects of their lives. This is not an impossible dream, but a reality waiting to be embraced.&lt;/p&gt;

&lt;p&gt;The journey to becoming highly effective begins with realizing that you have the power to shape your life. You can take charge of your destiny and make deliberate choices, decisions, and actions that determine your outcomes.&lt;/p&gt;

&lt;p&gt;To embark on a purpose-driven path, you need to have a clear vision of what you want to achieve. Defining your goals and values creates a roadmap that guides you through life’s challenges and opportunities.&lt;/p&gt;

&lt;p&gt;Effective time management becomes important as you prioritize tasks that contribute meaningfully to your objectives. Building strong relationships with others, collaborating, and empathizing become pivotal in achieving mutual growth and collective prosperity.&lt;/p&gt;

&lt;p&gt;Effective communication is also vital in fostering understanding, resolving conflicts, and strengthening bonds. As you combine efforts with like-minded individuals, each contributing their unique strengths and talents, you create something far greater than any one person could achieve alone.&lt;/p&gt;

&lt;p&gt;To maintain peak performance, you must also practice self-care and rejuvenation. In this world of highly effective individuals, each person becomes a beacon of inspiration, radiating positivity and growth. The ripple effect of their influence spreads far and wide, igniting the potential in others and fostering a collective consciousness of progress and possibility.&lt;/p&gt;

&lt;p&gt;The 7 Habits of Highly Effective People is a self-help book that offers guidance on how to be more effective in both personal and professional life. The book’s main points emphasize the importance of proactivity, defining goals and values, effective time management, building strong relationships, effective communication, collaboration, and self-care. By embodying these habits, you can inch closer to the extraordinary life that awaits — a life defined by purpose, impact, and unwavering success.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;🔑 The 7 Habits: Be proactive, Begin with the end in mind, Put first things first, Think win-win, Seek first to understand, then to be understood, Synergize, and Sharpen the saw.&lt;/li&gt;
&lt;li&gt;    ✌️ The first three habits: “Private Victory,” focus on developing personal effectiveness by taking responsibility for one’s own life, setting goals, and prioritizing tasks.&lt;/li&gt;
&lt;li&gt;    🏆 The next three habits: “Public Victory,” focus on building relationships and working effectively with others by seeking to understand their perspectives, communicating effectively, and working together in a spirit of cooperation.&lt;/li&gt;
&lt;li&gt;    🔐 The final habit: “Sharpen the Saw,” emphasizes the importance of taking care of oneself physically, emotionally, mentally, and spiritually to maintain effectiveness over the long term.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you’re eager to improve your life and unleash your maximum potential, this book is an absolute must-read. Packed with practical tips and wise observations that you can begin implementing immediately, you’ll be well on your way to becoming one of the highly effective individuals you look up to.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: The thumbnail image of this article is created with AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
