<?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: ashwithpoojary98</title>
    <description>The latest articles on DEV Community by ashwithpoojary98 (@ashwithpoojary98).</description>
    <link>https://dev.to/ashwithpoojary98</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%2F530442%2F679cd617-ce67-4360-b912-be7e7b0cd49a.jpg</url>
      <title>DEV Community: ashwithpoojary98</title>
      <link>https://dev.to/ashwithpoojary98</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashwithpoojary98"/>
    <language>en</language>
    <item>
      <title>Why Being Both SDET and Developer Makes You a Stronger Platform Engineer</title>
      <dc:creator>ashwithpoojary98</dc:creator>
      <pubDate>Fri, 03 Apr 2026 15:58:36 +0000</pubDate>
      <link>https://dev.to/ashwithpoojary98/why-being-both-sdet-and-developer-makes-you-a-stronger-platform-engineer-djb</link>
      <guid>https://dev.to/ashwithpoojary98/why-being-both-sdet-and-developer-makes-you-a-stronger-platform-engineer-djb</guid>
      <description>&lt;p&gt;After nearly five years in IT, I’ve worked across roles—as an SDET, a developer, and now a platform engineer. Along the way, I didn’t just write tests or build features. I experienced the full lifecycle of software, including all the friction that comes after development.&lt;/p&gt;

&lt;p&gt;And that changed everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem I Kept Running Into
&lt;/h2&gt;

&lt;p&gt;As an SDET and developer, my job didn’t end after writing code. Every issue meant going through the same painful cycle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build the application&lt;/li&gt;
&lt;li&gt;Deploy it to an environment&lt;/li&gt;
&lt;li&gt;Run tests and validate&lt;/li&gt;
&lt;li&gt;Debug and repeat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process could easily take an entire day.&lt;/p&gt;

&lt;p&gt;The hardest part? I didn’t fully control it.&lt;/p&gt;

&lt;p&gt;If something broke at night, I had to wait for SREs, DevOps, or DBAs. Permissions, access, and dependencies slowed everything down. Fixing a small issue often required multiple teams to be available.&lt;/p&gt;

&lt;p&gt;That’s when I realized:&lt;/p&gt;

&lt;p&gt;The real bottleneck wasn’t code, it was the system around the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What SDET Taught Me
&lt;/h2&gt;

&lt;p&gt;Being an SDET gave me a strong foundation in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thinking about &lt;strong&gt;edge cases and failure scenarios&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Building &lt;strong&gt;robust automation frameworks&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Ensuring &lt;strong&gt;quality at every stage&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Designing systems that are &lt;strong&gt;testable by default&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I didn’t just test software, I learned how software &lt;em&gt;breaks&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Development Taught Me
&lt;/h2&gt;

&lt;p&gt;As a developer, I learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to design and build &lt;strong&gt;scalable systems&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Writing &lt;strong&gt;clean, maintainable code&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Understanding &lt;strong&gt;architecture and performance&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Shipping features with real user impact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I didn’t just find problems, I built solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where It All Came Together: Platform Engineering
&lt;/h2&gt;

&lt;p&gt;Platform engineering became the natural next step.&lt;/p&gt;

&lt;p&gt;Instead of repeatedly fixing issues inside the same broken process, I started focusing on improving the process itself.&lt;/p&gt;

&lt;p&gt;Today, I build platforms that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automate the &lt;strong&gt;entire build, test, and deployment lifecycle&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;self-service deployments&lt;/strong&gt; for developers&lt;/li&gt;
&lt;li&gt;Reduce dependency on multiple teams&lt;/li&gt;
&lt;li&gt;Provide &lt;strong&gt;consistent environments&lt;/strong&gt; across development, staging, and production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, I don’t just build software anymore. I build systems that help others build software faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Advantage of SDET + Developer Experience
&lt;/h2&gt;

&lt;p&gt;Having both backgrounds is a huge advantage in platform engineering:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. You Build with Quality in Mind
&lt;/h3&gt;

&lt;p&gt;You don’t treat testing as an afterthought. You design platforms where quality checks are built-in.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. You Understand the Full Lifecycle
&lt;/h3&gt;

&lt;p&gt;From writing code → testing → deploying → monitoring—you’ve lived every step.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You Reduce Friction for Teams
&lt;/h3&gt;

&lt;p&gt;You know where developers and testers struggle, so you design platforms that remove those pain points.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. You Automate What Actually Matters
&lt;/h3&gt;

