LEAF Link for iPhone/iPad/etc - available on the App Store

My Nissan Leaf Forum

Help Support My Nissan Leaf Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

baronvonshush

Well-known member
Joined
Mar 8, 2012
Messages
106
Location
SoCal
Update August 31, 2012
LEAF Link is now available on the App Store!
http://itunes.apple.com/app/leaf-link/id542304940?mt=8" onclick="window.open(this.href);return false;


--------------------


Hi everyone,

LEAF Link - my new iPhone (and iPad/iPod touch) app - is finally ready for beta testing. If you have one of these devices and are so inclined, I would really love to get your feedback.

[Yes, I would LOVE to make an Android version; unfortunately to make that happen, you may need to convince my boss to give me a month off so I can teach myself Java and Android UI programming.] :ugeek:

What is LEAF Link?
The app has two primary features: replace Nissan's clunky CARWINGS app, and easily send addresses/location to the car's navigation system.

It started out as just the navigation portion. I realized that the Nissan app ought to be able to send my contacts' addresses to the navigation system for routing, so I wouldn't have to type them into that horribly clunky virtual keyboard on the center display. Same thing for any other place I might go to - restaurants and other businesses. It's easy to search my phone for a new place, but a real pain to type that address into the car. Thus LEAF Link was born.

The CARWINGS replacement was the next logical addition; what was I going to do with all that extra screen real estate, anyway?

CARWINGS
The basic idea here was to fix the various UI blunders in the Nissan app, from periodically forgetting the username/password, to blocking the user interface while waiting for the network, to requiring far more touches than necessary to do things. I designed the main screen to show all status at a glance, and requiring only one touch to perform most operations (note that to avoid sending accidental commands, by default you will be asked to confirm before sending a charge or climate control command; this can be turned off if you like living on the edge).

You also have the option to automatically update status any time you switch back to the app, if the existing status is old. Unfortunately what I can't do here is speed up the process of getting an update from the car. That's completely up to Nissan's servers and the car's telematics software.

ll_charging.jpg
ll_timer.jpg


This only displays what is reported by CARWINGS. It makes no attempt to provide a better estimate for things like range and charge time.

Also, I should mention that there's a demo mode if you don't login to CARWINGS. Right now it's incomplete, but will be finished before the app is submitted to the App Store. ;)

Navigation
This works by creating an Information Feed (RSS) that you can download from CARWINGS in your LEAF. There are 5 buttons in the bottom toolbar allowing you to find addresses/locations to send to your LEAF.

1. Search: as you type, it will narrow down results from your contacts and from places you've recently sent to your LEAF. You can also search Google, either by hitting the return/Search key, or by selecting the "Search Google" item that appears when none of your local data matches what you've typed.

ll_tsearch.jpg
ll_nomatch.jpg
ll_google.jpg


2. Contacts brings up Apple's standard people picker UI.

3. Recent Items brings up a list of places you've recently sent to the LEAF. You can edit this list, deleting individual items, permanently saving items, or clearing the entire list.

4. Map: by default, your contacts and recent items are displayed as pins on the map. Touch one to select it for sending, or touch the blue arrow for more configuration.

ll_map.jpg


You can also display charging stations. This data comes from Open Charge Map. Their database is very extensive, but doesn't appear to be quite as up-to-date as PlugShare or Recargo (unfortunately near as I can tell, the latter aren't sharing their data).

ll_mapsettings.jpg
ll_chargemap.jpg
ll_chargingstation.jpg


Finally, you can also touch and hold anywhere on the map to drop a new pin there. Once on the map, a dropped pin can also be dragged around to fine-tune its location. Again, the blue arrow allows you to edit its info before sending.

5. New Place brings up a dialog with blank fields for you to fill in before sending to the LEAF.

In all of the above, selecting a place brings you to a screen where you can edit its details. The LEAF can actually display an image when you retrieve an information feed, so this allows you to select an image to send along with address/location. It's pretty much a gimmick, but what the heck. I usually don't select an image because the LEAF's cellular connection is slow enough that it sometimes takes noticeably longer to download a feed with an image. You can choose from a street view image (if available) or a contact image if you selected one of your contacts.

ll_itemdetail.jpg


When editing place details, you can show it by itself on a map. This allows you to drag the marker around to fine-tune its location if you know that Google's location is a little bit off.

ll_showonmap.jpg


