<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ralphcodes]]></title><description><![CDATA[ralphcodes]]></description><link>https://blog.ralphilius.com</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 20:34:02 GMT</lastBuildDate><atom:link href="https://blog.ralphilius.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The Art of Adaptable Product Management: Transforming Barriers into Wins]]></title><description><![CDATA[TLDR; Adaptable product management involves embracing obstacles as opportunities for growth and utilizing various techniques to overcome challenges. By fostering a culture of continuous improvement, innovation, and collaboration, product managers can...]]></description><link>https://blog.ralphilius.com/art-of-adaptable-product-management-transforming-barriers-into-wins</link><guid isPermaLink="true">https://blog.ralphilius.com/art-of-adaptable-product-management-transforming-barriers-into-wins</guid><category><![CDATA[Product Management]]></category><dc:creator><![CDATA[ralphilius]]></dc:creator><pubDate>Fri, 12 May 2023 02:00:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1683802317683/42a93c7e-eb62-4b7e-b514-67ee09ebc4e9.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p>TLDR; Adaptable product management involves embracing obstacles as opportunities for growth and utilizing various techniques to overcome challenges. By fostering a culture of continuous improvement, innovation, and collaboration, product managers can successfully navigate the complexities of their roles and drive product success.</p>
</blockquote>
<h2 id="heading-introduction">Introduction</h2>
<p>In the fast-paced world of product management, adaptability is key. Product managers must adjust strategies and stay ahead as markets and technologies change. They need a deep understanding of the market, customer needs, and technology, plus the ability to make quick, informed decisions.</p>
<p>This article discusses adaptability's importance in product management and explores techniques to overcome challenges. By embracing this mindset, product managers can effectively navigate their industry and turn obstacles into opportunities for innovation and growth.</p>
<h2 id="heading-common-obstacles-in-product-management-and-their-impact">Common Obstacles in Product Management and Their Impact</h2>
<p>Product managers can use various techniques to transform obstacles into opportunities, navigate complexities, and drive growth. Common obstacles include:</p>
<ul>
<li><p><strong>Limited Resources</strong>: Working with constraints like limited budgets, manpower shortages, or inadequate tools can hinder the development process. Maximizing available resources creatively allows for exceptional results.</p>
</li>
<li><p><strong>Tight Deadlines</strong>: Meeting tight timelines while maintaining high-quality standards is a common challenge. Effective time management and task prioritization ensure timely delivery without compromising quality.</p>
</li>
<li><p><strong>Competing Priorities</strong>: Balancing multiple projects and tasks leads to conflicting priorities, resulting in reduced focus and efficiency. Establishing clear goals and priorities enables efficient allocation of time and resources to each task.</p>
</li>
<li><p><strong>Stakeholder Conflicts</strong>: Conflicting interests and opinions among stakeholders can impede the product development process. Fostering open communication and collaboration helps address conflicts and align stakeholders around a shared vision.</p>
</li>
<li><p><strong>Technological Constraints</strong>: Outdated systems, software limitations, or a lack of technical expertise can create constraints. Staying informed about technological advancements and investing in continuous learning help overcome these challenges.</p>
</li>
<li><p><strong>Detecting Hidden Obstacles</strong>: Being aware of concealed challenges requires comprehensive analyses and seeking feedback from team members and stakeholders. This helps identify and address hidden obstacles proactively.</p>
</li>
</ul>
<p>In conclusion, a comprehensive approach to assessing obstacles is crucial for effective product management. By evaluating each obstacle's impact, prioritizing efforts, and developing targeted strategies, product managers can navigate the complex landscape of product development and achieve success.</p>
<h2 id="heading-embracing-obstacles-as-stepping-stones-to-success">Embracing Obstacles as Stepping Stones to Success</h2>
<p>To succeed, product managers must adopt a mindset that reframes obstacles as growth opportunities. Viewing challenges as invaluable experiences fosters a positive attitude and motivation.</p>
<p>Product managers should dedicate time and resources to thoroughly analyzing the obstacles they face, and identifying any hidden prospects for advancement that may lie within these challenges. This process involves understanding the root cause of each obstacle and exploring ways to overcome or mitigate its impact without losing sight of the ultimate goal. By identifying and capitalizing on potential opportunities, product managers can turn setbacks into stepping stones on the path to success.</p>
<p>Cultivating a learning and experimentation culture is essential. A secure environment empowers team members to take risks, learn from mistakes, and improve problem-solving skills. This equips teams to face challenges and navigate product development confidently.</p>
<h2 id="heading-techniques-for-turning-obstacles-into-opportunities">Techniques for Turning Obstacles into Opportunities</h2>
<p>Several techniques can be employed to effectively turn obstacles into opportunities for growth and development. Some of these strategies include:</p>
<ol>
<li><p><strong>Resource constraints</strong>: When faced with limited resources, it is crucial to efficiently allocate and manage them. This involves identifying opportunities for resource sharing and collaboration within the organization or with external partners. Additionally, strategic planning plays a vital role in optimizing resource utilization, ensuring that resources are allocated to projects that align with the company's objectives and priorities.</p>
</li>
<li><p><strong>Prioritization and focus</strong>: To overcome the challenges of prioritization and focus, it is essential to clearly define goals and objectives. By establishing a clear direction, product managers can prioritize tasks based on their importance and urgency. Regularly reassessing priorities allows for adjustments as necessary, ensuring that the team remains focused on the most critical tasks that contribute to the overall product vision.</p>
</li>
<li><p><strong>Lean product development</strong>: Streamlining processes to minimize waste and maximize value is a key technique for turning obstacles into opportunities. Embracing lean product development principles involves continuously improving development methods and practices, eliminating unnecessary steps, and focusing on delivering high-quality products efficiently, even with limited resources.</p>
</li>
<li><p><strong>Creative problem-solving</strong>: Encouraging innovative thinking and experimentation is vital in overcoming obstacles. By fostering a culture of curiosity and open-mindedness, product managers can tap into their team's creative potential. Utilizing techniques such as brainstorming and other creativity-enhancing methods can lead to novel solutions and innovative approaches to address challenges.</p>
</li>
<li><p><strong>Tight deadlines</strong>: Effectively managing time is crucial when facing tight deadlines. Developing time management skills allows product managers to break down complex projects into smaller, manageable tasks. Setting interim milestones helps maintain focus and momentum, ensuring that progress is made consistently and enabling the team to meet challenging deadlines.</p>
</li>
<li><p><strong>Agile methodologies</strong>: Agile methodologies provide a framework for flexibility and adaptability in project management. Embracing agility involves cross-functional collaboration and iterative development. By continuously evaluating progress and adjusting strategies as needed, product managers can respond to changing requirements and optimize outcomes.</p>
</li>
<li><p><strong>Timeboxing and iterative development</strong>: Timeboxing involves allocating specific periods for tasks and activities. This technique helps create a sense of urgency and ensures that time is effectively utilized. Iterative development, on the other hand, focuses on incremental improvements and progress. Regularly reviewing and refining development processes based on feedback and learning allows for continuous optimization.</p>
</li>
<li><p><strong>MVP (Minimum Viable Product) approach</strong>: The MVP approach is a valuable technique for overcoming obstacles. By identifying the core features necessary for product success, product managers can develop and launch a functional yet minimal version of the product. Gathering user feedback early on informs further development and optimization, ensuring that resources are focused on delivering a product that meets customer needs.</p>
</li>
<li><p><strong>Competing priorities</strong>: Balancing multiple goals and objectives is a common challenge in product management. To turn this obstacle into an opportunity, it is crucial to establish clear criteria for decision-making and priority-setting. Product managers should facilitate negotiation and compromise to reconcile conflicting interests, ensuring that the team works collaboratively towards shared goals.</p>
</li>
<li><p><strong>Aligning with company goals and objectives</strong>: To overcome obstacles, product managers must ensure that team objectives align with the overall company strategy. Regularly communicating and reinforcing the company's vision and mission helps keep the team focused and motivated. Collaboration with other departments promotes synergy and facilitates the achievement of shared goals.</p>
</li>
<li><p><strong>Transparent communication and collaboration</strong>: Open and honest communication is essential in product management. Fostering a culture of transparent communication within the team encourages active participation and knowledge sharing. Utilizing collaboration tools and platforms further facilitates effective teamwork, enabling the team to overcome obstacles through shared insights and collective problem-solving.</p>
</li>
<li><p><strong>Data-driven decision-making</strong>: Leveraging data and analytics is a powerful technique for turning obstacles into opportunities. By using data to inform decision-making processes, product managers can make informed choices that align with customer needs and preferences. Continuously tracking and measuring key performance indicators allows for ongoing evaluation and adjustment of strategies. Encouraging a culture of data-driven experimentation and learning enables the team to adapt quickly and make data-backed decisions that lead to improved product outcomes.</p>
</li>
<li><p><strong>Stakeholder conflicts</strong>: Addressing potential sources of conflict early on is crucial in turning obstacles into opportunities. Product managers should actively identify and understand differing perspectives through active listening and empathy. By practicing effective communication and facilitating negotiation and compromise, product managers can work towards mutually agreeable solutions that satisfy the needs of various stakeholders.</p>
</li>
<li><p><strong>Active listening and empathy</strong>: Developing strong listening skills is essential for effective product management. By actively listening to team members and stakeholders, product managers can gain a deeper understanding of their perspectives and concerns. Fostering empathy and understanding allows for better collaboration and builds strong relationships based on trust and mutual respect.</p>
</li>
<li><p><strong>Negotiation and compromise</strong>: Effective negotiation strategies are valuable in resolving conflicts and turning obstacles into opportunities. Product managers should employ techniques that help identify areas of common ground and potential compromise. Balancing competing interests while working towards shared goals fosters collaboration and helps overcome challenges through constructive dialogue and agreement.</p>
</li>
<li><p><strong>Building trust and rapport</strong>: Establishing a supportive and inclusive team environment is critical for overcoming obstacles. Product managers should demonstrate reliability, integrity, and accountability, building trust with team members. Developing strong interpersonal relationships based on trust and mutual respect fosters a positive work environment that promotes effective collaboration and problem-solving.</p>
</li>
<li><p><strong>Technological constraints</strong>: Identifying and addressing potential technological limitations early on is crucial for successful product management. By proactively assessing and understanding these constraints, product managers can explore and evaluate new technologies and solutions. Collaboration with technology partners helps overcome challenges and maximizes efficiency by leveraging external expertise and resources.</p>
</li>
<li><p><strong>Leveraging existing technologies</strong>: Maximizing the potential of existing tools and platforms is an effective way to turn obstacles into opportunities. Continually assessing and optimizing technology usage allows product managers to improve performance and productivity. Encouraging knowledge sharing and providing training on relevant technologies enables the team to leverage existing resources effectively.</p>
</li>
<li><p><strong>Exploring alternative solutions</strong>: Overcoming obstacles often requires thinking outside the box. Product managers should encourage the exploration of a range of potential solutions. By evaluating the feasibility and effectiveness of different approaches, product managers can identify innovative strategies that address challenges in unique ways. Fostering a culture of experimentation and continuous improvement enables the team to find optimal solutions.</p>
</li>
<li><p><strong>Collaborating with technology partners</strong>: Establishing strong partnerships with technology providers and experts can be instrumental in overcoming obstacles. Product managers should actively seek out collaboration with external resources to leverage their expertise and overcome technological challenges. By fostering a collaborative approach to problem-solving and innovation, product managers can tap into a broader network of knowledge and experience to turn obstacles into opportunities.</p>
</li>
</ol>
<h2 id="heading-measuring-success-in-overcoming-obstacles">Measuring Success in Overcoming Obstacles</h2>
<p>To measure success in overcoming obstacles, clear metrics aligned with business goals and considering specific challenges should be established. Setting measurable objectives helps assess collaboration effectiveness.</p>
<p>While working with external resources to tackle obstacles, closely monitoring progress is vital. Regularly reviewing metrics and evaluating achievements allows for identifying areas needing adjustments and adapting strategies. This ensures flexibility and responsiveness to new challenges.</p>
<p>Celebrating successes and acknowledging team members' efforts fosters morale and continuous improvement. Analyzing failures and setbacks is equally important. Learning from these experiences refines approaches and applies lessons to future challenges, fostering a growth mindset that values learning and development.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Product managers should embrace failures and setbacks as opportunities for growth and learning. By adopting a positive perspective and viewing obstacles as chances to improve, they can refine their strategies and collaborate more effectively with their teams. Continuous improvement is key for product managers to excel, as they should always seek ways to enhance their skills and knowledge in the field. By remaining dedicated to growth and development, product managers can navigate the complexities of their roles and achieve greater success in their careers.</p>
]]></content:encoded></item><item><title><![CDATA[Unlocking Productivity: Better Remote Work with Proper KPIs]]></title><description><![CDATA[Introduction
Working from home (WFH) has become increasingly common in recent times, offering numerous benefits such as flexibility, decreased commuting stress, and greater autonomy. However, maintaining productivity while working remotely can be cha...]]></description><link>https://blog.ralphilius.com/unlocking-productivity-better-remote-work-with-proper-kpis</link><guid isPermaLink="true">https://blog.ralphilius.com/unlocking-productivity-better-remote-work-with-proper-kpis</guid><category><![CDATA[Productivity]]></category><category><![CDATA[performance]]></category><dc:creator><![CDATA[ralphilius]]></dc:creator><pubDate>Thu, 11 May 2023 02:54:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/YUuSAJkS3U4/upload/0a95258bf2a98a1cb49d11b856fb2a82.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction"><strong>Introduction</strong></h2>
<p>Working from home (WFH) has become increasingly common in recent times, offering numerous benefits such as flexibility, decreased commuting stress, and greater autonomy. However, maintaining productivity while working remotely can be challenging. In the absence of a conventional office setting and direct supervision, it is crucial to develop efficient strategies for measuring and improving productivity. This is where Key Performance Indicators (KPIs) come into play.</p>
<p>In this article, we will delve into the world of remote work and explore how incorporating proper KPIs can significantly improve productivity levels. By leveraging measurable goals, tracking progress, and staying motivated, you can achieve optimal results and find success in your WFH endeavors.</p>
<h2 id="heading-understanding-kpis-the-foundation-of-productivity"><strong>Understanding KPIs: The Foundation of Productivity</strong></h2>
<p>To kickstart our journey towards better WFH, let's first understand the concept of Key Performance Indicators (KPIs). These are measurable values that demonstrate how effectively an individual or a team is achieving their objectives. KPIs provide clarity, focus, and a benchmark against which progress can be evaluated.</p>
<p>By establishing KPIs tailored to your role and responsibilities, you set clear expectations for yourself and ensure you remain on track. Here's how incorporating proper KPIs can enhance your WFH experience:</p>
<ol>
<li><p><strong>Clarifying Objectives:</strong> With well-defined KPIs, you gain a crystal-clear understanding of what is expected from you. This clarity enables you to prioritize tasks, allocate time efficiently, and eliminate ambiguity.</p>
</li>
<li><p><strong>Measuring Progress</strong>: KPIs act as a compass, guiding you towards your goals. By setting milestones and tracking progress regularly, you can identify areas where improvement is needed and make necessary adjustments to stay on course.</p>
</li>
<li><p><strong>Motivating Achievement</strong>: When KPIs are set appropriately, they provide a sense of purpose and motivate you to perform at your best. Meeting or exceeding KPIs can instill a sense of accomplishment and drive you to push your limits further.</p>
</li>
<li><p><strong>Facilitating Communication</strong>: KPIs also serve as a valuable communication tool, especially in a remote work setting. By sharing your KPIs with colleagues and superiors, you foster transparency, align expectations, and promote collaboration.</p>
</li>
</ol>
<h2 id="heading-setting-effective-kpis-for-wfh-success"><strong>Setting Effective KPIs for WFH Success</strong></h2>
<p>Now that we understand the significance of KPIs, let's dive into the process of setting effective KPIs tailored to your WFH goals. Follow these steps to ensure your KPIs are meaningful and actionable:</p>
<ol>
<li><p><strong>Identify Clear Goals</strong>: Start by defining your overarching objectives for your WFH role. What do you want to achieve? Ensure your goals are specific, measurable, attainable, relevant, and time-bound (SMART).</p>
</li>
<li><p><strong>Break It Down</strong>: Once you have established your main goals, break them down into smaller, manageable tasks or milestones. This will help you track progress more effectively and make the journey less overwhelming.</p>
</li>
<li><p><strong>Quantify and Assign Metrics</strong>: Determine the metrics that align with each task or milestone. For example, if your goal is to increase customer satisfaction, you can measure it using metrics such as Net Promoter Score (NPS) or customer feedback ratings.</p>
</li>
<li><p><strong>Set Realistic Targets</strong>: Ensure that your targets are realistic and attainable within the given timeframe. Unrealistic or overly ambitious targets can lead to frustration and demotivation.</p>
</li>
<li><p><strong>Regularly Review and Adjust</strong>: KPIs are not set in stone. Regularly review your progress, reassess your goals, and adjust your KPIs as needed.</p>
</li>
<li><p><strong>Seek Feedback and Collaboration</strong>: Don't hesitate to seek feedback from your peers, managers, or mentors when setting KPIs. Their insights and expertise can help refine your goals and ensure alignment with organizational objectives.</p>
</li>
<li><p><strong>Leverage Technology</strong>: In the digital age, there are numerous tools and software available to track and measure KPIs effectively. Explore project management software, productivity apps, or task-tracking tools that can streamline your WFH experience and keep you accountable.</p>
</li>
<li><p><strong>Communicate Expectations</strong>: Once your KPIs are defined, it's crucial to communicate them clearly to relevant stakeholders. Whether it's your team, manager, or clients, ensure everyone understands what you're working towards and how success will be measured.</p>
</li>
</ol>
<h2 id="heading-maximizing-wfh-productivity-with-kpis"><strong>Maximizing WFH Productivity with KPIs</strong></h2>
<p>Now that you have established meaningful KPIs, let's explore strategies to maximize productivity while working from home. Incorporate these tips into your WFH routine to stay focused, motivated, and achieve outstanding results:</p>
<ol>
<li><p><strong>Create a Dedicated Workspace</strong>: Designate a specific area in your home as your workspace. Ensure it is comfortable, well-organized, and free from distractions. This physical separation helps you mentally switch into work mode and fosters productivity.</p>
</li>
<li><p><strong>Establish a Routine</strong>: Set a consistent daily routine that aligns with your most productive hours. Wake up at the same time each day, allocate specific time slots for focused work, breaks, and personal activities. A structured routine enhances discipline and prevents procrastination.</p>
</li>
<li><p><strong>Practice Effective Time Management</strong>: Break down your work into manageable chunks and allocate time slots for each task. Use time-blocking techniques to prioritize important activities and minimize time spent on non-essential tasks. Tools like the Pomodoro Technique can help you stay focused and maintain a healthy work-life balance.</p>
</li>
<li><p><strong>Leverage Collaboration Tools</strong>: WFH doesn't mean you're isolated. Utilize collaboration tools such as video conferencing platforms, project management software, and instant messaging apps to stay connected with colleagues, collaborate on projects, and seek support when needed.</p>
</li>
<li><p><strong>Minimize Distractions</strong>: Identify potential distractions in your environment and take proactive measures to minimize them. Turn off notifications on your phone, close unnecessary browser tabs, and communicate boundaries with family members or roommates to create an uninterrupted work atmosphere.</p>
</li>
<li><p><strong>Take Regular Breaks</strong>: Remember to take regular breaks to recharge and avoid burnout. Step away from your workspace, stretch, and engage in activities that refresh your mind. Short breaks can actually enhance productivity by improving focus and preventing mental fatigue.</p>
</li>
<li><p><strong>Practice Self-Care</strong>: Prioritize self-care to maintain overall well-being and productivity. Get sufficient sleep, exercise regularly, and eat nutritious meals. Setting aside time for hobbies, relaxation, and socializing also helps alleviate stress and boosts motivation.</p>
</li>
<li><p><strong>Celebrate Milestones</strong>: When you achieve milestones or meet your KPIs, take a moment to celebrate your accomplishments. Rewarding yourself reinforces a positive mindset and encourages further progress.</p>
</li>
</ol>
<h2 id="heading-frequently-asked-questions-faqs"><strong>Frequently Asked Questions (FAQs)</strong></h2>
<p><strong>Q1: How many KPIs should I set for myself while working from home?</strong><br />A1: It's recommended to focus on a few key KPIs that align with your goals and priorities. Setting too many KPIs can lead to overwhelm and dilution of focus.</p>
<p><strong>Q2: How often should I review and adjust my KPIs?</strong><br />A2: Regularly review your progress and adjust your KPIs on a quarterly or monthly basis. This allows flexibility and adaptation based on changing circumstances or priorities.</p>
<p><strong>Q3: What if I'm unable to meet my KPIs?</strong><br />A3: If you find it challenging to meet your KPIs, reflect on the reasons behind the shortfall. Analyze potential obstacles, seek guidance, and make necessary adjustments to ensure better alignment with your goals. Use the insights gained from the experience to set more realistic targets going forward.</p>
<p><strong>Q4: How can I stay motivated while working remotely?</strong><br />A4: To stay motivated, it's important to maintain a clear connection between your work and its impact. Remind yourself of the purpose behind your tasks and how they contribute to your overall goals. Additionally, celebrate small wins, seek support from colleagues, and create a positive and inspiring work environment.</p>
<p><strong>Q5: Can KPIs be applied to team collaboration in a remote setting?</strong><br />A5: Absolutely! KPIs can be used to measure and track team performance in a remote setting. By establishing shared goals and KPIs, team members can work together towards a common objective, promote accountability, and foster a sense of camaraderie.</p>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>Working from home offers immense freedom and flexibility, but it also requires a disciplined approach to maintain productivity. By implementing proper Key Performance Indicators (KPIs), you can unlock your full potential and achieve exceptional results in your WFH journey.</p>
<p>Through clear goal-setting, regular progress tracking, and effective communication, KPIs provide a roadmap to success. Remember to create meaningful and actionable KPIs that align with your objectives, and regularly review and adjust them to stay on track.</p>
<p>By adopting strategies such as establishing a dedicated workspace, practicing effective time management, and nurturing self-care, you can enhance your WFH experience and maintain a high level of productivity. Celebrate milestones along the way and seek support from your peers to stay motivated and engaged.</p>
<p>Embrace the power of KPIs and make the most of your WFH arrangement. With the right mindset, habits, and metrics in place, you can thrive in a remote work environment and achieve the work-life balance you desire. So, embark on your journey towards better WFH with proper KPIs and unlock your true potential.</p>
<p>Remember, success is within your reach when you set meaningful goals, measure your progress, and stay motivated throughout the process. Embrace the possibilities, stay focused, and enjoy the rewards of a productive and fulfilling work-from-home experience.</p>
]]></content:encoded></item><item><title><![CDATA[Wireless debugging Flutter Android application on Github Codespaces]]></title><description><![CDATA[Cloud development environment such as Github Codespaces or Gitpod is the emerging tool that help your developer life so much easier. The concept is that you don't need to install anything on your machine in order to boot up your application, but it i...]]></description><link>https://blog.ralphilius.com/wireless-debugging-flutter-android-application-on-github-codespaces</link><guid isPermaLink="true">https://blog.ralphilius.com/wireless-debugging-flutter-android-application-on-github-codespaces</guid><category><![CDATA[Flutter]]></category><category><![CDATA[Android]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[debugging]]></category><category><![CDATA[IDEs]]></category><dc:creator><![CDATA[ralphilius]]></dc:creator><pubDate>Wed, 03 Nov 2021 05:17:20 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1636518608004/A8CW0ddHs.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Cloud development environment such as Github Codespaces or Gitpod is the emerging tool that help your developer life so much easier. The concept is that you don't need to install anything on your machine in order to boot up your application, but it is done on the cloud and accessible via Visual Studio Code IDE in the browser.</p>
<p>Flutter is also a fast growing SDK that allow developers to "write once, deploy everywhere" with native performance widgets. By the time of this writing, it has native support for most of popular platforms from mobile to desktop.</p>
<p>In this article, I will guide you through setting up a bridge between your Android devices and a Codespaces instance for mobile app debugging. </p>
<p>Before we start, make sure you have these items below checked:</p>
<ul>
<li>Github account with Codespaces (it's not Generally Available yet, so you might need to register for its beta program)</li>
<li>ngrok.com account</li>
<li>An Android 11 device (I'm using Samsung S21+ for this tutorial)</li>
</ul>
<h2 id="heading-installing-ngrok-on-local-device">Installing ngrok on local device</h2>
<p>ngrok is a service that expose your local port to the Internet without complicated setup. They have a free tier account, so let's head over to ngrok.com to register and follow their onboarding guide. </p>
<h2 id="heading-preparing-your-mobile-device">Preparing your mobile device</h2>
<p>We need to enable developer options to proceed further. Simply clicking multiple times on the build number in Settings &gt; About Phone until the developer options notice appears.</p>
<p>With Developer options enabled, head over to the section of the same name and scroll down to Wireless debugging section and turn it on.</p>
<p><img src="https://i.ralphilius.com/serve/rs:fill:300:0:0/plain/https://cdn.hashnode.com/res/hashnode/image/upload/v1635913136919/cUKqhY8fE.png" alt="image.png" /></p>
<h2 id="heading-preparing-github-codespaces">Preparing Github Codespaces</h2>
<p>The Codespaces instance needs to use a specific container image in order to run Flutter. Create a folder named <code>.devcontainer</code> in the root of your Github repo. Add below lines into <code>devcontainer.json</code> which is inside the created folder.</p>
<pre><code class="lang-json">{
  <span class="hljs-attr">"image"</span>: <span class="hljs-string">"cirrusci/flutter:latest"</span>,
  <span class="hljs-attr">"forwardPorts"</span>: [<span class="hljs-number">3000</span>]
}
</code></pre>
<p><em>You might need to restart your instance if it's running</em></p>
<h2 id="heading-installing-adb-on-local-device-and-codespaces">Installing adb on local device and Codespaces</h2>
<p>ADB, a.k.a Android Debugging Bridge is a command line interface that manages the connection between development machine and a mobile device. Below are some quick scripts for installing on different platforms.</p>
<h3 id="heading-macos">MacOS</h3>
<pre><code class="lang-bash"> /bin/bash -c <span class="hljs-string">"<span class="hljs-subst">$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)</span>"</span>
 brew install android-platform-tools
</code></pre>
<h3 id="heading-linux">Linux</h3>
<pre><code class="lang-bash">wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip \platform-tools-latest-linux.zip
sudo cp platform-tools/adb /usr/bin/adb
sudo cp platform-tools/fastboot /usr/bin/fastboot
</code></pre>
<h3 id="heading-windows">Windows</h3>
<p>Follow  <a target="_blank" href="https://www.howtogeek.com/125769/how-to-install-and-use-abd-the-android-debug-bridge-utility/">this guide</a> for more detailed steps.</p>
<blockquote>
<p><strong>Note:</strong> Make sure the adb versions on your device and Codespaces instance are the same. Run <code>adb version</code> for more information.</p>
</blockquote>
<h2 id="heading-pairing-mobile-device">Pairing mobile device</h2>
<p>Firstly, we need to establish a connection between our local device and mobile phone. Head over to <strong>Wireless debugging</strong> option that we enable earlier and hit <strong>Pair device with pairing code</strong>.</p>
<p><img src="https://i.ralphilius.com/serve/rs:fill:300:0:0/plain/https://cdn.hashnode.com/res/hashnode/image/upload/v1635913176218/r9yiWPnQw.png" alt="image.png" /></p>
<p>Open the Terminal and run below command with provided address and port:</p>
<pre><code class="lang-bash">adb pair &lt;address&gt;:&lt;port&gt;
</code></pre>
<p>On success, you should see some message like:</p>
<pre><code class="lang-bash">Successfully paired to 192.168.1.3:12345 [guid=xxx]
</code></pre>
<p>Now we need to connect our device to a Codespaces instance. Hit  <strong>Pair device with pairing code</strong> again. Then run ngrok command:</p>
<pre><code class="lang-bash">ngrok tcp &lt;address&gt;:&lt;port&gt;
</code></pre>
<p>After getting the public address from ngrok, run this command in Codespaces Terminal:</p>
<pre><code class="lang-bash">adb pair &lt;ngrok address&gt;
</code></pre>
<p>On success, you should see some message like:</p>
<pre><code class="lang-bash">Successfully paired to 0.tcp.ngrok.io:12345 [guid=xxx]
</code></pre>
<h2 id="heading-connecting-device-for-debugging">Connecting device for debugging</h2>
<p>In Terminal, run below command to spawn a new ngrok tunnel:</p>
<pre><code class="lang-bash">ngrok tcp &lt;address&gt;:5555
</code></pre>
<p>Replace the <code>&lt;address&gt;</code> with the address we use earlier. Then connect this new tunnel in Codespaces Terminal with:</p>
<pre><code class="lang-bash">adb connect &lt;ngrok address&gt;
</code></pre>
<p>Done! Now you can run <code>flutter run</code> to debug Android app on your physical device.</p>
<h2 id="heading-some-notes">Some notes</h2>
<p>If you couldn't access an Android 11 device, you can still use USB with this guide from  <a target="_blank" href="https://sometechy.website/dev/adb-over-any-network-without-port-forwarding-even-over-mobile-3g-4g-lte.html">Some Techy Website</a> </p>
]]></content:encoded></item></channel></rss>