&lt;p&gt;Not just scripts, but meaningful automation that saves hours or days of effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. You Think in Systems, Not Just Code
&lt;/h3&gt;

&lt;p&gt;You move from solving isolated problems to improving the entire engineering workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Platform Engineering is the Future
&lt;/h2&gt;

&lt;p&gt;Modern software development is no longer just about writing code- it’s about delivering it quickly, reliably, and at scale.&lt;/p&gt;

&lt;p&gt;Platform engineering enables that by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turning infrastructure into &lt;strong&gt;self-service&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;Infrastructure as Code&lt;/strong&gt; for consistency and speed&lt;/li&gt;
&lt;li&gt;Eliminating manual handoffs and delays&lt;/li&gt;
&lt;li&gt;Empowering developers to own their code in production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As systems grow more complex, the teams that win will be the ones who can &lt;strong&gt;ship faster without sacrificing quality&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that requires strong platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Looking back, being both an SDET and a developer wasn’t just part of my journey; It was my biggest advantage.&lt;/p&gt;

&lt;p&gt;It taught me how to think about quality, build scalable systems, and most importantly, identify the real bottlenecks in software delivery.&lt;/p&gt;

&lt;p&gt;Because in the end:&lt;/p&gt;

&lt;p&gt;Great engineers don’t just write code—they build systems that make everything else faster.&lt;/p&gt;

&lt;p&gt;And that’s what "platform engineering" is all about.&lt;/p&gt;

</description>
      <category>platformengineering</category>
      <category>devops</category>
      <category>automation</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Automating Flutter App Using Flutter Appium driver</title>
      <dc:creator>ashwithpoojary98</dc:creator>
      <pubDate>Sat, 08 Jul 2023 10:07:59 +0000</pubDate>
      <link>https://dev.to/ashwithpoojary98/automating-flutter-app-using-flutter-appium-driver-1cmb</link>
      <guid>https://dev.to/ashwithpoojary98/automating-flutter-app-using-flutter-appium-driver-1cmb</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2nj6eecffrr8wpb22lb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2nj6eecffrr8wpb22lb.png" alt="Flutter App Automation"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Why Flutter is the most popular cross-platform mobile SDK??&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Running a development team for each mobile platform sucks up resources from other work. Flutter is the most popular way for one development team to build on all platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Flutter?&lt;/strong&gt;&lt;br&gt;
Flutter is Google’s free, open-source software development kit (SDK) for cross-platform mobile application development. Using a single platform-agnostic codebase, Flutter helps developers build high-performance, scalable applications with attractive and functional user interfaces for Android or IOS. Flutter relies on a library of pre-made widgets that make it simple for even people with limited programming or development experience to launch their own mobile applications quickly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A list of companies doing noteworthy work with Flutter&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
As of January 2023, there are over 700,000 apps in the Play Store that are built with Flutter, and one in five new apps on the Play Store use Flutter, more than all other cross-platform frameworks put together. Flutter is picking up market share from other cross-platform frameworks, which are flat or declining over the last twelve months.&lt;br&gt;
Top Popular App built with flutter&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Alibaba Groups&lt;/li&gt;
&lt;li&gt;Google pay&lt;/li&gt;
&lt;li&gt;ByteDance&lt;/li&gt;
&lt;li&gt;BMW&lt;/li&gt;
&lt;li&gt;Dream11&lt;/li&gt;
&lt;li&gt;Nubank&lt;/li&gt;
&lt;li&gt;Pubg Mobile&lt;/li&gt;
&lt;li&gt;AWS Amplify&lt;/li&gt;
&lt;li&gt;Google ClassRoom&lt;/li&gt;
&lt;li&gt;Zerodha&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How to Automate Flutter App&lt;/strong&gt;&lt;br&gt;
Flutter app automation is not always straightforward.&lt;br&gt;
Flutter apps render using a two-stage process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Widget tree&lt;/li&gt;
&lt;li&gt;Render Object tree&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The flutter rendering engine is highly efficient and can render complex UIs at high frame rates. This is because the rendering engine uses a number of optimizations, such as caching render objects and batching draws calls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;There are a few different ways to automate flutter apps.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Flutter Driver:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Flutter driver used to interact with the app's UI, verify that the app is behaving as expected and perform other tasks. &lt;br&gt;
To use flutter driver, you need to install it's dependency in your flutter project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_driver:
    sdk: flutter
  test: any
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Sample test&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter_driver/driver_extension.dart';
import 'package:test/main.dart' as app;

