It was an honor to finally meet face-to-face with one of my open source heroes Dan Cuellar and talk about the future of Appium.
Dan Cuellar is the original creator of Appium. Jonathan Lipps is the leading developer on the Appium project now, but Dan is still proving leadership in the vision and direction of Appium automation.
Before we get into the future of Appium lets, cover some intro info first.
What is Appium?
Originally Appium was developed as an automated tool used to create test scripts that can run against native mobile applications and mobile-web apps on iOS or Android leveraging WebDriver.
Appium vs Selenium
You might be confused about what the difference is between Selenium and Appium. They are different technologies for different testing needs. Appium is for mobile test automation, and Selenium is for browser-based automated testing.
Evolution of Appium
At the Selenium Conference 2017 in Austin, Texas Dan gave a presentation on Automation for Apps. In it he laid out the evolution of open source automation as starting off with Selenium WebDriver which automated website, and then with Appium that generalize WebDriver to automate mobile apps. The next step is to bring in the ability to automate other kinds of apps on Windows and Mac.
This ultimate evolution is called the StarDriver vision — one protocol to automate all the things, and this is one of the first steps towards it.
Windows Application Driver developed by Yousef Durr at Microsoft is the Windows implementation of Appium to automate Windows applications.
Appium For Mac
Stuart Rusell of Intuit has stated a proof of concept called AppiumForMac to help you automate mac apps using the same Appium Selenium WebDriver.
For those of you that don't like video here is the full transcript of my interview with Dan at this year's Selenium Conference in Austin.
Dan's Session at Selenium Conference 2017 in Austin, Texas
Joe: … Excited to be here with us. Here we have the creator of Appium, Dan. He's doing a session on Appium, so Dan can you tell us a bit more what your session is going to be on?
Dan: Cool. Yeah, so Stuart Russell into it and and Yousef Durr of Microsoft and I are going to present on automating desktops on Appium. So it's the next step in the StarDriver vision. We started with Web Driver which automated websites, and then with Appium we sort of generalized it to do mobile applications.
The next step is we're bringing in other kinds of apps. We're going to talk about Windows Support and Mac Support. Windows Support which has almost been fully released but it's in Beta now, and Mac Support which is also in Beta. And then about the StarDriver vision of one protocol to automate all the things, and how we're achieving that.
Joe: Oh, cool.
What is Appium's view of the Automation
Dan: Appium takes a more broad view on it and says: “Well, why have a protocol just to automate one thing?” We feel that automation is similar enough that we might be able to develop one protocol to automate everything, which we refer to currently as the StarDriver Vision.
At Appium, we're working on continuing to generalize the web driver's specifications, so that perhaps one day we might have one protocol to automate all the things. Much further down the line, eventually people will just bring their own implementations to the table, and we won't be doing anything. We'll just be standing around taking credit for it or something.
What is WinAppDriver
Joe: I heard of a WinAppDriver. Is this something to do with Appium?
Dan: Yes, that's the Window implementation for Appium.
Joe: Okay. So I could literally automate a web-based application using Appium. If I had a calculator or a Windows VB6 application …
Dan: A Windows-based application?
Dan: Yes. And it does support some web content. We'll go into specifics in the talk.
Joe: Okay, cool.
Dan: Yes, a full web content hopefully soon on Windows. But it does have some support for it.
Joe: So if someone's familiar with Appium already, how would they be able to leverage this, is it the same technology?
Dan: Yes, it's the same technology. You really need to learn very little other than a different set of capabilities. It's just the same protocol like differently. So less of a learning [inaudible 00:02:06] … and then the Selenium people when they came to Appium.
Automate Windows and Mac apps
Joe: Right, okay. You mentioned it would also work on Mac or Linux based on …
Dan: Mac right now. There exists no implementation for Linux but it's certainly possible to write one.
Joe: All right, cool.
Dan: I just haven't had anyone chip in with that yet.
Joe: Okay, so you'll actually be actively involved in the development of this. I know you've been a little hands-up with Appium.
Dan: Yeah, I wrote the prototype for the Mac implementation and I tried to write a prototype for the Windows one, but some people in Russia wrote a better one, then Microsoft came and wrote their own so when you have the vendor writing it themselves, I think it'll be hard for someone on the outside to do any better than that. That's the approach we're looking for anyway – to eventually have the vendors come in and do all of the implementations and have the protocols be its own thing that we work on together and the tooling around that …
Growth of Appium
Joe: Yup, so when you created Appium did you ever think it would develop to this point where you're actually branching off into …
Dan: Yes and no. I never expected Appium to ever work. Once Appium worked, I thought Windows apps and Mac apps were kind of inevitable. We always sort of had this [inaudible 00:03:07] automation for apps. Jonathan and I joked about like … one day Windows and Mac. We weren't really joking, we really thought that one day this would happen. Why not use this for everything. I never thought Appium would ever become anything, but once that Leaf happened, I assumed … more and more responsible than I used to.
Appium Vs Espresso
Joe: Good. Now I just want to get your opinion on this. You hear more and more about Espresso, and I've been getting to ask a question on what's the difference between Espresso and Appium. I don't know if you're familiar with Espresso …
Dan: Yes, yes
Joe: What would you have used on that?
Dan: For some people, you might want to read about the correct choice, there's a lot of advantages having Appium, and there's also a lot of advantages to going with the Google supply to protocol Espresso, which is shipped with the later versions of Android. If you don't need some of the benefits of Appium, such as compatibility with the Legacy Android devices, one protocol for both iOS and Android and some of the other tooling that comes around that we have … And you have a team that writes Java code, I know the developers, Espresso might be a good choice because you'll have a more tightly coupled set of automation.
But that being said, there are still many benefits that Appium brings to the table. For most people, Appium is still the correct choice. There does exist that new niche developer market who does do their own automation and who wants to use it. Where to Espresso could work well for them and could provide things Appium wouldn't.