Navigation Setup/Retrieval
In order to send the navigation feed to your LEAF, you need to add it to your Information Feeds list on the CARWINGS website. This is a one-time setup. There are instructions in the app to do it (later I hope to have the app itself do it by faking the appropriate browser requests to Nissan's web servers). Hopefully those instructions are adequate. ;)

What's not yet in the app are instructions to retrieve the feed while in the car. It's pretty simple.

First you need to tell it to update information feeds (after the above setup on the website; again, one time only):
1. Menu
2. CARWINGS
3. CARWINGS Settings
4. Information Feed Setting
5. Edit Feed List
6. Update Feed List

Then every time you want to retrieve a location you've sent, just follow these button presses:
1. Menu
2. CARWINGS
3. Favorites
4. LEAF Link
5. When the car starts reading the location title, hit Pause
6. New Dest.

It gets to be habit pretty quickly, and really convenient when on the go.

Beta Test
If you are interested in testing/using LEAF Link before it goes on the App Store, please email me at [email protected] with the info below. I will need your device name and identifier in order to add it to the list of authorized test devices; otherwise the app won't run for you. Here are Apple's instructions to do this:

To send your device ID to a developer for test-program registration:
1. Launch iTunes.
2. Connect your device to your computer.
3. Select the device in the Devices list.
4. In the Summary pane, click the Serial Number label. It changes to Identifier.
5. Choose Edit > Copy.
6. Send your device identifier to the developer. Be sure to include your name and device name in the email.
Debugging
In the Info/Settings screen (touch the "i" button in the upper right of the main screen), there is a big red preference called "Send Debug Data". For privacy reasons, it's off by default, but it would be a HUGE help if testers would turn it on. This will send your CARWINGS communications to me so I can analyze them in case there are CARWINGS messages or error conditions I haven't seen yet. Personal info, including your username/password and VIN, are scrubbed before sending to me.

ll_debug.jpg


I'm particularly interested in what the messages look like when someone has more than one LEAF (does that describe anyone here?). Right now I assume only one car per CARWINGS account.

I'm also interested to know if the app properly displays lost capacity bars for those poor souls in hot places. I believe it does, but you can only do so much testing without the real deal.

I'd like to know if the CARWINGS login works for people outside the US. If not, I'll need to build in support for using Nissan's alternate servers around the world.

Finally, if anything unexpected happens, I would appreciate a report so I can look into it.

Pricing
I'm pretty sure the app is going to be free once released to the wild. I just can't see many people paying even $0.99 for this when the Nissan app, clunky as it is, is free. I know I wouldn't. :lol: I would also like to reach the widest audience possible, realizing I have already restricted myself to the (a) LEAF owners who (b) have an iOS device and (c) hear about LEAF Link one way or another. As it is, my biggest fear is that only 3 people will use it, all my hours spent generalizing it for anyone to use being wasted. :cry:

Still, I'd love to at least cover some or all of my recurring costs for putting this up on the App Store, as well as my server hosting the navigation feeds. Any ideas for extra value-added services would be most welcome. My best idea here is to offer a charge timer service, using my server to send a charge command at the specified time. I'm not sure what a reasonable price for such a service would be, or how many people would use it.

That, or have some kind of in-app purchase for a token digital good (recognition? a virtual gold star?) that's really just a donation for those so inlined... ;)

Feedback
Please post any general comments, feedback, feature requests, etc here. I would love to hear any ideas for making LEAF Link better. That goes for people without an iOS device as well. Keep in mind that I can't do anything about features not present in the car itself, such as the ability to send a remote charge stop command or remotely lock the doors.

If you're a tester having specific issues, it may make more sense to take that to email, but here is fine too.

Currently my TODO list includes:
1. Several minor feature updates
2. Fix a few minor bugs that still exist
3. Documentation
4. Finish demo mode
5. Artwork (icon, loading screen, etc)
6. Any great features you people come up with that are doable ;)
7. Maybe an iPad-specific interface, but what would I do with all that extra space?


Whew! Thanks for reading that mountain of text! :mrgreen:
 
This looks great! I'll send a PM. I would gladly pay a buck or two for an app like this if it works as advertised.

[Cheezmo, PMs stay in the Outbox until they're read by the recipient.]
 
adric22 said:
How do we install it? Does the iPhone have to be jail-broken? (I noticed yours is! Ahem.. T-Mobile + Edge.)

You can buy unlocked iPhone's (officially from Apple) and use them on T-Mobile.

Not saying if he did or didn't, but T-Mobile does not equal Jailbroken or unofficially unlocked.
 
Cheezmo said:
adric22 said:
How do we install it? Does the iPhone have to be jail-broken? (I noticed yours is! Ahem.. T-Mobile + Edge.)

You can buy unlocked iPhone's (officially from Apple) and use them on T-Mobile.

Not saying if he did or didn't, but T-Mobile does not equal Jailbroken or unofficially unlocked.
Yup, that's exactly right. No jailbreak necessary. Apple has a process called ad-hoc distribution, for developers to send apps to beta testers. As a developer, I can have up to 100 devices registered to my "provisioning profile" and use that to distribute apps to them. When a tester receives an app, they load both the app file and the provisioning profile file into iTunes. That takes care of the magic necessary for the device to run the app without jailbreak.

The first round of testers have been added to my provisioning profile, and links to the appropriate files sent out as PM. Thanks to all who responded so far! This is my first attempt at distributing an app outside of my own devices, so hopefully I got all the steps right. ;)

