Here is why I’m building a Tesla app for desktops

Murtaza Yurtsev
6 min readNov 23, 2020

--

When I’m working at the office, focused and getting work done, I really don’t like to pick up my phone. Maybe it’s just me, but when I pick up the phone it simply breaks my focus. I no longer am in that productive mindset I was moments ago. Yes I’m serieus, don’t laugh, it’s a laughable ‘problem’ but a problem nonetheless.

It really botheres me, for instance, that I need to wake my phone up, show my face to unlock it, open the Tesla app and finally turn the climate control on. It also botheres me that I need to set a reminder to turn it on in the first place. This sould be simple and at least be do’able on a desktop right? Being a software developer I could not help myself; all kinds of possibilities and improvements were shaping up in my mind.

And so the decision to provide a solution for my ‘problem’ followed quickly and I ended up with a side-project of building a Tesla app for desktops.

Current state of the Tesla Mac app

Keep in mind this is a ongoing side-project, I will continue to build and share my progress and experiences.

A habit all developers should have: Look around you. Great side-projects lie in close proximity. Just look at what bothers you or the people around you and act on it.

Choosing the right platform

I knew Tesla has an API and since we use FileMaker to build custom apps at the office, I started to build the Tesla app with FileMaker.

I almost can hear you say: but wait, what is FileMaker? And why FileMaker in the first place? Well, in a nutshell; FileMaker is a platform where one can build simple to complex applications, with possibilities ranging from low code to traditional coding. I’ts applications are able to run locally or on a server, to be used online and/or offline. FileMaker is basically a database with a user interface. It has a Layout editor to design the user interface, similar like a designer does in Sketch (kinda). It also has a script editor where you can write scripts (in FDML markup) in order to build complex features and functionalities. Because of these build-in tools the development of a FileMaker application is, by comparison, much faster than the development of a web application.

Because of this I chose FileMaker as a platform to build the app, within a day one can build a decent app and set up the base to build complex features upon. It’s scalable and full of possibilities, as a developer you can take the time and dive into the code or focus on delivering a working application in a small timeframe. It’s awesome to see the reactions of clients when you provide them with a working custom application you have made within a day (or a few hours even). It helps to excite (potential) clients, show them what is possible and establishes the the trust that is needed to land the bigger job that follows it.

Let’s get to the app.

Since the app depends on the Tesla API, I first went en read all about it. Just to stay in lane with reality. After all, we don’t want to imagine features that we cannot provide.

Here is a list of features I already build within the app (and yes I plan to write about how I build it):

  • The basics: able to see vehicle data, such as: mileage, radius, battery state, charging state, current location, user presence and climate state.
  • Climate control: set the desired temperature and start/close the climate control.
  • Remote control: lock and unlock the vehicle.
  • Able to see nearby charging stations on a map (based on current location of the vehicle).
  • Authentication: multiple users and multiple vehicles.
Work in progress

The app is already a win since the enduser doesn’t need to pick up the phone anymore. The initial ‘problem’ is already solved. But why stop here? Now it’s time to transition from problem solving to having fun.

Here is a list of features that would be nice to have in the app:

  • The details: Able to see all of the data fetched from the Tesla API. Data-visualisation as in charts.
  • Remote control: Control the windows, the doors, the horn and turn sentry mode on and off.
  • Scheduled tasks (this is what I’m excited about): Execute commands within intervals, on a specific date, on a specific time or when a specific condition is met.
  • Siri shortcuts (for iOS devices): Tasks for Shortcuts (iOS) to be able to use Siri to fetch vehicle data or to execute a command.

Ambitieus enough of a list don’t you think? Well we already covered the reason of building this app, let’s start the journey of the development. Again, keep in mind this is a work in progress and I do have the intention to share the progress with you guys as the app evolves. If you want to contribute and want to share ideas go ahead and put it in the comment section.

First let’s start from the beginning

I already been busy with the development of the app, so let me rewind back to the beginning. Like every database I started with the tables. The following tables were created:

  • a ‘Vehicles’ table, which contains all the vehicles in the database. (In case of multiple users and multiple cars).
  • a ‘Vehicledata’ table where I wanted to store all of the vehicle data that belonged to a specific car in the ‘Vehicle’ table.
  • a ‘Users’ table, to store user data and the tokens after authentication with Tesla.
  • a ‘Main’ table where I store the globals of the application.
Occurences of the tables VEHICLE, USER AND VEHICLEDATA
Layouts

After creating the tables I made the necessary relations, linked the layouts (views) to the tables and started to design the user interface. Yes, I said design again. Kinda similar like Sketch, you can design the user interface right within the layout editor of FileMaker (which is one of the unique selling points of FileMaker).

Layout modus

After designing the user interfaces it’s time to move to the core of the application which, in this case, are the scripts. But that’s something for the next article in this series. For now, enough typing for me I don’t like long articles I suppose. Anyway, thank you for your time. I hope to see you on the next one. Stay safe!

--

--

Murtaza Yurtsev

Software Developer, UI designer, observer, contemplator, idealist, seeker of knowledge and a bit of a philosopher at night📚🤔