WebBLE

Posted on
  • Hi

    Are you planning to make a native iOS app? Using WebBLE is horrible, I have to forget and reconfigure bluetooth connection with Bangle continuously in order to connect to the watch.
    I also get continuous "Getting app list. Undefined" error messages

    Cheers
    Cesar

  • Hi Cesar,

    I'm afraid not. I'm spread amazingly thin right now and I just don't have the time to maintain yet another project. Realistically anything I did on a brand new platform (for me) like iOS right now would be really rough around the edges.

    I have to forget and reconfigure bluetooth connection with Bangle continuously in order to connect to the watch.

    Can you explain a bit more? As I understand it you shouldn't need to pair in the OS so there should be nothing to forget.

    Getting app list. Undefined

    That's an odd one. Do you ever manage to get it to work?

  • Getting app list. Undefined

    I am getting this error when low on memory on the watch.

  • I'm spread amazingly thin right now and I just don't have the time to maintain yet another project

    That's not right for me, and I suppose for many other iOS users. WebBLE doesn't seem to be a reliable solution for managing my Bangle.js. Also, I expect to have watch notifications from iOS in a near future (network connection would also be nice). Could it be ? I have also a Pebble watch and there, iOS notifications works to Pebble, also networking works in the watch (bridged from the iOS device, of course)

    I have to forget and reconfigure bluetooth connection with Bangle continuously in order to connect to the watch.

    I meant I just select bangle on my ios bluetooth connected devices, click on "forget" and then when I open webble app with the Bangle app website, I just select it and configure it again. That fix I read it some days ago in this forum

    Getting app list. Undefined

    I tried reconfiguring bluetooth again, rebooting etc but no luck. When this happens, I can fix it by clicking on "install default apps"; of course that's not the best solution as I have to reinstall everything again. By the way I use the nightly firmware, not the stable one

  • That's not my case as rebooting the watch doesn't fix the issue

  • That's not my case as rebooting the watch doesn't fix the issue

    depending on what apps you have installed you can be low on memory right after rebooting so can still be your case

    That's not right for me, and I suppose for many other iOS users. WebBLE doesn't seem to be a reliable solution for managing my Bangle.js. Also, I expect to have watch notifications from iOS in a near future

    Just checked kickstarter page and it clearly says:

    • We’ll be adding support for notifications from GadgetBridge on Android, but don’t have any plans to support iOS.
    • Web Bluetooth works on Windows 10, Mac OS, Chromebook, Android and Linux. iOS requires a cheap paid app (WebBLE).

    That is the only occurence of 'iOS' on that page. So hopefully it is not big surprise for you (and for many other iOS users).

    Maybe you can help with developing such iOS app?

  • That's not right for me, and I suppose for many other iOS users

    I actually originally paid for the WebBLE app to be developed out of my own pocket, so there would be some way for iOS users to use their Espruino devices. The small charge just helps to support the developer's work maintaining it and fixing bugs.

    Maybe you should contact Apple, the $1 trillion company that refuses to implement Web Bluetooth in their browser and also blocks other web browser vendors from making their own browsers so they could implement it properly.

    As @fanoush points out I was extremely clear that I'm not directly supporting iOS. I just don't have the resources to battle Apple's locked ecosystem every step of the way.

    If you want to develop your own app (or even better contribute to help make the WebBLE app better, as it's all Open Source).

    I can fix it by clicking on "install default apps"

    Actually that's interesting. Do you have a bunch of other apps installed? It may not be WebBLE's fault. What happens if you try and use the App Loader from a laptop/PC?

    It's possible that there's so little free memory on Bangle.js that it struggles to load all the app data and send it back to the App Loader?

  • That is the only occurence of 'iOS' on that page. So hopefully it is not big surprise for you (and for many other iOS users).

    I already knew what was on the KS page. I was only asking about plannings for iOS

  • If you want to develop your own app (or even better contribute to help make the WebBLE app better, as it's all Open Source).

    I will consider, but my free time is limited and I have my own open source projects ;)

    Actually that's interesting. Do you have a bunch of other apps installed? It may not be WebBLE's fault.

    I try to install all of the bangle available apps. As I'm new with the device, I want to try everything. But does it really matter? Should I expect the watch to fail when there are many apps installed? I wouldn't want that .... :(

    What happens if you try and use the App Loader from a laptop/PC?

    I haven't tried connecting from the PC when it fails, but I will do

    It's possible that there's so little free memory on Bangle.js that it struggles to load all the app data and send it back to the App Loader?

    I don't know. I see the available flash memory on the about app but not the available RAM (I suppose you mean RAM). How can I see this?

    Thanks @Gordon

  • I try to install all of the bangle available apps.

    Well I think I found your problem ;)

    It used to be that when the app loader requested a list of available apps, Bangle.js blindly loaded all apps' information files into RAM, then serialised them into a string and sent them. It never used to be an issue, but as apps get bigger and there are more of them, just the serialised String of app info would use up available RAM.

    I've just added something to the app loader that should fix that by sending apps out one at a time.

    I want to try everything. But does it really matter?

    Having more apps will make the App Loader load slower, and will marginally slow things down - so ideally if you know you don't want an app, it's best to remove it.

    Should I expect the watch to fail when there are many apps installed?

    With the recent change I just made, no.

    However if you install lots of Widgets, then yes. These run all the time in apps that display them, so the more widgets, the less RAM - until it fails.

    Right now there's no way to show available RAM. Since the About page doesn't load Widgets the available RAM (which isn't shown) would always be basically the same anyway.

    I'll make a widget for it though.

  • I've just added something to the app loader that should fix that by sending apps out one at a time.

    Will it work also when sending one app, not refreshing the list of current versions?

    However if you install lots of Widgets, then yes. These run all the time in apps that display them, so the more widgets, the less RAM - until it fails

    Seems logic :)

    I'll make a widget for it though.
    thanks! :)

    Can I also suggest the "Pebble way" to handle apps? As that Pebble has little storage, the watch only stores in flash memory all the apps it can handle. But you can see in the clock all the installed apps. When you request an app that it's installed but not in the watch, it requests it from the mobile phone. The problem is that solution would not work for iOS users ;)

  • Will it work also when sending one app, not refreshing the list of current versions?

    Yes, that should be fine. In that case it doesn't even request data from Bangle.js because it knows what got added.

    Can I also suggest the "Pebble way" to handle apps?

    That's an interesting solution - however it'd require everyone to have Gadgetbridge/similar on their phones (and to be connected).

    However Bangle.js has 4MB of flash, so realistically you could load every app on the app store onto it right now and it'd be fine. It's just the overhead of parsing that many files/apps.

    I'd never assumed anyone would install more than 10 or so apps (even from the point of view of trying to access them via a tiny menu) so many optimisations that could have been made to allow that easily were never done. I just added a few tweaks to the launcher(s) that should now let them handle more apps better as well.

    So really I think the only issue right now is Widgets - these have to live in RAM (at least partially) if you want them on the display and active all the time. However realistically unless there are some that have a big memory impact, you'll run out of space for widgets on screen before you run out of RAM

  • However realistically unless there are some that have a big memory impact, you'll run out of space for widgets on screen before you run out of RAM

    I do not agree :)
    Currently I have loaded

    • Gadgebridge
    • Days Left
    • Active Pedometer
    • Battery widget with percentage
    • Chrono Widget (not yet published)
    • RAM Widget
    • Pipboy clock

    I still have space for more widgets in the bottom area.
    RAM Widget says 65%.
    This memory utilization leads to errors in IDE when accessing the file list (low memory), so I always have to go to the app launcher, so that widgets do not use up the needed memory.

  • Well, I guess one immediate option is to enable minification which should help a little.

    However I think at some point we'll have to have an effort to go through widgets and clocks particularly to try and reduce their memory footprints.

    It's just a side-effect that we're running on a very constrained device, and to date trying to make the apps memory efficient hasn't really been a priority.

    This memory utilization leads to errors in IDE when accessing the file list

    You mean via the Storage button? It might be we can do something about that.

    One solution is just to type reset() in the IDE - that'll remove any running apps, which should then give you the space.

  • However I think at some point we'll have to have an effort to go through widgets and clocks particularly to try and reduce their memory footprints.

    Yes, I am afraid so. I am hitting limits already.
    But minification will already save a lot of space for my apps/widgets because of long variable names and a lot of comments.

    You mean via the Storage button? It might be we can do something about that.

    Yes.

    One solution is just to type reset() in the IDE - that'll remove any running apps, which should then give you the space.

    That would make it easier, kind of annoying to always go to the app launcher first :)

  • Yes, that should be fine. In that case it doesn't even request data from Bangle.js because it knows what got added.

    Well when I usually have the problem connecting and getting apps versions from the watch, I have also problems installing (I can not install anything). So I have to reinstall default apps. But I will try it with the PC when it happens...

    That's an interesting solution - however it'd require everyone to have Gadgetbridge/similar on their phones (and to be connected).

    Yes. Pebble had its own app ("Pebble") which manages in the background everything: requesting apps from the watch, notifications, network connections, etc

    I'd never assumed anyone would install more than 10 or so apps

    Then you should take a look at my Pebble watch ;) I have more than 50 apps/watchfaces there

    So really I think the only issue right now is Widgets- these have to live in RAM

    That's completely logic. I have installed your new ram widget (thanks!) and it says 43% of use. I have the "big numerals clock" selected, with the bluetooth, battery and moon phase widget

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

WebBLE

Posted by Avatar for chernandezba @chernandezba

Actions