void main() {
  enableFlutterDriverExtension();
  app.main();
}

test('increments the counter', () async {
      await driver.tap(incrementButtonFinder);

      expect(await driver.getText(counterTextFinder), "1");
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Challenges that can encounter when using Flutter Driver to Automate Flutter apps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Writing test in other languages than Dart&lt;/li&gt;
&lt;li&gt;Running integration test for Flutter app with embedded webview or native view, or existing native app with embedded Flutter view&lt;/li&gt;
&lt;li&gt;Running test on multiple devices simultaneously(Parallel Run)&lt;/li&gt;
&lt;li&gt;Running integration test on device farms, such as Sauce Labs, HeadSpin, AWS, Firebase&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;2. Appium Flutter Driver&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Appium Flutter Driver is the most popular tool used to automate Flutter apps.&lt;br&gt;
Appium is a cross-platform automation tool that can be used to automate apps that run on a variety of platform, including flutter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre Requisite&lt;/strong&gt;&lt;br&gt;
Your Flutter app-under-test (AUT) must be compiled in &lt;strong&gt;debug&lt;/strong&gt; or &lt;strong&gt;profile&lt;/strong&gt; mode, because Flutter Driver does not support running in release mode. Also, ensure that your Flutter AUT has enableFlutterDriverExtension() before running App. Then, please make sure your app imported flutter_driver package as its devDependencies as well.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_driver:
    sdk: flutter
  test: any
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';
import 'package:flutter_driver/driver_extension.dart';
import 'package:functional_widget_annotation/functional_widget_annotation.dart';
import 'package:hello_world/stream.dart';

part 'main.g.dart';

void main() {
enableFlutterDriverExtension(enableTextEntryEmulation: false);
 init();
  runApp(MyApp());
}

@widget
Widget myApp() =&amp;gt; MaterialApp(
  title: 'Counter App',
  home: MyHomePage(title: 'Counter App Home Page'),
);



@widget
Widget myHomePage(BuildContext context, {String title}) =&amp;gt; Scaffold(
  appBar: AppBar(
    title: Text(title),
  ),
  body: Center(
    child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: &amp;lt;Widget&amp;gt;[
        Text(
          'You have pushed the button this many times:',
        ),
        Tooltip(
          message: 'counter_tooltip',
          child: StreamBuilder&amp;lt;int&amp;gt;(
            stream: counterStream,
            builder: (context, snapshot) {
              return Text(
                '${snapshot.data}',
                key: Key('counter'),
                style: Theme.of(context).textTheme.display1,
                semanticsLabel: 'counter_semantic',
              );
            }
          ),
        ),
        FlatButton(
          onPressed: () {
            Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (context) =&amp;gt; Scaffold(
                        appBar: AppBar(
                          title: Text("Second Route"),
                        ),
                        body: Center(
                          child: SecondPage(),
                        ),
                      )),
            );
          },
          child: Text(
            'Go to next route',
            key: Key('next_route_key'),
          ),
        ),
      ],
    ),
  ),
  floatingActionButton: FloatingActionButton(
    // Provide a Key to this button. This allows finding this
    // specific button inside the test suite, and tapping it.
    key: Key('increment'),
    onPressed: () =&amp;gt; plusClickSink.add(null),
    tooltip: 'Increment',
    child: Icon(Icons.add),
  ),
);