I already noticed an annoying bug where the login screen came back up when it wasn't necessary, exactly the kind of problem from the Nissan app that I'm trying to avoid. :oops: I believe the fix is easy and will put out the first update for that tonight.


I also wanted to mention a BIG thanks to several here on this forum who did a lot of groundwork on decoding the CARWINGS protocol (long before I was even considering getting a LEAF). Specifically this thread was a big help to get me started: http://www.mynissanleaf.com/viewtopic.php?f=27&t=2214" onclick="window.open(this.href);return false; Thanks guys! :ugeek:
 
Ok. I think I have the distribution/provisioning thing figured out. I hope. Apple sure doesn't make it easy! :? Gotta love DRM... :x

For those of you who've sent me your device IDs, I've added all of them to the provisioning profile. If you download the following file and drag open it in iTunes, you should then be able to sync and install LEAF Link on your device. I tested this on one of my devices and after many trials and errors, it finally worked.

http://www.leaflinkapp.com/downloads/LEAF%20Link.ipa" onclick="window.open(this.href);return false;

[Edit]
Previous Apple documentation indicated that you also needed to download this mobileprovision file and open it in iTunes, but I now believe that is outdated info. As long as I've added you to the list, the latest version of the app will have the provisioning embedded inside, with no need to download the extra file. Still, in case anyone has problems without it, here's the link:
http://www.leaflinkapp.com/downloads/LEAF_Link_Beta_Test.mobileprovision" onclick="window.open(this.href);return false;
[/Edit]

If you haven't yet sent me your device id, the app won't install or run (at least one person PM'ed me but didn't include the id). Email me the device id at [email protected] (my PM inbox here is officially full; I upgraded my account last week but it has yet to take effect).

Fingers crossed that it works for everyone this time...
 
Mike - just downloaded files and synced to my iPhone with no problems. Logged into app fine. Everything looks good, updated status etc. Did a quick test of inputting a new destination, went to car and updated feed and added the destination.

So far, flawless. :D

It won't sync to my iPad, but that's to be expected for a beta app.

Get a unique app icon, and I think you are ready for prime time.

Good work!
 
Got the program running on my iPhone 4s and 1st gen iPad. I haven't played with the nab stuff yet but the status update worked great so far.

One thing I did notice is that there is no button to get out of demo mode and log in. Not a big problem, since all I needed to do was restart the app to get back.

Mike, would you prefer feed back here in this thread, by pm, or by email?
 
Cheezmo said:
dandrewk said:
It won't sync to my iPad, but that's to be expected for a beta app.

You would have to send him the UDID for the iPad to include in his profile file.
Yup, that's right. I'm happy to add more devices to the profile - so far, no danger of running out of my 100 allotted device slots. ;)

adspguy said:
One thing I did notice is that there is no button to get out of demo mode and log in. Not a big problem, since all I needed to do was restart the app to get back.
It's actually in the Settings & Info screen, accessible via the white "i" button in the upper right corner of the main screen. You can login, logout, or change CARWINGS accounts from there. If it makes sense, I could think about putting a more obvious button on the main screen.

ll_demologin.jpg


adspguy said:
Mike, would you prefer feed back here in this thread, by pm, or by email?
I think here is fine, especially if it's anything that could benefit from a larger discussion. If someone's having a very specific issue requiring a lot of back and forth to diagnose, it may make more sense to use email.

Thanks to everyone who's tested so far!
 
Version 0.9.68 has been uploaded. For those who've already successfully installed an older version, you should be able to just grab the .ipa file from the link above, open it in iTunes, and sync to your device.

Fixes:
1. Crash when deleting all recent items via the Delete button
2. Recent Items Edit button was disabled if there was only one recent item
3. Failed to send an item to Nav if lat/lon were missing
4. Improved some minor logout/demo mode issues
5. Other minor stuff

New feature:
Added themes (color schemes). I'm thinking this feature will be an in-app purchase for the final version, basically a token "perk" for anyone who chooses to donate. Theme colors include all five LEAF colors, plus green. Glacier Pearl looks terrible because Apple forces toolbar icon/text color to white. I can probably work around it by reimplementing a bunch of stuff they give you for free, but not sure it's worth it. That color may just get the axe. :cry:
 
