> On Mar 25, 2016, at 9:11 AM, Robert Helling <[email protected]> wrote:
> 
> Hi,
> 
> my experience so far with the iOS version is twofold:
> 
> On my iPhone 6plus, where I installed the first version yesterday at the 
> office, it works great (and now also the location does not save a fix every 
> second).

We still get a fix every second, but I fixed the broken check that only SAVED 
the fix every <interval>. Yet Qt allows you to set the interval at which you 
GET the fix. But that isn't correctly implemented for iOS. Sadly that part of 
Qt is of course written in ObjectiveC. I've been staring at this module for the 
past 45 minutes and my eyes are bleeding, but I'm seeing several mistakes 
already. So I just kicked off a local Qt for iOS build from source so I can try 
and fix those bugs (and then submit those fixes for Qt 5.6.x)

> On my older iPhone 4s, I installed it only today. But now we are at the 
> in-laws for the easter weekend, somewhere in the German countryside where the 
> internet exists only in the 1Mbit/s variant. There I can start the app and it 
> checks my credentials but then get stuck forever in downloading my divelist 
> (I have no idea why it takes so long).

So you are experiencing the same things many people (Miika most vocally) have 
complained about. libgit2 does NOT appear to be as smart and fast when it comes 
to low-bandwidth situation as the git client. One of the key reasons why I 
picked git as the storage protocol was that the protocol itself tries to be 
super clever. This needs analysis by an expert. Thankfully I am taking an 
expert to a place that promises mediocre internet speed (Cozumel) next week, so 
there is hope that we can get some insights here...

> I should also mention that in order to compile the iOS version myself I 
> upgraded my Qt from 5.5 to 5.6 (took several hours) and now I am in the 
> situation that I cannot build at all (needs some more care to fix some paths).

Excellent. Not. So it seems that the desktop version is unhappy with Qt 5.6 
because it requires webkit (but you can just turn of the manual and FB support 
for now).
If you have more specific questions about the magic it took me to create an iOS 
build... oh my. Yeah, that was a major pain. I'll try to document it better. It 
would help if you could tell me where you get stuck.

>> On 25.03.2016, at 16:47, Dirk Hohndel <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> More importantly, though, Qt 5.6.0 / qtlocation seems to have a number of 
>> issues on iOS: 
>> - regardless of the available hardware on the device, it always reports that 
>> satellite positioning is available - but then on devices without GPS / 
>> GLANOSS it just times out when trying to acquire a fix

OK, so there are two different issues at play here.
a) corelocation does indeed not tell you if it has a satellite source - so Qt 
simply claims all sources; but that's bogus - it could get a fix and look at 
the accuracy claimed and then make an educated guess
b) the bigger problem is that Qt does not check if it got access to location 
services at all. It requests them but then never checks. BAD Qt developers... 
this is one of the issues I'm intending to fix

>> - it doesn't respect the reporting interval that you set (so you get a new 
>> fix every second or even faster)

Still looking into this one. I know it's supported. And even better, 
corelocation supports "significant change" mode where everything stays asleep 
until you move more than a certain distance. That's definitely something I want 
to play with (even though there is no Qt API to use that at this point).

>> - even if you request position updates while the app is not in the 
>> foreground, you don't get those at all.

Another bug in Qt I believe. The corelocation mentions a specific API call you 
need to make in order to enable that and so far I haven't found that call in 
the sources, so this may be an easy fix. 

>> With all that, obviously on iOS Subsurface-mobile currently is not fit as a 
>> replacement for the iOS Subsurface companion app :-(
>> 
>> I'll look at the Qt sources to see if I can spot any issues, but we may need 
>> help here from some Qt experts. I posted on the Qt "interest" list, but 
>> based on the traffic there, iOS is not a platform that a lot of people work 
>> on :-(
> 
> I only now that there was a policy change recently regarding obtaining 
> locations while in the background: Off the shelf, apps don’t get the 
> permission but the user has to agree to it by clicking ok in some modal 
> dialog.

Yes, that part I have implemented (it's basically an Info.plist setting where 
you state that you want this - and the request to get location data at all 
already works). It's the secondary permission to keep running in the background 
that requires two parts, one in the Info.plist (I have that) and one API call - 
and Qt isn't doing that call as far as I can tell.

I'll keep working on this... but my guess is this will take a while to get all 
sorted out.

/D

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to