@widget
Widget secondPage() =&amp;gt; ListView(
  padding: const EdgeInsets.all(8.0),
  children: &amp;lt;Widget&amp;gt;[
    Container(
      height: 100,
      color: Colors.amber[600],
      child: const Center(child: Text('This is 2nd route')),
    ),
    Container(
      height: 200,
      color: Colors.amber[500],
      child: const Center(child: Text('Entry B')),
    ),
    Container(
      height: 500,
      color: Colors.amber[100],
      child: const Center(child: Text('Entry C')),
    ),
    Container(
      height: 1000,
      color: Colors.amber[100],
      child: const Center(child: Text('Entry D')),
    ),
    Container(
      height: 1000,
      color: Colors.amber[100],
      child: const Center(
          child: TextField(
        decoration: InputDecoration(
          border: OutlineInputBorder(),
          labelText: 'Sample Input',
        ),
      )),
    ),
  ],
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Automation Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add maven dependency to pom.xml
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;io.github.ashwithpoojary98&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;appium_flutterfinder_java&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import io.appium.java_client.AppiumDriver;

public class FlutterFinderExampleTest {
    RemoteWebDriver driver;

    @BeforeMethod
    public void openApp() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "emulator-5554");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("noReset", true);
        capabilities.setCapability("app", "");
        capabilities.setCapability("automationName", "Flutter");
        driver = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30));
    }

    @Test
    public void appiumFlutterTest() {
        FlutterFinder finder = new FlutterFinder(driver);
        WebElement element = finder.byValueKey("increment");
        element.click();
    }

    @AfterMethod
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ashwithpoojary98" rel="noopener noreferrer"&gt;
        ashwithpoojary98
      &lt;/a&gt; / &lt;a href="https://github.com/ashwithpoojary98/javaflutterfinder" rel="noopener noreferrer"&gt;
        javaflutterfinder
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Flutter driver with Java implementation
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Appium Flutter Finder Java&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;Flutter appium driver is automation tool with java implementation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ashwithpoojary98/javaflutterfinder" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/605dc3db18747f1c2ada7f287677a18d7fc23ce64d97d5c4d054fd469d0f5612/68747470733a2f2f6261646765732e66726170736f66742e636f6d2f6f732f76312f6f70656e2d736f757263652e7376673f763d313033" alt="Open Source Love"&gt;&lt;/a&gt;
&lt;a href="https://github.com/ashwithpoojary98/javaflutterfinder/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5a7f1a40b6f2c86c7b913f807393c41051858da5e884e0bedb32b53f9e57a67c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f61736877697468706f6f6a61727939382f6a617661666c757474657266696e6465722e7376673f7374796c653d666c6174" alt="GitHub stars"&gt;&lt;/a&gt;
&lt;a href="https://github.com/ashwithpoojary98/javaflutterfinder/pulls" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/573fa646496f330413b4e854037df23248b04bb673a47e6e8e0e7cc908546af2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d57656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174" alt="PRs Welcome"&gt;&lt;/a&gt;
&lt;a href="https://github.com/ashwithpoojary98/javaflutterfinder/network" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c435c785d29c344b6e0794e39563008b10e9f137cf55f5787cd200d38f9a8d0f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f61736877697468706f6f6a61727939382f6a617661666c757474657266696e6465722e7376673f7374796c653d736f6369616c266c6162656c3d466f726b" alt="GitHub forks"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;maven-plugin&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/ashwithpoojary98/javaflutterfinder/actions/workflows/mavenbuild.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/ashwithpoojary98/javaflutterfinder/actions/workflows/mavenbuild.yml/badge.svg" alt="Build Status"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Setup&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Add maven dependency to pom.xml&lt;/p&gt;
&lt;div class="highlight highlight-text-xml notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&amp;lt;&lt;span class="pl-ent"&gt;dependency&lt;/span&gt;&amp;gt;
    &amp;lt;&lt;span class="pl-ent"&gt;groupId&lt;/span&gt;&amp;gt;io.github.ashwithpoojary98&amp;lt;/&lt;span class="pl-ent"&gt;groupId&lt;/span&gt;&amp;gt;
    &amp;lt;&lt;span class="pl-ent"&gt;artifactId&lt;/span&gt;&amp;gt;appium_flutterfinder_java&amp;lt;/&lt;span class="pl-ent"&gt;artifactId&lt;/span&gt;&amp;gt;
    &amp;lt;&lt;span class="pl-ent"&gt;version&lt;/span&gt;&amp;gt;1.0.9&amp;lt;/&lt;span class="pl-ent"&gt;version&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="pl-ent"&gt;dependency&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Maven Center Repo link&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href="https://mvnrepository.com/artifact/io.github.ashwithpoojary98/appium_flutterfinder_java" rel="nofollow noopener noreferrer"&gt;https://mvnrepository.com/artifact/io.github.ashwithpoojary98/appium_flutterfinder_java&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Usage&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-java notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-s1"&gt;io&lt;/span&gt;.&lt;span class="pl-s1"&gt;appium&lt;/span&gt;.&lt;span class="pl-s1"&gt;java_client&lt;/span&gt;.&lt;span class="pl-s1"&gt;AppiumDriver&lt;/span&gt;
