In the final part of this three part series, Road to the New Moisture, we sat down with members of our Development team: Ronuk Raval - Chief Architect in Development, Shawn Yang - Software Developer, and Chris Bogie - Software Developer, to learn about how they built our New Moisture Tool.
What were your initial thoughts going into building the new Moisture tool?
Ronuk: “Moisture is complicated; there are 100 different ways that 100 different people could do 100 different things. The old product was based on fitting into every workflow under the sun, or at least trying to. So when we started designing the new Moisture tool, we asked ourselves: 'how can we make this approachable?’ We started the first version of the tool over a year ago. It was a data model with a menu-driven user interface to try to figure out how the user could enter data, but we kind of just ended up throwing that out.
The previous one was kind of 'tied at the hip' with sketch. It was split into two worlds: psychrometrics (all about the air moisture), and moisture & materials. We focused on making the new tool work without sketch, but also unify it in one holistic workflow.”Did you do any research before you started? Did you learn anything through this process?
Ronuk: “I read a few textbooks on moisture: IICRC S500 Standard and the Drieaz New Guide to Restorative Drying, and implemented a lot of the math, calculators, and everything that goes into the 'nitty-gritty' of a water job."
Chris: “I learned Swift, a programming language for iOS, because it’s a modern language. Up to this point, everything iOS at Encircle has been Objective-C, which is a super old language.”
Shawn: “It was a good time for us to update our technology stack because we already had to build everything from scratch."
Which part of Moisture did you build?
Chris: “For the past year it was only Android being developed, and then a few months ago we had to copy everything that was built on Android over to iOS, so Shawn and I were doing that.”
Ronuk: “Initially Shawn and Chris were working on bringing iOS up to speed, they didn’t have to build everything but the new user interface had to be ported over to iOS. More recently, they’ve been working on the Moisture Map and Stickers workflow.”
Did you run into any major challenges when building the new tool?
Chris: “When I first started at Encircle I didn’t know much about iOS. I was tasked with making the first iteration of sketch on the iOS side, which is actually a really challenging thing to do. Being inexperienced in production level development, I didn’t know best practices or iOS coding very well. I was somehow able to make it work decently but the code was terrible. So the past few weeks I’ve been refactoring a ton of it.”
Shawn: “The moisture stickers are all very similar in how they work, but they’re slightly different, which makes implementing them difficult and time consuming.”
What excites you the most about the new Moisture tool launch?
Shawn: “For me all the work I’ve been doing will finally be used by other people, and that’s exciting”
Chris: “I think it’s exciting that we’re gonna have time to polish it, and make it better and better.”
Ronuk: “We’re going to be able to turn around more features faster. And there will be follow ups to make it better and faster. Seeing the investments we’ve made start paying off will be pretty cool.”
What are you most proud of while working on the new Moisture tool?
Ronuk: “Whenever I get the time, I like to focus on something I call 'micro-interactions', which are little things that, if you do your job right, nobody will notice. As an example, we have the ability to enter a moisture or relative humidity reading, and the way that works is like the gas gauge in your car. It goes from 0-100%; that’s how much moisture the air can hold. One of the things you can do in the new Moisture tool, is drag your finger over the gauge, and it’ll be that number. We don’t really expect anyone to use this because it’s much easier to just pull up the keyboard and type in 60%, but it makes for a cooler demo to put your finger down and drag it. There are a ton of interactions just in that function.
We also wanted to be able to drag it all the way around and stop at 100, and not go past or reset. There’s a whole bunch of logic that goes into making that interaction feel natural that nobody will ever know about.”
Chris: “This was my first time using Swift, and I was able to make some nice code. Swift allows you to make strict but concise code.”
Shawn: “I basically learned everything from this project. I learned Kotlin, Swift, and Typescript. I also learned both Android and iOS development. Before this project, I had never done mobile development. This was my first mobile project.”It took well over a year to develop this new tool. How did you celebrate the launch?
Ronuk: (laughs) “Mimosas.”
Chris: “I’m not gonna be able to relax until it’s out and I don’t have to worry about breaking sketch.”
Shawn: “I had some pretty good Chinese food yesterday.”
Is there anything you would want people to know about Moisture?
Ronuk: “Moisture is complicated because you’re dealing with atmospheres or 'affected air' as we call it in the product, and affected areas which are both located within Rooms in the app. Depending on the exact set-up, you may want to split the room in two, creating two atmospheres/areas. Or you may have an atmosphere that spans multiple rooms. So that distinction was tough to figure out how to model because it’s not easy to describe. As far as design and building goes, it’s difficult. Hopefully the user never has to ask themselves: 'is this an atmosphere inside an area? Or an area inside an atmosphere?' If we’ve been able to successfully fix that, I’ll be happy.”
Is there a feature that people may not be aware of?
Shawn: “If you long press on a dehumidifier placement card, you can to remove it.”
Ronuk: “When we looked at the stats, most claims, like 80% or so, are single atmosphere claims. There has been a lot of work in the product to make sure that if there is only one atmosphere, it doesn't pull up an atmosphere picker. If you’re working in the case of a single atmosphere, it’s much more streamlined. That was a specific design decision and internally, we had to do a lot of work to make little things like that happen. And hopefully that shows in the product, and feels more user-friendly as a result.”
Want to the see new Moisture tool in action? Click the button below to request a demo!