Today we are excited to announce the next evolution of Maestro Studio which brings maintainable no-code UI automation to the Mobile ecosystem! 🎉 🎉 🎉
blog.mobile.dev/announcing-mai
🧵
Dmitry Zaytsev
@dizaytsev
Amsterdam, The NetherlandsJoined January 2018
Dmitry Zaytsev’s Tweets
This has been a long-requested improvement and I am so proud of the team for finding such an inventive way of addressing it
Quote Tweet
If you've used Maestro for iOS in the past, you may have encountered issues matching certain UI elements.
We've spent the last month re-architecting the driver to solve these issues for good
Today, we are ready to announce Maestro's new iOS Driver!
blog.mobile.dev/maestro-re-bui
Show this thread
8
If you've used Maestro for iOS in the past, you may have encountered issues matching certain UI elements.
We've spent the last month re-architecting the driver to solve these issues for good 🙌
Today, we are ready to announce Maestro's new iOS Driver!
2
14
75
Show this thread
What amazes me about this feature is that it was built in under a week and yet it is clean and very much maintainable. Kudos !
Quote Tweet
Introducing: Maestro Studio
Instantly discover the exact commands needed to interact with your app!
blog.mobile.dev/introducing-ma
Meet your new favorite Maestro tool ↓
Show this thread
0:26
33.2K views
2
14
🔥 Introducing: Maestro Cloud 🔥
The easiest way to run your Maestro Flows on CI
Read the full announcement here: blog.mobile.dev/introducing-ma
🧵
2
38
110
Show this thread
Last week I published my first Maven library: A Mach-O parser written in Kotlin. Mobiledev already uses it in production! central.sonatype.dev/artifact/dev.m github.com/mobile-dev-inc
5
13
📢 BIG Maestro update today (v1.10.1) 📢
Let's dive right in! Starting with.... 🥁
🎉 Conditional Flow Execution! 🎉
In the video:
1st run - ✅ Condition succeeds + nested flow is executed
2nd run - ⚪ Condition fails + nested flow is skipped!
maestro.mobile.dev/advanced/condi
1/7
2
6
41
Show this thread
Exciting announcement for Android devs:
Maestro 1.9.0 now supports USB-connected Android devices! 📲
🙌 🙌 🙌
Upgrade to the latest maestro CLI to try it out!
And please let us know you run into any issues or have any questions. Happy testing!
2
15
83
Show this thread
What is coming soon:
• Support for launch parameters
• Some form of allowing conditional execution (we are still deciding on a proper API)
Full changelog:
9
Show this thread
• Maestro no longer tries to open Leak Canary activity instead of your main app.
1
10
Show this thread
• Experimental fix for iOS Tab Bar. Please let us know if it works for you.
• No more weirdness when tapping on a checkbox or a toggle - Maestro now compares screenshots to detect changes in view hierarchy.
1
5
Show this thread
• `runFlow` command that allows to add nested flows into your main flow
• `clearState` command to clear the state of the app without launching it
• `clearKeychain` command that clears keychain on iOS
• `stopApp` command that (surprise) stops the specified app
1
8
Show this thread
Maestro 1.8.0 is live 🎉
Notable changes since 1.7.0 🧵
1
14
42
Show this thread
Two BIG announcements today:
1️⃣ We’ve officially released our open-source mobile UI testing framework:
Maestro — Painless Mobile UI Automation 🎉
blog.mobile.dev/introducing-ma
GIF
17
202
857
Show this thread
Happy to announce that we just officially launched Maestro - a free open source tool to make mobile UI testing painless 🎉
4
57
374
We have open-sourced Maestro - mobile UI automation framework!
- Baked-in flakiness tolerance
- Live test refresh - no compilation needed
- Single brew command to install
maestro.mobile.dev
Quote Tweet
Show this thread
4
27
Creating observability for performance issues is the most challenging part of the problem. Fixes could be as small as one line of code change. Why? 🧵
1
6
16
Show this thread
Working on a product for other engineers is incredibly fun.
It is also incredibly easy to forget that you are building a *product*, not just the infrastructure wrapped in a UI.
Quote Tweet
2. Tell a story with your product.
Customers only care about what they can see.
Your engineering feats under the hood are meaningless unless the value is surfaced in your product.
Laser focus on building a product that tells a story visually.
Show this thread
1
1
8
dadb v0.0.10 now supports port forwarding!
Now your applications can talk to any kind of server running on an Android device without relying on adb.
For example, a use-case that we had at - talking directly to UI automation framework.
6
21
Performance issues you face also depend on the type of mobile app you are working on 🧵
1
7
27
Show this thread
Answering those questions should help you to find an opportunity. Somewhere in those questions lies that sweet revenue/cost-savings that business cares about.
2
2
71
Show this thread
- (Mobile) What is your app rating? When was the last time you checked it? What are the most common complaints?
- (Global business) How do your numbers look for each market (country, city)? Are there any obvious outliers?
1
2
69
Show this thread
- What does the funnel for your org look like? Where do customers drop off?
- How much money did your last incident cost you? How often do they happen?
- How much time does it cost to ship a feature? How can you ship twice as much within the same amount of time?
2
4
117
Show this thread
A little exercise to move you out of a Senior Eng mentality and think as a Staff 🧵
9
92
756
Show this thread
We just added a neat way to see what code path has actually introduced a performance regression in your Android app
bit.ly/3xbxUrl
This particular example is using this PR we crafted for Firefox app:
2
18
78
3. Cultural diversity.
Having people from so many different cultures and countries on the *same team* is bringing in different ways of thinking about the product, market as well as eng solutions.
35
Show this thread
2. On-call is easier to handle. Our rotation consists of 2 layers:
- Follow the sun. Those are first responders which are currently awake and can handle simple incidents without waking up the primary on-call engineer.
- Primary on-cal engineer. Looped in during large incidents.
1
33
Show this thread
1. We don't have as many meetings.
This setup adds a strong incentive to turn meetings into Emails and generally handle matters asynchronously.
2
36
Show this thread
Our Eng team is spread across 3 timezones (Brazil, EU, India)
We have about 2 hours per day that is convenient for everyone on the team.
Disadvantages? Scheduling meetings is sometimes tricky.
Advantages? Numerous 🧵
9
24
270
Show this thread
Mobile UI Testing is broken, and so is Production Monitoring...
So what's the right way to manage mobile app quality?
2
16
36
Show this thread
9 minutes. That is what we got back as a result.
What does it mean? It means that 95% of jobs are completed in 9 minutes or less.
With that we can confidently provide guarantees to our customers, knowing that we are setting ourselves up for success from the get-go.
5
Show this thread
But where do we start? Certainly, we don't want to just blindly guess it, right?
Use data! After looking at the history of job runs, we can see what was the p95 of waiting time over the course of the last 30 days.
1
4
Show this thread
"How long does it take to run a job? I want my team to be able to iterate quickly and not hold their pull requests in queue for too long"
This is a question that we get regularly.
To answer it responsibly, we had to come up with SLAs (service level agreements)
1
5
9
Show this thread
Super excited to share that is going to be one of the sponsors for 🎊🎊 Excited to contribute to a physical conference after so long 😄
sf.droidcon.com/sponsors
6
39
Is this your kind of challenge? Do you love building things for other engineers? Is remote work your thing?
If so, do reach out! Either directly to me (LinkedIn) or careers@mobile.dev
1
3
Show this thread
And last but not least - how to show it all in a way that is pleasant to work with and not just a dump of every println() imaginable?
As you might have guessed, a lot of our stack revolves around backend, frontend, Linux kernel (Android) and Xcode internals (iOS)
1
3
Show this thread
Some interesting challenges we tackle:
- How to reliably understand whether an app has an issue in it, even if tests are passing?
- How to make sure we get the same result no matter how many times or on which device we run the analysis?
- How to run it in minutes, not hours?
1
4
Show this thread
An ironic misconception that I faced when hiring for our team.
Despite the name and the product, at mobile.dev we don't actually do mobile applications. We go so much more beyond that
1
7
19
Show this thread
Thinking back on the days when I was an Android engineer - as much as I appreciate the effort Google has put into ecosystem, having your whole career dependent on tools built by a single company has always made me a bit uncomfortable.
Quote Tweet
Important reminder that every mobile developer in the world relies on Google and Apple for 99% of the tools they need to do their jobs.
Sounds unsustainable? It is.
It's a broken model that has bottlenecked mobile innovation for years.
Here's what we can do about it:
Show this thread
1
11
To summarize:
Step 1: Make the system resilient as a whole
Step 2: Improve reliability of individual components to optimize costs
1
1
18
Show this thread