&lt;span class="pl-k"&gt;public&lt;/span&gt; &lt;span class="pl-k"&gt;class&lt;/span&gt; &lt;span class="pl-smi"&gt;FlutterFinderExampleTest&lt;/span&gt; {
    &lt;span class="pl-smi"&gt;RemoteWebDriver&lt;/span&gt; &lt;span class="pl-s1"&gt;driver&lt;/span&gt;;

    &lt;span class="pl-c1"&gt;@&lt;/span&gt;&lt;span class="pl-c1"&gt;BeforeMethod&lt;/span&gt;
    &lt;span class="pl-k"&gt;public&lt;/span&gt; &lt;span class="pl-smi"&gt;void&lt;/span&gt; &lt;span class="pl-en"&gt;openApp&lt;/span&gt;() &lt;span class="pl-k"&gt;throws&lt;/span&gt; &lt;span class="pl-smi"&gt;MalformedURLException&lt;/span&gt; {
        &lt;span class="pl-smi"&gt;DesiredCapabilities&lt;/span&gt; &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt; = &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-smi"&gt;DesiredCapabilities&lt;/span&gt;();
        &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt;.&lt;span class="pl-en"&gt;setCapability&lt;/span&gt;(&lt;span class="pl-s"&gt;"deviceName"&lt;/span&gt;, &lt;span class="pl-s"&gt;"emulator-5554"&lt;/span&gt;);
        &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt;.&lt;span class="pl-en"&gt;setCapability&lt;/span&gt;(&lt;span class="pl-s"&gt;"platformName"&lt;/span&gt;, &lt;span class="pl-s"&gt;"Android"&lt;/span&gt;);
        &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt;.&lt;span class="pl-en"&gt;setCapability&lt;/span&gt;(&lt;span class="pl-s"&gt;"noReset"&lt;/span&gt;, &lt;span class="pl-c1"&gt;true&lt;/span&gt;);
        &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt;.&lt;span class="pl-en"&gt;setCapability&lt;/span&gt;(&lt;span class="pl-s"&gt;"app"&lt;/span&gt;, &lt;span class="pl-s"&gt;""&lt;/span&gt;);
        &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt;.&lt;span class="pl-en"&gt;setCapability&lt;/span&gt;(&lt;span class="pl-s"&gt;"automationName"&lt;/span&gt;, &lt;span class="pl-s"&gt;"Flutter"&lt;/span&gt;);
        &lt;span class="pl-s1"&gt;driver&lt;/span&gt; = &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-smi"&gt;AppiumDriver&lt;/span&gt;(&lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-smi"&gt;URL&lt;/span&gt;(&lt;span class="pl-s"&gt;"http://0.0.0.0:4723/wd/hub"&lt;/span&gt;), &lt;span class="pl-s1"&gt;capabilities&lt;/span&gt;);
        &lt;span class="pl-s1"&gt;driver&lt;/span&gt;.&lt;span class="pl-en"&gt;manage&lt;/span&gt;().&lt;span class="pl-en"&gt;timeouts&lt;/span&gt;().&lt;span class="pl-en"&gt;implicitlyWait&lt;/span&gt;(&lt;span class="pl-smi"&gt;Duration&lt;/span&gt;.&lt;span class="pl-en"&gt;ofSeconds&lt;/span&gt;(&lt;span class="pl-c1"&gt;30&lt;/span&gt;));
    }

    &lt;span class="pl-c1"&gt;@&lt;/span&gt;&lt;span class="pl-c1"&gt;Test&lt;/span&gt;
    &lt;span class="pl-k"&gt;public&lt;/span&gt; &lt;span class="pl-smi"&gt;void&lt;/span&gt; &lt;span class="pl-en"&gt;appiumFlutterTest&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ashwithpoojary98/javaflutterfinder" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;If you have any queries at all, please feel free to reach out.&lt;/strong&gt;&lt;br&gt;
Gmail: &lt;a href="mailto:ashwithpoojary98@gmail.com"&gt;ashwithpoojary98@gmail.com&lt;/a&gt;&lt;br&gt;
Insta: ashwith__poojary&lt;br&gt;
Github: &lt;a href="https://github.com/ashwithpoojary98" rel="noopener noreferrer"&gt;https://github.com/ashwithpoojary98&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you....&lt;/p&gt;

</description>
      <category>fultterappautomation</category>
      <category>appium</category>
      <category>java</category>
      <category>appautomation</category>
    </item>
  </channel>
</rss>