I was able to load it and update the main screen (charging, etc.) however I am unable to use any of the navigation "buttons" at the bottom of the screen (even after I input my Carwings info in a new Feed). When I select a function such as the address function I get the setup Info Feed screen. The same occurs with all buttons at the bottom except the timer button.

I emailed Mike... hopefully I will be able to use the navigation portion soon.

Oh yeah, I am also using version 0.9.71
 
batzman said:
I was able to load it and update the main screen (charging, etc.) however I am unable to use any of the navigation "buttons" at the bottom of the screen (even after I input my Carwings info in a new Feed). When I select a function such as the address function I get the setup Info Feed screen. The same occurs with all buttons at the bottom except the timer button.

I emailed Mike... hopefully I will be able to use the navigation portion soon.

Oh yeah, I am also using version 0.9.71

You have to setup your info feed. If you haven't already, launch carwings on your browser and add a new feed, using the URL listed in "info" in the iPhone app. e.g. https://leaflinkapp.com/(unique" onclick="window.open(this.href);return false; identifier). Once Carwings is updated, you then have to close the iPhone app and remove it from background memory. When you restart the app all should be good.
 
You have to setup your info feed. If you haven't already, launch carwings on your browser and add a new feed, using the URL listed in "info" in the iPhone app. e.g. https://leaflinkapp.com/(unique" onclick="window.open(this.href);return false; identifier). Once Carwings is updated, you then have to close the iPhone app and remove it from background memory. When you restart the app all should be good.

Yep, that is exactly what I did, but it isn't working.
 
Ok, after deleting the added feed in CARWINGS and setting up a new one..... waiting overnight... closed the iOS app and reopened... it now functions.
 
Version 0.9.74 is posted on the server. This version fixes 2 main issues:

1. Fixed the issue reported by batzman by:
(a) Also checking at app startup to see if the user has setup the info feed. Previously it would only check when first logging into CARWINGS.
(b) Allowing the user to go ahead and use the nav functions even if the feed does not appear to be setup. In this case, it will pop up the setup instructions once with an "OK" button and will not go to the nav function (same as previous versions); after this, it will do the same, but asking "Continue anyway?" with Yes/No buttons. When "Yes" is selected, it assumes you know what you're doing and will no longer bug about the feed.

2. A number of issues that prevented running on iOS 4.x were fixed.

batzman said:
I was able to load it and update the main screen (charging, etc.) however I am unable to use any of the navigation "buttons" at the bottom of the screen (even after I input my Carwings info in a new Feed). When I select a function such as the address function I get the setup Info Feed screen. The same occurs with all buttons at the bottom except the timer button.
What's supposed to happen is that the LEAF Link server recognizes when you've setup the information feed because it looks for when CARWINGS requests your feed for the first time. The app then asks LL server if you've done the setup, so it knows whether to pop up the message telling you to do that first. Previously the app only asked when successfully logging into CARWINGS - i.e., upon first login or anytime login timed out and the app resent the username/password in the background.

What happened in your case was that your CARWINGS login didn't time out for quite some time, so the app never requested status on whether you had setup your feed. You went at least 2 1/2 hours without the login timing out, which is unusual in my experience (I still don't know the exact interval, but it usually seems closer to 30 or 60 minutes). What I did should have helped the problem, and I have a couple of ideas to make it even smoother.

At any rate, when you got back into the app this morning, login had timed out, so it requested and got current status on your info feed setup. That it worked after you reset the feed in CARWINGS and did a force-quit on the app was coincidental.

dandrewk said:
You have to setup your info feed. If you haven't already, launch carwings on your browser and add a new feed, using the URL listed in "info" in the iPhone app. e.g. https://leaflinkapp.com/(unique" onclick="window.open(this.href);return false; identifier). Once Carwings is updated, you then have to close the iPhone app and remove it from background memory. When you restart the app all should be good.
Yeah, in an ideal world, you should never have to force-quit the app or do things like logout/back in to get it to recognize this change. I've got some ideas I'm mulling over for how to handle this more seamlessly. Interesting how the issue never came up in my own testing, but that's exactly what this beta test is for. Thanks for the reports!
 
One suggestion for the future:

I usually charge to only 80%. So when the car is finished charging, it always displays 1.5 hours to finish. Also, the estimates for charging always have this extra 1.5 hours. Could there be an option which would allow your app to subtract this and display 80% charging times instead?
 
I used it today to start the A/C, sent two different destinations, one using a Google search and one entering a street address manually. Worked flawlessly.
 
Back
Top